Exemplo n.º 1
0
	def server(self, hostname, port = 6667):
		if port != 6667:
			self.title = '%s:%d'%(hostname, port)
		else:
			self.title = hostname

		self.disconnect()
		IrcServer.server(self, hostname, port)
Exemplo n.º 2
0
	def __init__(self):
		IrcServer.__init__(self, ['scaramanga', 'scara', 'scara-tzu'])
		self.title = '<None>'
		self.state = self.STATE_DISCONNECTED
		self.tab = ChanWin(self, userlist = False)
		self.__sid = None
		self.__waitf = None
		self.channels = {}

		def server(win, chan, args):
			self.server(args)

		def part(win, chan, args):
			if chan is None:
				chan = args
			if self.state != self.STATE_CONNECTED:
				return
			self.part(chan)

		def join(win, chan, args):
			if not len(args):
				win.msg('Must specify a channel to join\n')
				return
			if self.state != self.STATE_CONNECTED:
				return
			self.join(args)

		def topic(win, chan, args):
			if chan is None:
				arr = args.split(None, 1)
				if len(arr) > 1:
					(chan, msg) = arr
				else:
					(chan, msg) = arr[0], None
			if not len(chan):
				win.msg('Must specify a channel for topic\n')
				return
			self.topic(chan, args)

		def privmsg(win, chan, args):
			tab = self.get_chan(chan)
			if tab is None:
				return
			tab.msg('<%s> '%self.nick, ['dark green'])
			tab.msg(args + '\n')
			self.privmsg(chan, args)

		def action(win, chan, args):
			tab = self.get_chan(chan)
			if tab is None:
				return
			tab.msg('*** %s %s\n'%(self.nick, args), ['dark green'])
			self.action(chan, args)

		def nick(win, chan, args):
			self.set_nick(args)

		def reconnect(win, chan, args):
			if self.sock is None:
				return
			self.server(self.sock.peer[0], self.sock.peer[1])

		def disconnect(win, chan, args):
			self.disconnect()

		self.__cmd = {
			'server': server,
			'topic': topic,
			'part': part,
			'join': join,
			'reconnect': reconnect,
			'disconnect': disconnect,
			'j': join,
			'privmsg': privmsg,
			'nick': nick,
			'me': action,
		}
Exemplo n.º 3
0
	def disconnect(self):
		for x in self.channels.values():
			self.emit('remove-channel', x)
		self.channels = {}
		IrcServer.disconnect(self)