def cmd_stop_list(serverTab, channelTab, args): """ Aborts printing the channel list. Usage: /stoplist """ try: signals.disconnect_signal("list", cmd_list.list_cb) except AttributeError: # already stopped return
def unload(self): """ unregister all signals and commands used by this plugin """ for (signal, hlist) in self.__signals: for handler in hlist: signals.disconnect_signal(signal, handler) for (command, handler) in self.__commands: commands.remove_command(command, handler)
def names_cb(time, server, channel, nicks, prefixes): self = names_cb def print_message(message): if self.tab.is_active(): # print in the channel we query self.tab.write(time, message, "action") elif self.tab.is_server(): self.tab.current_write(time, message, "action") else: # print in the current channel self.tab.server.current_write(time, message, "action") if self.first: print_message(_("• Begin of names")) self.first = False if not nicks: # eol signals.disconnect_signal("names", self) print_message(_("• End of names")) else: max_nicklen = max([len(n)+len(p) for (p,n) in self.tab.nickList.get_nicks_mode()]) message = "" for i in xrange(len(nicks)): nick_color = color.get_nick_color(nicks[i]) c_start = "<font foreground='%s'>" % (nick_color) c_end = "</font>" tmp = "[{prefix}{cstart}{nick}{cend}]".format( prefix=prefixes[i], nick=nicks[i], cstart=c_start, cend=c_end) overhead = len(tmp) - len(nicks[i]) - len(prefixes[i]) message += "{0:{align}<{fill}}".format(tmp, align=" ", fill=max_nicklen + overhead) if (i+1) % self.max_col == 0: print_message(message) message = "" else: message += " " print_message(message)
def channelList_cb(time, server, channel, users, topic): """ Signal for /list command. Prints content of the listing. """ self = code.init_function_attrs(channelList_cb, _text=[], _line=0, _tab=gui.tabs.search_tab(server)) def print_listing(): self._tab.write_raw("<br/>".join(self._text)) self._text = [] self._line = 0 return False if not channel and not topic and users == -1: # listing ended, reset variables def print_end(): self._tab.write(time, "End of list.") return False if self._line > 0: # print rest gobject.idle_add(print_listing) gobject.idle_add(print_end) code.reset_function_attrs(channelList_cb) signals.disconnect_signal("list", channelList_cb) else: self._text.append(("• <b>%s</b><br/>\t%d "+_("User")+"<br/>"+ "\t"+_("Topic")+": \"%s\"") % ( markup.escape(channel), users, markup.escape(topic))) self._line += 1 if self._line == 10: gobject.idle_add(print_listing)
def disconnect_signal(self, signal, func): if signals.disconnect_signal(signal, func): i = self.__signals[signal].index(func) del self.__signals[signal][i] return True return False
def handler(time, server, nick, message): if message: whois_cb(time, server, nick, message) else: signals.disconnect_signal("whois", handler)