🔧 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 {}
      } else {
        if (IsLiveMemory === true) {
          IsLiveMemory = false
        } else {}
      }
    } else {
      if (IsLiveMemory === true) {
        IsLiveMemory = false
      } else {
      }
    }
  })
}
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 allez être en direct sur Twitch ! Ce script est conçu pour une utilisation très simple. Il alerte dans un salon textuel choisie 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 !

Ce script est disponible sur ma page Buy Me a Coffee !


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

Pour le moment cet 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é.