def connect_callback(cli): if IDENT: irclogger.debug('Identifying with %s.'%IDENT) helpers.identify(cli,IDENT) else: irclogger.debug('NOT identifying') helpers.user(cli,NICK,NAME) for CHAN in CHANS: helpers.join(cli, CHAN)
def connect(self): """ initiates the connection to the server set in self.host:self.port and returns a generator object. >>> cli = IRCClient(my_handler, host="irc.freenode.net", port=6667) >>> g = cli.connect() >>> while 1: ... g.next() """ try: logging.info('connecting to %s:%s' % (self.host, self.port)) self.socket.connect(("%s" % self.host, self.port)) if self.blocking: # this also overrides default timeout self.socket.setblocking(1) else: self.socket.setblocking(0) helpers.nick(self, self.nick) helpers.user(self, self.nick, self.real_name) if self.connect_cb: self.connect_cb(self) buffer = bytes() while not self._end: try: buffer += self.socket.recv(1024) except socket.error as e: try: # a little dance of compatibility to get the errno errno = e.errno except AttributeError: errno = e[0] if not self.blocking and errno == 11: pass else: raise e else: data = buffer.split(bytes("\n", "ascii")) buffer = data.pop() for el in data: prefix, command, args = parse_raw_irc_command(el) try: self.command_handler.run(command, prefix, *args) except CommandError: # error will of already been loggingged by the handler pass yield True finally: if self.socket: logging.info('closing socket') self.socket.close()
def connect_callback(self,cli): logger = logging.getLogger('IRCTerm.IRCMain.connect_callback') logger.debug('user %s realname %s nick %s'%\ (self.user,self.realname,self.nick)) helpers.user(self.cli,self.user,self.realname) if self.password is not None: logger.debug('Identifying %s with %s'%(self.nick,self.password)) helpers.identify(self.cli,self.password) else: logger.debug('No identify required') logger.info('Joining %s'%self.channel) helpers.join(self.cli,self.channel)
def connect(self): """ initiates the connection to the server set in self.host:self.port """ logging.info('connecting to %s:%s' % (self.host, self.port)) self.socket.connect(("%s" % self.host, self.port)) if not self.blocking: self.socket.setblocking(0) if self.timeout: self.socket.settimeout(self.timeout) helpers.nick(self, self.nick) helpers.user(self, self.nick, self.real_name) if self.connect_cb: self.connect_cb(self)
def connect(self): """ initiates the connection to the server set in self.host:self.port and returns a generator object. >>> cli = IRCClient(my_handler, host="irc.freenode.net", port=6667) >>> g = cli.connect() >>> while 1: ... g.next() """ try: log.info("connecting to %s:%s" % (self.host, self.port)) self.socket.connect(("%s" % self.host, self.port)) if not self.blocking: self.socket.setblocking(0) helpers.nick(self, self.nick) helpers.user(self, self.nick, self.real_name) if self.connect_cb: self.connect_cb(self) buffer = "" while not self._end: try: buffer += self.socket.recv(1024) except socket.error, e: if not self.blocking and e[0] == 11: pass else: raise e else: data = buffer.split("\n") buffer = data.pop() for el in data: prefix, command, args = parse_raw_irc_command(el) try: self.command_handler.run(command, prefix, *args) except CommandError: # error will of already been logged by the handler pass yield True finally: if self.socket: log.info("closing socket") self.socket.close()