• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

djthyrax

[Python] IRC Message Parser

4 mensagens neste tópico

class Message:
maxLen = 512
prefix = ''
command = ''
params = []
terminator = "\r\n"
_repr = ''

def __init__(self, prefix = '', command = '', params = []):
	self.prefix = prefix
	self.command = command
	self.params = params
	if self.getRepr() is None:
		raise RuntimeError, 'Invalid message'

def getRepr(self):
	if self.prefix.strip() != '':
		self._repr = "%s %s %s%s" % (self.prefix, self.command, ' '.join(self.params), self.terminator)
	else:
		self._repr = "%s %s%s" % (self.command, ' '.join(self.params), self.terminator)

	if len(self._repr) > self.maxLen:
		return None

	return self._repr

def ParseMessage(message):
if message[-2:] == "\r\n": message = message[:-2]

if message[0] == ':' and message.find(' ') > 1: #we have a prefix.
	prefix, command, params = message.split(' ', 2)
	params = params.split(' ')
else:
	prefix = ''
	command, params = message.split(' ', 1)
	params = params.split(' ')

return Message(prefix, command, params)

if __name__ == '__main__':
print ParseMessage(":simplesnet.ptnet.org NOTICE :LULZ OIS OIS\r\n").getRepr()

Docs to be written.

Para os mais curiosos, isto está relacionado com o ponto 2.3 do RFC 1459: http://www.faqs.org/ftp/rfc/pdf/rfc1459.txt.pdf

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Lib para fazer clientes (primeiro cliente vai ser mesmo um bot) (tou a pensar fazer isto por hooks), depois se tiver com pica suficiente, faço um standalone IRCd (ie., sem me preocupar em ter uma network com vários servers), e se estiver muito bored, meto isto para poder fazer uma network com vários servers.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se tu estiveres realmente mesmo muito bored. Metes o teu bot todo pipi, para testar código automaticamente que é posto no canal ou no pastebin, etc...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora