Example #1
0
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
Example #2
0
	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)
Example #3
0
		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)
Example #4
0
	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)
Example #5
0
	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
Example #6
0
	def handler(time, server, nick, message):
		if message:
			whois_cb(time, server, nick, message)
		else:
			signals.disconnect_signal("whois", handler)