RisiBank

Stickers, mèmes et templates à partager.

Installer RisiBank

Choisissez votre plateforme : on vous montre ce qui s'installe dessus.

API REST

Risibank expose une API REST publique sur /api/v1 . Listes (hot/top/new/random), recherche par tags, médias, collections, utilisateurs, export Telegram. Les endpoints d'écriture nécessitent un JWT ( Authorization: Bearer … ).

Un rate limit est en place sur l'API.

Exemple : snapshot des feeds en une requête :

curl https://risibank.fr/api/v1/medias?nsfw=false

L'API v0 (/api/v0/load, /api/v0/search, etc.) continue de fonctionner pour les plugins legacy (chat JVC, scripts tiers), mais elle n'évolue plus.

Documentation Swagger

Intégration web

Intégrez le sélecteur RisiBank dans n'importe quel site via une iframe. Collez ce code et ajustez les paramètres :

<iframe
  src="https://risibank.fr/embed?theme=light&defaultTab=hot"
  style="width:100%;height:450px;border:0"
></iframe>

Paramètres (query string)

ParamètreValeursDéfautDescription
idnombre0Identifiant du widget, renvoyé tel quel dans chaque postMessage. Sert à router les callbacks quand plusieurs widgets coexistent sur la page.
themelight · dark · light-old · dark-oldlightThème de couleur du widget. Le suffixe -old applique le thème Classique de RisiBank v2.
defaultTabsearch · fav · hot · top · new · randhotOnglet ouvert au chargement.
mediaSizesm · md · lgmdTaille des vignettes.
showNSFWtrue · falsefalseInclut les contenus NSFW dans les résultats.
showCopyButtontrue · falsefalseAffiche le bouton de copie sur chaque média.
showCloseButtontrue · falsefalseAffiche un bouton de fermeture qui émet risibank-closed.
showRisiBankLinktrue · falsetrueAffiche le lien de retour vers risibank.fr.
allowSignIntrue · falsetruePropose la connexion (bouton Connexion + favoris).
autoFocustrue · falsefalsePlace le curseur dans la recherche au chargement. Désactivé par défaut : dans une iframe, ça vole le focus de la page parente et ouvre le clavier sur mobile.
hideSearchOnOtherTabstrue · falsefalseMasque la barre de recherche en dehors de l'onglet Recherche.
allowUsernameSelectiontrue · falsetrueAlias historique de allowSignIn, conservé pour les anciennes intégrations. Mettre l'un des deux à false désactive la connexion.

Récupérer la sélection

Le widget communique avec la page parente via postMessage . Écoutez l'événement message :

window.addEventListener('message', (event) => {
  if (event.origin !== 'https://risibank.fr') return;
  if (event.data.type === 'risibank-media-selected') {
    const media = event.data.media; // { id, cache_url, slug, ... }
    insertIntoEditor(media.cache_url);
  }
});

Trois types de messages sont émis : risibank-media-selected, risibank-media-copy et risibank-closed. Le champ media contient l'objet média (id, cache_url, slug…).

Ouvrir une démo

Widget JavaScript

Tu préfères un bouton qui ouvre RisiBank en modale ou en surimpression plutôt qu'une iframe fixe ? Inclus la bibliothèque JS et appelle RisiBank.activate — elle crée l'iframe, gère plusieurs intégrations et route les callbacks de sélection pour toi.

<script src="https://risibank.fr/downloads/web-api/risibank.js"></script>
<script>
  RisiBank.activate({
    ...RisiBank.Defaults.Frame.Light,
    container: '#risibank',
    onSelectMedia: ({ media }) => {
      document.querySelector('textarea').value += ' ' + media.source_url;
    },
  });
</script>

Trois préréglages sont disponibles : RisiBank.Defaults.Frame (intégré), RisiBank.Defaults.Modal (popup près du champ actif) et RisiBank.Defaults.Overlay (plein écran).

Télécharger risibank.js