Sk1bot: il progetto procede bene
Sk1bot sta procedendo bene anzi direi benissimo:
- avevo implementato la funzione say e stupidamente avevo dimenticato di scrivere un carattere, questa dimenticanza mi costava il fatto k il bot ripeteva solo la prima parola della frase e non tutta la frase... ora è perfetta anche qst funzione.
- alla chiusura il programma dava una infinita serie di errori nonostante (agli occhi deji utenti del chan) quit funzionasse correttamente; ora è apposto la chiusura è pulitissima, un bel print 'disconnecting...' e un raw_input() in attesa della pressione di enter perché la finestra si chiuda completamente (se viene fatto runnare da shell).
- ho implementato l'auto-re-join splittando la stringa inviatagli dal server ("nick1 KICK #chan nick2 :motivo") prendendo l'elemento [2] per joinare il chan da cui è stato kickato... MA è successa una cosa stranissima! il server continua a dirgli che non esiste un tale channel, ma il bot rejoina correttamente il chan da cui viene kickato... MA non è finita qui! infatti se invece della variabile (self.s.recv(1024)).split(' ')[2] scriviamo un qualsiasi chan ma direttamente in stringa ("#chan") l'errore non persiste, questo ovviamente non è un buon metodo di soluzione poiché ovvierebbe l'auto-re-join di altri canali diversi da quello scritto nel blocco.
- alcuni comandi erano buggati come say: usando un semplice (self.s.recv(1024)).find('!say') che sarebbe equivalente a dire '!say' in self.s.recv(1024) non si specifica la posizione del comando così se qlk1 in chat avesse scritto "
x far parlare il bot devi usare !say" il bot avrebbe risposto " x far parlare il bot devi usare" (usando .lstrip('!say') ) o sarebbe potuto succedere peggio se avessi deciso di non far dire al bot i primi 4 caratteri (intesi !-s-a-y) dando per scontato la posizione di !say (ad inizio frase)... sarebbe uscita una cosa tipo " r parlare il bot devi usare !say". Con .startswith() ho risolto ogni problema ;] - sto per impelmentare i comandi per la funzione di quote, fatto questo penso di chiudere con il bot o almeno di etichettare sta benedetta v1.5 che mi pare ank troppo completa e assortita (x tutti: !say, !+q, !-q, !q ; inoltre solo x me: !join, !part, !quit, !opme senza contare le funzioni automatiche come l'auto-re-join, o_O?, auto-kick) poi magari farò una versione 2 con dei comandi per la google research, ma prima voglio imparare ad usare bene twisted.

1 Comments:
Well written article.
Post a Comment
<< Home