client IRC Python: scrivere da zero o scrivere plug-in per quadro esistente?

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

  •  21-08-2019
  •  | 
  •  

Domanda

Per la nostra azienda mi piacerebbe avere un bot IRC basato su Python che verifica se i siti dei nostri clienti sono ancora in funzione. Più specifico: voglio elencare una serie di URL che dovrebbe essere visitato ogni, diciamo, 15 minuti. Se fallisce, l'URL deve essere controllato di nuovo dopo 5 minuti. Se recuperando l'URL ancora non si traduca in un codice di stato HTTP 200, dovrebbe risuonare l'URL non riuscendo nel canale in modo che possiamo indagare.

Ho scritto un plugin per Supybot qualche tempo fa, che fa sostanzialmente alcuni di quanto sopra in maniera rozza ma efficace. Se voglio espandere la funzionalità del codice corrente alle 'specifiche' di cui sopra ho bisogno di fare un po 'maggiore refactoring; in pratica significherebbe partire da zero.

Il che pone la domanda: dovrei scrivere un plugin migliore per la Supybot, corrispondenti alle nuove esigenze, o fare qualcosa di completamente diverso? Dovrei iniziare da zero (l'apprendimento di più, l'attuazione della RFC rilevanti me , trascorrere più tempo del previsto) o c'è un quadro adeguato che gestisce le cose di base IRC?

È stato utile?

Soluzione

Io voto per un nuovo plug-in per Supybot. Per saperne di più;)

Se non si farà così tanto, provare irclib . Si tratta di una (ancora mantenuto) lib python per IRC.

ritorto può anche essere ok, ma è un po 'ma troppo ...

Altri suggerimenti

A me suona come un caso di vostra applicazione voler parlare IRC, e la mia reazione istintiva sarebbe quella di utilizzare Contorto, che ha client IRC. Questo può o non può essere la soluzione giusta per voi, ma almeno vale la pena indagare.

Alla fine ho deciso di creare uso ritorto per il mio bot. Per quanto riguarda il motivo per cui:

  • Supybot ha già un sacco di funzionalità. E che può essere una buona cosa: basta creare un semplice plugin, collegarlo e iniziare a utilizzare il bot. Il rovescio della medaglia è che non è possibile, come alcune delle funzionalità già previsto. Per fare un esempio: non mi piace il fatto che ha risposto a tutto (Errore:. "Foo" non è un comando valido). Sono sicuro che può essere disattivato in qualche modo da qualche parte, ma questo tipo di piccole cose mi ha dato fastidio.

  • Il Python IRC libreria client dall'altra mano sentiva un po 'le ossa troppo nude. Soprattutto da quando ho bisogno di threading di avere il controllo di bot a se un certo numero di siti web sono ancora in vita, pur rimanendo reattivo nel canale.

  • Se l'irclib sentiva come troppo di basso livello, scrivendo un bot da zero sarebbe certamente. Mentre io volevo assolutamente imparare qualcosa, volevo anche concentrarsi su l'effettiva funzionalità del bot, senza essere disturbati troppo dalla roba 'base' (ad esempio, non necessariamente voglia di scrivere il codice per identificare il bot, ho piace avere solo alcune impostazioni di configurazione per memorizzare il nickname e password e gestire questo per me.)

ritorto ha una bella esempio di un bot registrazione che può essere utilizzato come punto di partenza. Inoltre:., In futuro non dovrebbe essere troppo difficile da scrivere un piccolo webserver (usando ritorto ovviamente) per visualizzare l'output del bot

Suggerimento: oltre alla ritorto si può anche dare un'occhiata alla Ottobre 2008 di Python Magazine per l'articolo "a torto server di registrazione" di Doug Farrell.

Grazie a quelli che hanno risposto alla domanda. Mi hai sulla strada giusta. :)

Scrivi semplice bot IRC non è così difficile. Ho un modello continuo ad usare per i miei bot, che vanno da SVN bot a bot voto status di bot che controllano le connessioni a determinati IP e cambiare argomento del canale in base al risultato.

posso condividere la fonte, se si desidera, anche se non c'è niente come scrivere il proprio:)

irc3 è una libreria client IRC plugable sulla base di asyncio e https://irc3.readthedocs.org/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top