Je fais beaucoup de projets liés à Twitch ici et là, en essayant de voir quelles sont les possibilités. L’un de mes derniers projets consistait à créer une extension d’émote Twitch pour Chrome où je montrais comment obtenir des » créneaux » d’émote supplémentaires gratuitement. Cela m’a amené à m’intéresser aux extensions de navigateur, alors je me suis dit que nous allions montrer comment en faire une à partir de zéro en construisant un filtre de blasphème pour le chat de Twitch.
À la fin de ceci, nous voulons avoir une extension qui, lorsqu’elle est installée, vérifie un ensemble de mots marqués dans le chat et les remplace par des versions plus amicales. Cela pourrait être utile pour les enfants qui regardent des streams, par exemple.
Si vous voulez juste le code de cette extension, il y a un lien vers le résultat final au bas de cet article.
D’accord, alors entrons dans le vif du sujet. Créez un dossier quelque part que vous aimez et appelez-le profanity-filter. J’ai créé le mien dans un endroit où je me synchronise avec GitHub.
Maintenant nous allons lire le texte réel dans tous les éléments de fragments de texte, boucler sur tous les mots interdits et les remplacer si nécessaire. Commençons cette boucle, donc mettez à jour votre fonction de rappel avec ce qui suit:
Ce qui se passe ici est que nous bouclons à travers tous ces éléments qui contiennent du texte. À la ligne 18, nous prenons un élément spécifique à la fois et à la ligne 19, nous obtenons le texte réel en minuscules, car les mots marqués sont également tous en minuscules. C’est plus facile pour les comparaisons, mais dans une version plus avancée, nous prendrions soin de maintenir soigneusement la casse. Maintenant que nous avons notre texte, nous voulons boucler sur nos mots marqués et vérifier s’ils sont présents. Si c’est le cas, nous les supprimons. Mettez à jour la fonction :
Le dictionnaire que nous avons créé fonctionne avec des paires clé-valeur, où les clés sont les mots marqués et les valeurs sont les mots amis, donc à la ligne 21 nous obtenons simplement un tableau de toutes les clés, qui est le tableau des mots marqués sur lequel nous voulons boucler. Dans la boucle, nous récupérons le mot marqué que nous regardons actuellement et si notre texte inclut un ou plusieurs d’entre eux, nous récupérons le mot ami et mettons à jour notre texte en remplaçant les mots marqués. C’est presque tout, maintenant nous devons juste prendre notre texte nouveau et amélioré et le remettre dans l’élément d’où nous l’avons récupéré :
À la ligne 31 nous avons maintenant replacé le texte dans l’élément et c’est tout ! Passons au test dans Chrome.
Le test
Ouvrez Chrome et naviguez vers chrome://extensions. Vous devriez voir vos extensions et en haut à droite, vous verrez le mode développeur. Activez-le si ce n’est pas encore le cas. Ensuite, en haut à droite, vous verrez l’option Load unpacked. Nous allons l’utiliser pour charger notre extension locale sans avoir à passer par le Chrome Web Store pour le moment. Cliquez dessus et sélectionnez le dossier où se trouvent les fichiers :
Cela devrait la faire apparaître instantanément dans notre liste d’extensions :
Bien ! Maintenant, allons sur n’importe quel canal où nous pouvons discuter. Je vais aller sur la chaîne de mon ami Bjarke, un streamer danois hilarant, et l’essayer :
Voilà, ça marche ! Notre propre filtre à blasphèmes. Ce n’était pas si difficile, hein ? Il ne reste plus qu’à le publier sur le Chrome Web Store si vous le souhaitez. Je développerai cette liste de mots et la publierai, donc si vous n’avez pas besoin de plus, vous n’avez pas besoin de la publier, étant donné que l’accès au programme est payant. Je ne vais pas entrer dans la façon dont la libération fonctionne, mais si vous êtes intéressé, j’ai fait une extension d’émote Twitch pour obtenir vos propres créneaux d’émote illimités et cet article explique comment libérer des extensions à la fin.
Si vous voulez voir tout le code de cette extension, consultez le repo GitHub ici. Joyeux codage !