Python client IRC: écrire à partir de zéro ou écrire un plugin pour cadre existant?

StackOverflow https://stackoverflow.com/questions/1063409

  •  21-08-2019
  •  | 
  •  

Question

Pour notre entreprise, je voudrais avoir un bot IRC basé sur Python qui vérifie si les sites de nos clients sont toujours opérationnels. Plus spécifique: Je veux à la liste un certain nombre d'URL qui devrait être visité tous les, disons, 15 minutes. Si elle échoue, l'URL doit être vérifiée à nouveau au bout de 5 minutes. Si la récupération de l'URL ne fonctionne toujours pas dans le résultat d'un code d'état HTTP 200, il doit faire écho l'URL à défaut dans le canal afin que nous puissions enquêter.

J'ai écrit un plugin pour Supybot il y a quelque temps qui fait essentiellement partie de ce qui précède de façon rudimentaire mais efficace. Si je veux étendre la fonctionnalité du code actuel aux spécifications ci-dessus « » je dois faire une modification majeure; essentiellement cela signifierait à partir de zéro.

Ce qui pose la question: dois-je écrire un meilleur plugin Supybot, correspondant aux nouvelles exigences, ou aller chercher autre chose tout à fait? Dois-je commencer à partir de zéro (apprentissage le plus, la mise en œuvre du RFCs pertinents moi-même , passer plus de temps que prévu) ou est-il un cadre approprié qui gère les trucs de base IRC?

Était-ce utile?

La solution

Je vote pour un tout nouveau plug-in pour Supybot. En savoir plus;)

Si vous ne le ferez pas beaucoup, essayez irclib . Il est un lib python (toujours maintenu) pour l'IRC.

Twisted peut également être ok, mais il est un peu, mais trop ...

Autres conseils

Pour moi, cela ressemble à un cas de votre demande voulant parler IRC, et ma réaction instinctive serait d'utiliser Twisted, qui a des clients IRC. Cela peut ou peut ne pas être la bonne solution pour vous, mais au moins il vaut la peine d'instruction.

J'ai finalement décidé de créer une utilisation Twisted pour mon bot. Quant à la raison pour laquelle:

  • Supybot a déjà beaucoup de fonctionnalités. Et cela peut être une bonne chose: il suffit de créer un plug-in simple, le brancher et commencer à utiliser le bot. L'inconvénient est que vous ne pouvez pas aimer certaines des fonctionnalités déjà prévues. À titre d'exemple: Je n'ai pas aimé le fait qu'il a répondu à tout (Erreur:. « Foo » est pas une commande valide). Je suis sûr qu'il peut être désactivé en quelque sorte quelque part, mais ce genre de petites choses me dérangeait.

  • Le Python bibliothèque client IRC sur l'autre main se sentait un peu trop d'os nus. D'autant plus que je avais besoin threading d'avoir le contrôle bot un si un certain nombre de sites sont encore en vie tout en restant sensibles dans le canal.

  • Si le irclib était comme trop bas, l'écriture d'un bot à partir de zéro serait certainement. Alors que je voulais vraiment apprendre quelque chose, je voulais aussi mettre l'accent sur la fonctionnalité réelle du bot, sans être dérangé par trop les choses « de base » (par exemple, je ne veux pas nécessairement écrire le code pour identifier le bot, je comme d'avoir juste un certain paramètre de configuration pour stocker le pseudo et mot de passe et gérer pour moi.)

Twisted a un bel exemple d'un bot qui peut se connecter être utilisé comme point de départ. De plus. Dans l'avenir, il ne devrait pas être trop difficile d'écrire un petit serveur web (en utilisant Twisted évidemment) pour afficher la sortie du bot

Astuce: en plus de la Twisted vous pouvez également jeter un oeil à la page Octobre 2008 de Python Magazine pour l'article "Un enregistrement Twisted serveur" par Doug Farrell.

Merci à ceux qui ont répondu à la question. Vous me mettre sur la bonne voie. :)

L'écriture d'un simple bot IRC est pas difficile. J'ai un modèle que je continue à utiliser pour mes bots, qui vont de bots svn bots statut de vote aux bots qui vérifient les connexions à certaines adresses IP et changent le sujet du canal en fonction du résultat.

Je peux partager la source si vous voulez, mais il n'y a rien comme écrire votre propre:)

IRC3 est une bibliothèque client embrochable irc basé sur asyncio et vénusien https://irc3.readthedocs.org/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top