Example #1
0
def sushi_part(time, server, sender, channel, message):
	""" message can be empty """
	tab = main_window.find_tab (server, channel)
	nick = parse_from(sender)[0]

	if not tab:
		# ignore this cause it could be this tab was
		# closed recently
		return

	if tab.parent.get_nick() == nick:
		# we parted
		tab.set_joined(False)
		main_window.update_divider()

	else:
		tab.nicklist.remove_nick(nick)

	msg = format_message("actions", "part",
		{"nick": nick,
		 "channel": channel,
		 "reason": message},
		own = (tab.parent.get_nick() == nick),
		highlight = False)
	msg.markup_cb = color_nick_markup_cb

	print_tab(tab, msg)
Example #2
0
def sushi_topic(time, server, sender, channel, topic):
    """ sender can be empty """
    tab = main_window.find_tab(server, channel)

    if not tab:
        print_error("No tab '%s' on '%s' for topic setting." %
                    (channel, server))
        return

    tab.set_topic(topic)
    nick = parse_from(sender)[0]

    if sender == "":
        template = "topic_anonymous"
    else:
        template = "topic"

    msg = format_message("actions",
                         template, {
                             "nick": nick,
                             "channel": channel,
                             "topic": topic
                         },
                         own=(tab.parent.get_nick() == nick),
                         highlight=False)
    if nick:
        msg.markup_cb = color_nick_markup_cb

    print_tab(tab, msg)

    if tab == main_window.current_tab:
        # update topic bar
        main_window.header.set_text(tab.get_topic())
Example #3
0
def sushi_part(time, server, sender, channel, message):
    """ message can be empty """
    tab = main_window.find_tab(server, channel)
    nick = parse_from(sender)[0]

    if not tab:
        # ignore this cause it could be this tab was
        # closed recently
        return

    if tab.parent.get_nick() == nick:
        # we parted
        tab.set_joined(False)
        main_window.update_divider()

    else:
        tab.nicklist.remove_nick(nick)

    msg = format_message("actions",
                         "part", {
                             "nick": nick,
                             "channel": channel,
                             "reason": message
                         },
                         own=(tab.parent.get_nick() == nick),
                         highlight=False)
    msg.markup_cb = color_nick_markup_cb

    print_tab(tab, msg)
Example #4
0
def sushi_quit(time, server, sender, message):
	""" message can be empty """
	server_tab = main_window.find_server(server)

	if not server_tab:
		print_error("No server tab for server '%s'." % (server))
		return

	nick = parse_from(sender)[0]

	msg = format_message("actions", "quit",
		{"nick": nick,
		 "reason": message},
		own = (nick == server_tab.get_nick()),
		highlight = False)
	msg.markup_cb = color_nick_markup_cb

	if nick == server_tab.get_nick():
		# we quit
		server_tab.set_connected(False)

		for child in server_tab.children:
			print_tab(child, msg)

	else:
		for tab in server_tab.children:
			if type(tab) == tabs.Channel and tab.nicklist.has_nick(nick):
				tab.nicklist.remove_nick(nick)
				print_tab(tab, msg)
			elif (type(tab) == tabs.Query
				and tab.name.lower() == nick.lower()):
				print_tab(tab, msg)
Example #5
0
def sushi_join(time, server, sender, channel):

    server_tab = main_window.find_server(server)

    if not server_tab:
        print_error("Missing server tab for '%s'." % (server))
        return

    tab = main_window.find_tab(server, channel)
    nick = parse_from(sender)[0]

    if nick == server_tab.get_nick():
        # we join
        if not tab:
            tab = tabs.Channel(name=channel, parent=server_tab)

        tab.set_joined(True)
        main_window.update_divider()

    else:
        # somebody joined
        tab.nicklist.add_nick(nick)

    msg = format_message("actions",
                         "join", {
                             "nick": nick,
                             "host": sender,
                             "channel": channel
                         },
                         own=(nick == server_tab.get_nick()),
                         highlight=False)

    msg.markup_cb = color_nick_markup_cb

    print_tab(tab, msg)
Example #6
0
def sushi_kick(time, server, sender, channel, who, message):
    """ message can be empty """
    stab = main_window.find_server(server)

    if not stab:
        print_error("missing stab '%s'" % (server))
        return

    nick = parse_from(sender)[0]
    tab = main_window.find_tab(server, channel)

    if who == stab.get_nick():
        # we got kicked
        pass

    else:
        tab.nicklist.remove_nick(who)

    msg = format_message("actions",
                         "kick", {
                             "who": who,
                             "channel": channel,
                             "nick": nick,
                             "reason": message
                         },
                         own=(who == stab.get_nick()),
                         highlight=(nick == tab.parent.get_nick()))
    msg.markup_cb = color_nick_markup_cb

    print_tab(tab, msg)
Example #7
0
def sushi_quit(time, server, sender, message):
    """ message can be empty """
    server_tab = main_window.find_server(server)

    if not server_tab:
        print_error("No server tab for server '%s'." % (server))
        return

    nick = parse_from(sender)[0]

    msg = format_message("actions",
                         "quit", {
                             "nick": nick,
                             "reason": message
                         },
                         own=(nick == server_tab.get_nick()),
                         highlight=False)
    msg.markup_cb = color_nick_markup_cb

    if nick == server_tab.get_nick():
        # we quit
        server_tab.set_connected(False)

        for child in server_tab.children:
            print_tab(child, msg)

    else:
        for tab in server_tab.children:
            if type(tab) == tabs.Channel and tab.nicklist.has_nick(nick):
                tab.nicklist.remove_nick(nick)
                print_tab(tab, msg)
            elif (type(tab) == tabs.Query
                  and tab.name.lower() == nick.lower()):
                print_tab(tab, msg)
Example #8
0
def sushi_kick(time, server, sender, channel, who, message):
	""" message can be empty """
	stab = main_window.find_server(server)

	if not stab:
		print_error("missing stab '%s'" % (server))
		return

	nick = parse_from(sender)[0]
	tab = main_window.find_tab(server, channel)

	if who == stab.get_nick():
		# we got kicked
		pass

	else:
		tab.nicklist.remove_nick(who)

	msg = format_message("actions", "kick",
		{"who": who,
		 "channel": channel,
		 "nick": nick,
		 "reason": message},
		own = (who == stab.get_nick()),
		highlight = (nick == tab.parent.get_nick()))
	msg.markup_cb = color_nick_markup_cb

	print_tab(tab, msg)
Example #9
0
def sushi_mode(time, server, sender, target, mode, param):
    """ sender can be empty, param can be empty """
    if sender == "":
        # mode listing
        msg = format_message(
            "actions",
            "mode_list", {
                "target": target,
                "mode": mode
            },
            own=(target == main_window.find_server(server).get_nick()),
            highlight=False)
        current_server_tab_print(server, msg)

    else:
        nick = parse_from(sender)[0]
        msg = format_message(
            "actions",
            "mode", {
                "nick": nick,
                "mode": mode,
                "param": param and " " + param or "",
                "target": target
            },
            own=(nick == main_window.find_server(server).get_nick()),
            highlight=(target == main_window.find_server(server).get_nick()))
        msg.markup_cb = color_nick_markup_cb

        tab = main_window.find_tab(server, target)
        print_tab(tab, msg)
Example #10
0
def sushi_join(time, server, sender, channel):

	server_tab = main_window.find_server(server)

	if not server_tab:
		print_error("Missing server tab for '%s'." % (server))
		return

	tab = main_window.find_tab(server, channel)
	nick = parse_from(sender)[0]

	if nick == server_tab.get_nick():
		# we join
		if not tab:
			tab = tabs.Channel(name = channel, parent = server_tab)

		tab.set_joined(True)
		main_window.update_divider()

	else:
		# somebody joined
		tab.nicklist.add_nick(nick)

	msg = format_message("actions", "join",
		{"nick": nick,
   		 "host": sender,
		 "channel": channel},
		own = (nick == server_tab.get_nick()),
		highlight = False)

	msg.markup_cb = color_nick_markup_cb

	print_tab(tab, msg)
Example #11
0
def sushi_topic(time, server, sender, channel, topic):
	""" sender can be empty """
	tab = main_window.find_tab(server, channel)

	if not tab:
		print_error("No tab '%s' on '%s' for topic setting." % (
			channel, server))
		return

	tab.set_topic(topic)
	nick = parse_from(sender)[0]

	if sender == "":
		template = "topic_anonymous"
	else:
		template = "topic"

	msg = format_message("actions", template,
		{"nick": nick,
		 "channel": channel,
		 "topic": topic},
		own = (tab.parent.get_nick() == nick),
		highlight = False)
	if nick:
		msg.markup_cb = color_nick_markup_cb

	print_tab(tab, msg)

	if tab == main_window.current_tab:
		# update topic bar
		main_window.header.set_text(tab.get_topic())
Example #12
0
def sushi_nick(time, server, old, new):
    """ old == "" => new == current nick """
    stab = main_window.find_server(server)

    if not stab:
        print_error("missing stab '%s'" % server)
        return

    if not old or old == stab.get_nick():
        stab.set_nick(new)

        if main_window.current_tab in tabs.tree_to_list([stab]):
            main_window.update_divider()

        msg = format_message("actions",
                             "nick", {
                                 "nick": old,
                                 "new_nick": new
                             },
                             own=True,
                             highlight=False)

        current_server_tab_print(server, msg)

    else:
        # print status message in channel tab
        old = connection.parse_from(old)[0]
        new = connection.parse_from(new)[0]

        msg = format_message("actions",
                             "nick", {
                                 "nick": old,
                                 "new_nick": new
                             },
                             own=False,
                             highlight=False)

        msg.markup_cb = color_nick_markup_cb
        msg.markup_cb_kwargs = {"values": ["nick", "new_nick"]}

        for tab in stab.children:
            if type(tab) == tabs.Channel and tab.nicklist.has_nick(old):
                tab.nicklist.rename_nick(old, new)
                print_tab(tab, msg)
Example #13
0
def sushi_nick(time, server, old, new):
	""" old == "" => new == current nick """
	stab = main_window.find_server(server)

	if not stab:
		print_error("missing stab '%s'" % server)
		return

	if not old or old == stab.get_nick():
		stab.set_nick(new)

		if main_window.current_tab in tabs.tree_to_list([stab]):
			main_window.update_divider()

		msg = format_message("actions", "nick",
			{"nick": old,
			 "new_nick": new},
			own = True,
			highlight = False)

		current_server_tab_print(server, msg)

	else:
		# print status message in channel tab
		old = connection.parse_from(old)[0]
		new = connection.parse_from(new)[0]

		msg = format_message("actions", "nick",
			{"nick": old,
			 "new_nick": new},
			own = False,
			highlight = False)

		msg.markup_cb = color_nick_markup_cb
		msg.markup_cb_kwargs = {"values":["nick","new_nick"]}

		for tab in stab.children:
			if type(tab) == tabs.Channel and tab.nicklist.has_nick(old):
				tab.nicklist.rename_nick(old,new)
				print_tab(tab, msg)
Example #14
0
def sushi_invite(time, server, sender, channel, who):
	""" sender can be empty """
	sender_name = parse_from(sender)[0]

	msg = format_message("actions", "invite",
		{"nick": sender_name,
		 "who": who,
		 "channel": channel},
		own = (sender_name == main_window.find_server(server).get_nick()),
		highlight = (who == sender_name))

	msg.markup_cb = color_nick_markup_cb

	current_server_tab_print(server, msg)
Example #15
0
def sushi_action(time, server, sender, target, message):
	nick = parse_from(sender)[0]
	tab = find_target_tab(server, target, nick)

	if not tab:
		return

	msg = format_message("messages", "action",
		{"nick": nick,
		 "message": message},
		own = (tab.parent.get_nick() == nick),
		highlight = (nick != tab.parent.get_nick()) and is_highlighted(server, message))

	print_tab(tab, msg)
Example #16
0
	def _message_cb(self, timestamp, server, sender, target, message):
		if not target:
			locationFormat = server
		else:
			locationFormat = server+":"+target

		format = "[%(timestamp)s] (%(location)s) <%(nick)s> %(message)s" % {
			"timestamp": time.strftime("%H:%M", time.localtime(timestamp)),
			"location": locationFormat,
			"nick": connection.parse_from(sender)[0],
			"message": message}

		self.text_walker.append(urwid.Text(format))
		self.scroll_to_bottom()
Example #17
0
    def _message_cb(self, timestamp, server, sender, target, message):
        if not target:
            locationFormat = server
        else:
            locationFormat = server + ":" + target

        format = "[%(timestamp)s] (%(location)s) <%(nick)s> %(message)s" % {
            "timestamp": time.strftime("%H:%M", time.localtime(timestamp)),
            "location": locationFormat,
            "nick": connection.parse_from(sender)[0],
            "message": message
        }

        self.text_walker.append(urwid.Text(format))
        self.scroll_to_bottom()
Example #18
0
def sushi_invite(time, server, sender, channel, who):
    """ sender can be empty """
    sender_name = parse_from(sender)[0]

    msg = format_message(
        "actions",
        "invite", {
            "nick": sender_name,
            "who": who,
            "channel": channel
        },
        own=(sender_name == main_window.find_server(server).get_nick()),
        highlight=(who == sender_name))

    msg.markup_cb = color_nick_markup_cb

    current_server_tab_print(server, msg)
Example #19
0
def sushi_action(time, server, sender, target, message):
    nick = parse_from(sender)[0]
    tab = find_target_tab(server, target, nick)

    if not tab:
        return

    msg = format_message("messages",
                         "action", {
                             "nick": nick,
                             "message": message
                         },
                         own=(tab.parent.get_nick() == nick),
                         highlight=(nick != tab.parent.get_nick())
                         and is_highlighted(server, message))

    print_tab(tab, msg)
Example #20
0
def sushi_message(time, server, sender, target, message):
	nick = parse_from(sender)[0]
	tab = find_target_tab(server, target, nick)

	if not tab:
		return

	msg = format_message("messages", "message",
		{"message": message,
		 "nick": nick,
		 "prefix": sushi.user_channel_prefix(server, target, nick)},
		own = (nick == tab.parent.get_nick()),
		highlight = (nick != tab.parent.get_nick())
					and is_highlighted(server, message))

	msg.markup_cb = color_nick_markup_cb

	print_tab(tab, msg)
Example #21
0
def sushi_notice(time, server, sender, target, message):
	own_nick = main_window.find_server(server).get_nick()
	nick = parse_from(sender)[0]

	msg = format_message("messages", "notice",
		{"nick": nick,
		 "target": target,
		 "message": message},
		own = (nick == own_nick),
		highlight = is_highlighted(server, message))

	msg.markup_cb = color_nick_markup_cb

	if target[0] in sushi.support_chantypes(server):
		tab = find_target_tab(server, target)
		if not tab:
			current_server_tab_print(server, msg)
	else:
		current_server_tab_print(server, msg)
Example #22
0
def sushi_notice(time, server, sender, target, message):
    own_nick = main_window.find_server(server).get_nick()
    nick = parse_from(sender)[0]

    msg = format_message("messages",
                         "notice", {
                             "nick": nick,
                             "target": target,
                             "message": message
                         },
                         own=(nick == own_nick),
                         highlight=is_highlighted(server, message))

    msg.markup_cb = color_nick_markup_cb

    if target[0] in sushi.support_chantypes(server):
        tab = find_target_tab(server, target)
        if not tab:
            current_server_tab_print(server, msg)
    else:
        current_server_tab_print(server, msg)
Example #23
0
def sushi_message(time, server, sender, target, message):
    nick = parse_from(sender)[0]
    tab = find_target_tab(server, target, nick)

    if not tab:
        return

    msg = format_message(
        "messages",
        "message", {
            "message": message,
            "nick": nick,
            "prefix": sushi.user_channel_prefix(server, target, nick)
        },
        own=(nick == tab.parent.get_nick()),
        highlight=(nick != tab.parent.get_nick())
        and is_highlighted(server, message))

    msg.markup_cb = color_nick_markup_cb

    print_tab(tab, msg)
Example #24
0
def sushi_mode(time, server, sender, target, mode, param):
	""" sender can be empty, param can be empty """
	if sender == "":
		# mode listing
		msg = format_message("actions", "mode_list",
			{"target": target, "mode": mode},
			own = (target == main_window.find_server(server).get_nick()),
			highlight = False)
		current_server_tab_print(server, msg)

	else:
		nick = parse_from(sender)[0]
		msg = format_message("actions", "mode",
			{"nick": nick,
			 "mode": mode,
			 "param": param and " "+param or "",
			 "target": target},
			own = (nick == main_window.find_server(server).get_nick()),
			highlight = (target == main_window.find_server(server).get_nick()))
		msg.markup_cb = color_nick_markup_cb

		tab = main_window.find_tab(server, target)
		print_tab(tab, msg)
Example #25
0
 def parse_from(self, host):
     return connection.parse_from(host)
Example #26
0
 def parse_from(self, host):
     return connection.parse_from(host)
Example #27
0
	def add_nick(self, host):
		(nick,ident,host) = connection.parse_from(host)
		self[unicode(nick)] = (ident,host)
Example #28
0
 def add_nick(self, host):
     (nick, ident, host) = connection.parse_from(host)
     self[unicode(nick)] = (ident, host)