Anibot est un robot Discord qui informe l'utilisateur des dernières versions de ses animes préférés. Ce bot utilise discord.js et les données sont récupérées à partir du flux RSS Subsplease.
Réalisé avec TypeScript, MongoDB et NodeJS.
Visitez le portail des développeurs Discord et créez un bot. Choisissez les autorisations de base, au moins l'envoi de messages. Activez toutes les options Privileged Gateway Intents dans la section « Bot ».
Clonez ce référentiel sur votre machine et exécutez npm i
pour installer les dépendances.
Créez un fichier .env et placez-y vos jetons Discord. Exemple:
DISCORD_TOKEN= ""
CLIENT_ID= ""
GUILD_ID= ""
RELEASE_CHANNEL_ID= ""
DEV_CHANNEL_ID= ""
LOGS_CHANNEL_ID= ""
DB_CONNECTION_STRING= "" // mongodb connection, see below
Créez un compte MongoDB Atlas et créez un cluster contenant une base de données series
et une collecte data
. Appuyez sur Connecter, sélectionnez les pilotes et copiez la valeur uri
. Assurez-vous de modifier le <password>
pour qu'il soit le mot de passe de votre cluster.
Vous pouvez lister vos émissions préférées que vous souhaitez suivre dans la collecte data
. Voici une liste des émissions diffusées. Je recommande de vous connecter avec la boussole MongoDB à la datanase. Le schéma est le suivant :
{
"_id": {
"$oid": "64396564a26ce63fc6fc90ca"
},
"name": "Vinland Saga S2",
"latestEpisode": ""
}
où id
sera généré automatiquement. Vous devez créer les clés name
et latestEpisode
, vous pouvez laisser latestEpisode
vide. Les deux sont des chaînes.
Construisez les fichiers avec la commande tsc
. Les fichiers JavaScript seront créés dans le dossier /dist
.
Exécutez node dist/index.js
dans le référentiel.
Fait!
Note! Assurez-vous de saisir correctement les noms, utilisez la version rōmaji des noms. Les saisons dans le titre sont raccourcies, comme "Saison 2" en "S2".
Bot envoyant une notification d’une nouvelle version. S'exécute automatiquement toutes les cinq minutes en arrière-plan.
/latest
commande qui répond avec les dix dernières versions
Modifiez ces variables dans functions/fetchAPI.ts
à votre guise :
const timezone = "Europe/Helsinki";
const timeFormat = "en-FI";
Avez-vous vérifié que :
.env
Créez un problème ! N'hésitez pas à le créer et à l'améliorer ou à le modifier à votre guise.