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

🔧 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.

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 :

let IsLiveMemory = false

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

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. 😄✨

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 !


Partager l'article sur
Soutenez-moi
Sur mon profil BMC, je mets de temps en temps des nouvelles concernant mes projets. Je propose des services (Extras) seulement dessus et une adhésion (Membership) vous rapporte d'uniques contreparties.
Aller sur Buy Me a Coffee
DEV
Suis-moi sur dev.to, j'écris des articles sur le développement web et d'autres genres seulement en anglais.
Voir mon profil DEV
Pour le moment cette Newsletter n'est pas active. Mais un jour ou l'autre, elle le sera et vous serez les premiers à recevoir son contenu. Inscrivez-vous pour ne pas rater le premier numéro.

Newsletter

#HelløNews est une newsletter accessible à tous, développeur ou non. Une sorte de smoothie, vous pouvez trouver des liens que je trouve intéressants, des posts et des outils extraordinaires et utiles. J'ajoute également les projets dans lesquels je suis impliqué et les grandes nouvelles.

En s'abonnant avec votre adresse email à la Newsletter, vous acceptez les Conditions d'utilisation & Politique de confidentialité.