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

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 des contreparties uniques.
Aller sur Buy Me a Coffee