Je suis en train d'apprendre Python et j'aimerais commencer un petit projet. Il semble que la création de bots IRC soit un projet populaire parmi les débutants, alors j'ai pensé en réaliser un. Évidemment, il y a des fonctionnalités de base comme la possibilité de se connecter à un serveur et de rejoindre un canal, mais quelles sont les bonnes fonctionnalités qui sont généralement incluses dans les bots ? Merci pour vos idées.
Réponses
Trop de publicités?À moins que ce ne soit uniquement pour l'expérience éducative, vous devriez vraiment utiliser un cadre pour la fonctionnalité de base.
Cela dit, voici quelques-unes des choses que fait le robot dans mon canal IRC personnel :
- Choisissez un élément dans une liste d'options
- Affiche une entrée aléatoire du fichier Fortunes de Linux.
- Affiche un ensemble aléatoire de mots provenant du fichier spook d'Emacs.
- Vérifier chaque ligne d'un utilisateur et afficher une citation de The Big Lebowski s'il est suffisamment similaire (ceci est probablement un peu spécifique à mon canal :) )
- Vérifier si un lien a déjà été mentionné et dire qui/quand (nous lisons tous les mêmes flux RSS et avons souvent tendance à dupliquer les liens).
- Réaliser un sondage
- Extraire une citation donnée de notre système interne QDB
- Vérifier si un lien donné a été posté sur Reddit, et donner le lien du fil Reddit correspondant si c'est le cas. Si un lien Reddit est posté, donnez le lien direct à la place.
- Suivre la dernière fois qu'un pseudo donné a été dans le canal, et la dernière fois qu'ils ont parlé.
- Mettez en file d'attente un message pour un pseudo hors ligne qui sera automatiquement envoyé dans le canal lorsqu'il s'y joindra.
- Utiliser Google Translate pour traduire une phrase donnée
- Publier une ligne donnée sur le fil Twitter de notre chaîne
- Choisissez un utilisateur au hasard et donnez-lui un coup de pied (ce n'est pas la meilleure idée selon le degré d'indiscipline de votre canal).
- Extraire le résumé d'un terme donné de Wikipédia et l'afficher avec un lien vers l'article complet.
- Afficher des informations sur tout lien Youtube posté (titre de la vidéo, durée, émetteur, votes, commentaires, etc.)
Je suis également en train d'écrire un bot en node.js. Voici quelques-uns de mes objectifs/fonctions :
- mappez la commande '@' pour que le robot détecte la dernière URI dans l'historique des messages et utilise le service de validation html w3
- créer un jeu de questions en invoquant !ask, poser une question avec 3 indices, avoir la possibilité de charger des questions personnalisées basées sur la catégorie.
- obtenir la météo avec
weather
[zip/nom] - brancher
jseval
pour évaluer le javascript, idem pour python et perl et haskell -
seen
commande qui signale la dernière fois que le robot a "vu" une personne en ligne - commande translate pour traduire une chaîne de langue X en chaîne de langue Y
- carte
dict
à un service de dictionnaire - carte
wik
au service wiki
Encore une fois, c'est une suggestion tout à fait personnelle, mais j'aimerais vraiment voir eggdrop réécrit en Python.
Un tel projet pourrait utiliser Twisted pour fournir l'interaction IRC de base, mais devrait ensuite supporter les scripts complémentaires.
Ce serait génial pour permettre de construire facilement des fonctionnalités de bot IRC en utilisant python, au lieu de TCL, scripts.
C'est très subjectif et cela dépend totalement de l'endroit où le robot sera utilisé. Je suis sûr que d'autres auront de bonnes suggestions. Mais quoi que vous fassiez, s'il vous plaît, faites no interroger les utilisateurs de manière arbitraire. Et faire no spammer périodiquement le chat principal.
Faites une recherche sur Google pour obtenir une bibliothèque qui implémente le protocole IRC pour vous. De cette façon, vous n'aurez qu'à ajouter les fonctionnalités, qui sont déjà assez nombreuses pour vous gêner.
Fonctions communes :
- Effectuer une recherche à partir d'un wiki ou de google
- Informer les gens des mises à jour des projets/problèmes
- Laissez un message
- Jouet pour spammer le canal
- Choisissez un sujet
- Catégoriser les messages
- Recherche à partir des journaux des canaux