cliente Python IRC: escribir desde cero o escribir plugin para el marco existente?

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

  •  21-08-2019
  •  | 
  •  

Pregunta

Para nuestra empresa me gustaría tener un bot de IRC basado en Python que verifica si los sitios web de nuestros clientes están todavía en funcionamiento. Más específico: Quiero enumerar una serie de URL que debe ser visitada todos, por ejemplo, 15 minutos. Si falla, la URL debe controlar nuevamente después de 5 minutos. Si la recuperación de la URL todavía no se traduce en un código de estado HTTP 200, debe hacerse eco de la URL en su defecto en el canal para que podamos investigarlo.

He escrito un plugin para Supybot hace algún tiempo que hace, básicamente, algunos de los anteriores de una manera cruda pero eficaz. Si desea ampliar la funcionalidad del código actual a las especificaciones '' por encima tengo que hacer un poco de refactorización importante; básicamente significaría empezar desde cero.

Lo que plantea la pregunta: ¿Qué debo escribir una mejor plug-in para Supybot, a juego con los nuevos requisitos, o ir a algo completamente distinto? ¿Debo empezar desde cero (el aprendizaje de la mayoría, la aplicación de la RFC relevantes mí mismo, pasar más tiempo de lo planeado) o hay un marco adecuado que se ocupa de las cosas básicas de IRC?

¿Fue útil?

Solución

Yo voto por un nuevo plug-in para Supybot. Más información;)

Si no va a hacer mucho, intente irclib . Es una (aún se mantiene) lib pitón para el IRC.

Twisted también puede estar bien, pero es un poco pero demasiado ...

Otros consejos

A mí me suena como un caso de su aplicación querer hablar de IRC, y mi reacción visceral sería utilizar trenzado, que tiene clientes de IRC. Esto puede o no puede ser la solución correcta para usted, pero al menos vale la pena investigar.

Finalmente decidí crear uso Twisted para mi bot. En cuanto al por qué:

  • Supybot ya cuenta con una gran cantidad de funcionalidad. Y eso puede ser una buena cosa: basta con crear un plugin simple, conectarlo y comenzar a usar el bot. La desventaja es que no le gusten algunas de las funcionalidades ya previsto. A modo de ejemplo: no me gusta el hecho de que respondió a todo (Error:. "Foo" no es un comando válido). Estoy seguro de que se puede desactivar de alguna manera en algún lugar, pero este tipo de cosas pequeñas me ha molestado.

  • El Python IRC biblioteca de cliente en el otro mano se sentía un poco demasiado huesos desnudos. Especialmente ya que necesitaba tener enhebrar el cheque bot un si un número de sitios web siguen vivos sin dejar de ser sensible en el canal.

  • Si el irclib sentía como muy bajo nivel, escribiendo un robot desde cero sería sin duda. Mientras que definitivamente quería aprender algo, yo también quería concentrarse en la funcionalidad real del robot, sin ser molestado demasiado por las cosas 'básicas' (por ejemplo, no necesariamente quiero escribir el código para identificar el bot, me gustaría simplemente pasar un buen ajuste de configuración para almacenar el nombre y contraseña y manejar esto por mí.)

Twisted tiene un buen ejemplo de un registro bot que puede ser utilizado como un punto de partida. Por otra parte:. En un futuro no debería ser demasiado difícil de escribir un pequeño servidor web (utilizando Twisted obviamente) para mostrar la salida de la bot

Consejo: además de la Twisted también se puede echar un vistazo a la Octubre de 2008 de la revista Python para el artículo "Un registro de Twisted servidor" por Doug Farrell.

Gracias a los que respondieron a la pregunta. Me has tendido en el camino correcto. :)

Escribir un simple bot de IRC no es tan difícil. Tengo una plantilla sigo usando para mis robots, que van contra los robots de SVN a los robots de votación de estado para los robots que comprueban las conexiones a determinadas IP y cambiar el tema del canal de acuerdo con el resultado.

puedo compartir la fuente si lo desea, aunque no hay nada como escribir su propio:)

irc3 es una biblioteca cliente de IRC enchufable basado en asyncio y https://irc3.readthedocs.org/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top