Un message riche (embed) Discord avec du texte illustrant que la personne est en stream sur Twitch

Alerte Twitch sur Discord

🔧 Tech utilisé

Pour ce petit projet, j'ai utilisé l'API Twitch avec la bibliothèque node-twitch sur npm.
J'envoie le message d'alerte sur Discord avec un texte riche (aka embed), voici le message :

La sortie du message sur Discord lorsque je suis en direct sur Twitch

⚙️ Comment ça marche ?

Dans un premier temps, dans mon fichier principal nommé app.js, j'aurai besoin de l'essentiel.

js
const Discord = require('discord.js')
const client = new Discord.Client()
const TwitchAPI = require('node-twitch').default
const config = require('./config')

const twitch = new TwitchAPI({
  client_id : config.twitch.AppClientID,
  client_secret : config.twitch.AppSecretToken
})

Pour AppClientID et AppSecretToken, allez dans la Twitch Dev Console. Créez une nouvelle application et attrapez tout.

Pour la deuxième partie, c'est le système principal.

Lorsque X démarre un stream, le script vérifie si le message a déjà été envoyé ou non avec une variable mémoire. Je l'ai nommée IsLiveMemory.

L'état par défaut :

js
let IsLiveMemory = false

Je récupère le profil Twitch depuis l'API :

js
const run = async function Run() {
  await twitch.getStreams({ channel: "thomasbnt" }).then(async data => {
    const r = data.data[0]
    let ThisGuildOnly = client.guilds.cache.get("GuildID")
    const ChannelAnnounceLive = ThisGuildOnly.channels.cache.find(x => x.id === "ChannelAnnounceLiveID")

    if (r !== undefined) {
      if (r.type === "live") {
        if (IsLiveMemory === false || IsLiveMemory === undefined) {
          IsLiveMemory = true
        } else if (IsLiveMemory === true) {
        }
      } else {
        if (IsLiveMemory === true) {
          IsLiveMemory = false
        }
      }
    } else {
      if (IsLiveMemory === true) {
        IsLiveMemory = false
      }
    }
  })
}
setInterval(run, 15000)

Je détermine le serveur Discord pour éviter de modifier un autre si je voudrais changer l'image du serveur. Et puis c'est plus simple par la suite (ligne suivante) à chercher l'identifiant du salon textuel auquel on voudrait envoyer le message d'alerte.

💪🏼 La logique dans tout ça

Si le flux en direct est en ligne ("type" : "live"), vérifiez si la Mémoire est fausse pour éviter de dupliquer les messages, si ces deux conditions sont vraies, alors envoyez le message au salon général (ou autre bien entendu).

Si le flux en direct est en ligne et que la Mémoire est vraie, n'envoyez pas le message pour éviter un message en double.

✨ Vous pouvez obtenir ce script !

Je suis content de ce script, une bonne utilisation pour mon serveur Discord et pour mes livestreams sur Twitch.
Dès que je passe en live, ça envoie automatiquement un message et change l'icône de mon serveur en couleur violette. 😄✨

Obtenez le script pour les alertes Twitch sur Discord

Obtenez le script pour les alertes Twitch sur Discord

Faites savoir à votre communauté que vous êtes en direct sur Twitch ! Il est conçu pour une utilisation très simple.

Il alerte dans un salon textuel choisi quand vous allez en direct et quand vous le terminez. Il change également l'icône de votre serveur en ce que vous voulez.
Bien-sûr ça reste du code, donc si l'un de ces choix ne vous plait pas, tout est modifiable !

Cet article a été initialement posté sur mon profil DEV. Si vous voulez le lire en anglais, faites-y un tour !


Soutenez-moi
Si vous aimez mon contenu, vous pouvez me soutenir en faisant un don récurant ou spontanément sur Buy Me a Coffee.