Script Node.js réceptionnant les alertes de dons et d'achats du service https://utip.io/ (non officiel) et déclenchant l'affichage de sources sur OBS en fonction du montant du don ou du produit acheté.
- JavaScript 89%
- Lua 11%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| plugins | ||
| .gitignore | ||
| configuration.example.json | ||
| install.js | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| start.lua | ||
| utipobs.js | ||
uTipOBS
Script Node.js réceptionnant les alertes de dons et d'achats du service uTip (non officiel) et déclenchant l'affichage de sources sur OBS en fonction du montant du don ou du produit acheté.
Pré-requis
- Le logiciel OBS.
- Le plugin obs-websocket.
- Node.js en version 13 ou supérieure.
Installation
- Télécharger le projet.
- Dans le dossier du projet, installer les dépendances externes avec l'une des options suivantes :
- Exécuter le fichier
install.jsavec le programmeNode.js(par défaut situé à l'emplacementC:\Program Files\nodejs\node.exesur Windows, s'il n'est pas affiché dans la liste des programmes disponibles). - Exécuter la commande
npm install --proddans le dossier du programme depuis le terminal pour installer les librairies utilisées, etnpm install -g pm2pour installer le gestionnaire de processus permettant de garder le script actif.
- Exécuter le fichier
- Renommer le fichier
configuration.example.jsonenconfiguration.jsonet en modifier les paramètres (voir paragrapheConfiguration) via un éditeur de texte autre que le Bloc-Notes (Atom, Notepad++, Visual Studio, Sublime Text, ...). - Dans le menu
Outils > Scriptsd'OBS, ajouter le scriptstart.lua, puis spécifier le chemin du fichierutipobs.jsdans le champ venant d'apparaître.
Configuration
obswsAddress: adresse utilisée par OBS Websocket (visible dans le menu d'OBSOutils > Paramètres du serveur WebSockets,localhost:4444par défaut).obswsPassword: mot de passe utilisé par OBS WebSocket (visible dans le menu d'OBSOutils > Paramètres du serveur WebSockets, laissez vide si l'authentification n'est pas activée).utipOverlayId: identifiant fourni par uTip pour votre overlay (visible dans le menu de uTipOverlay Live > Alertes dons et achats, inclus dans l'URLhttps://utip.io/video-overlay/IDENTIFIANT?type=msg).tip: liste des configurations à appliquer en cas d'alerte de don, chaque configuration est nommée par la somme à partir de laquelle elle est enclenchée (par exemple, la configuration10est appliquée pour tout don supérieur ou égal à 10 euros,01pour tout don supérieur ou égal à 1 euro, ...)product: liste des configurations à appliquer en cas d'alerte d'achat de produit, chaque configuration est nommée par le produit concerné.plugins: liste des informations mises à disposition par uTip, changer le paramètre d'une information defalseàtruepermet d'activer sa synchronisation dans le script (le dossierpluginscontient des fichiers textes relatifs à chaque information qui seront mis à jour si leur synchronisation est activée, passer un fichier texte comme source texte dans OBS permet à son contenu d'être affiché et changé dès que l'information est reçue).
Chaque configuration de don et de produit comprend les champs suivants :
sceneName: nom de la scène OBS contenant les sources à déclencher.textSourceName: (facultatif) nom de la source texte OBS contenant le texte de remerciement à afficher.mediaSourceName: (facultatif) nom de la source image ou vidéo OBS contenant le média à afficher.messageSourceName: (facultatif) nom de la source texte OBS contenant le message envoyé par la personne ayant effectué le don ou l'achat.textSourceContent: texte de remerciement à afficher, les variables$pseudo(pseudonyme de la personne),$amount(somme d'argent donnée),$currency(symbole de la monnaie utilisée) et$product(nom du produit acheté) peuvent y être ajoutées, ajouter le symbole\npermet d'insérer un saut de ligne.seconds: nombre de secondes s'écoulant avant que l'alerte ne disparaisse de l'écran.
Plugins disponibles
Le dossier plugins comporte des fichiers qui seront automatiquement modifiés par les alertes uTip avec les valeurs suivantes :
balance: Soldegoal-amount: Montant de l'objectifgoal-desc: Description de l'objectifgoal-number-of-tiprs: Nombre de TipRs pour l'objectiflast-donator: Dernier donateurlast-donation-amount: Montant du dernier donlast-recurring-donation-amount: Montant du dernier don récurrentlast-recurring-donator: Donateur du dernier don récurrentbest-tipr-ever: Meilleur TipRbest-tipr-amount-ever: Montant rapporté par le meilleur TipRlast-buyer: Dernier acheteurlast-bought-product: Dernier produit achetélast-bought-product-amount: Prix du dernier produit achetélast-firetipr: Dernier FireTipRoldest-firetip: Plus ancien FireTipRhigher-return-firetipr-donator: FireTipR ayant rapporté le plushigher-return-firetipr-amount: Montant rapporté par le FireTipR ayant rapporté le pluslargest-donation-amount-ever: Montant du plus gros donlargest-donation-donator-ever: Donateur du plus gros donlargest-donation-amount-session: Montant du plus gros don de la sessionlargest-donation-donator-session: Donateur du plus gros don de la sessionlargest-recurring-donation-amount: Montant du plus gros don récurrentlargest-recurring-donation-donator: Donateur du plus gros don récurrentlargest-buy-amount-ever: Montant du plus gros achatlargest-buy-product-ever: Produit du plus gros achatlargest-buy-donator-ever: Donateur du plus gros achatlargest-buy-donator-session: Donateur du plus gros achat de la sessionlargest-buy-amount-session: Montant du plus gros achat de la sessionlargest-buy-product-session: Produit acheté lors du plus gros achat de la sessionlast-30-days-income: Revenus sur les 30 derniers jourscurrent-month-income: Revenus depuis le début du moislast-created-product: Dernier produit créelast-created-product-price: Prix du dernier produit créenumber-of-subscribers: Nombre d'abonnés sur uTiplast-ads-message: Dernier message reçu suite à un visionnage de pub
Librairies utilisées
- eventsource pour la communication avec uTip.
- obs-websocket-js pour la liaison à OBSWebSocket.
- pm2 pour le lancement et l'arrêt du processus.