Exemplo n.º 1
0
def cmd_away(main_window, argv):
    """ /away <message> """
    # TODO default away message
    if len(argv) < 2:
        return print_notification("/away <message>")
    server = tabs.get_server(main_window.current_tab)
    connection.sushi.away(server.name, " ".join(argv[1:]))
Exemplo n.º 2
0
def cmd_away(main_window, argv):
    """ /away <message> """
    # TODO default away message
    if len(argv) < 2:
        return print_notification("/away <message>")
    server = tabs.get_server(main_window.current_tab)
    connection.sushi.away(server.name, " ".join(argv[1:]))
Exemplo n.º 3
0
def cmd_unignore(main_window, argv):
    if len(argv) != 2:
        return print_notification("Usage: /unignore <pattern>")

    server = tabs.get_server(main_window.current_tab).name
    connection.sushi.unignore(server, argv[1])

    print_notification("Unignored user %(user)s." % {"user": argv[1]})
Exemplo n.º 4
0
def cmd_notice(main_window, argv):
    """ /notice <user> <message>
		Send a notice to a user.
	"""
    if len(argv) < 3:
        return print_notification("Usage: /notice <user> <message>")
    server = tabs.get_server(main_window.current_tab)
    connection.sushi.notice(server.name, argv[1], " ".join(argv[2]))
Exemplo n.º 5
0
def cmd_notice(main_window, argv):
    """ /notice <user> <message>
		Send a notice to a user.
	"""
    if len(argv) < 3:
        return print_notification("Usage: /notice <user> <message>")
    server = tabs.get_server(main_window.current_tab)
    connection.sushi.notice(server.name, argv[1], " ".join(argv[2]))
Exemplo n.º 6
0
def cmd_unignore(main_window, argv):
    if len(argv) != 2:
        return print_notification("Usage: /unignore <pattern>")

    server = tabs.get_server(main_window.current_tab).name
    connection.sushi.unignore(server, argv[1])

    print_notification("Unignored user %(user)s." % {"user": argv[1]})
Exemplo n.º 7
0
def cmd_ignores(main_window, argv):
    """ /ignores """
    server = tabs.get_server(main_window.current_tab).name
    ignores = connection.sushi.ignores(server)

    if not ignores:
        print_normal("No users ignored on %(server)s." % {"server": server})
    else:
        print_normal("Ignored users: %(ulist)s." % {"ulist": ", ".join(ignores)})
Exemplo n.º 8
0
def cmd_nick(main_window, argv):
    """ /nick <new nick>
		Changes the current nick to a new one.
	"""
    if len(argv) != 2:
        return print_notification("Usage: /nick <new nick>")

    server = tabs.get_server(main_window.current_tab)

    connection.sushi.nick(server.name, argv[1])
Exemplo n.º 9
0
def cmd_nick(main_window, argv):
    """ /nick <new nick>
		Changes the current nick to a new one.
	"""
    if len(argv) != 2:
        return print_notification("Usage: /nick <new nick>")

    server = tabs.get_server(main_window.current_tab)

    connection.sushi.nick(server.name, argv[1])
Exemplo n.º 10
0
def cmd_ignores(main_window, argv):
    """ /ignores """
    server = tabs.get_server(main_window.current_tab).name
    ignores = connection.sushi.ignores(server)

    if not ignores:
        print_normal("No users ignored on %(server)s." % {"server": server})
    else:
        print_normal("Ignored users: %(ulist)s." %
                     {"ulist": ", ".join(ignores)})
Exemplo n.º 11
0
def cmd_mode(main_window, argv):
    """ /mode <target> [[+|-]<mode> [<param>]]
		Set (+|-) or query a mode on a target with an optional parameter.
		If wether mode nor param are given, this command queries the
		current modes set.
	"""
    if len(argv) < 2:
        return print_notification("Usage: /mode <target> [[+|-]<mode> [<param>]]")

    server = tabs.get_server(main_window.current_tab).name

    connection.sushi.mode(server, argv[1], " ".join(argv[2:]))
Exemplo n.º 12
0
def cmd_mode(main_window, argv):
    """ /mode <target> [[+|-]<mode> [<param>]]
		Set (+|-) or query a mode on a target with an optional parameter.
		If wether mode nor param are given, this command queries the
		current modes set.
	"""
    if len(argv) < 2:
        return print_notification(
            "Usage: /mode <target> [[+|-]<mode> [<param>]]")

    server = tabs.get_server(main_window.current_tab).name

    connection.sushi.mode(server, argv[1], " ".join(argv[2:]))
Exemplo n.º 13
0
        def func_proxy(main_window, argv):
            ct = main_window.current_tab

            if not ct:
                server_name = ""
                target_name = ""
            elif type(ct) == tabs.Server:
                server_name = ct.name
                target_name = ""
            else:
                server_name = tabs.get_server(ct).name
                target_name = ct.name

            return func(server_name, target_name, argv[1:])
Exemplo n.º 14
0
        def func_proxy(main_window, argv):
            ct = main_window.current_tab

            if not ct:
                server_name = ""
                target_name = ""
            elif type(ct) == tabs.Server:
                server_name = ct.name
                target_name = ""
            else:
                server_name = tabs.get_server(ct).name
                target_name = ct.name

            return func(server_name, target_name, argv[1:])
Exemplo n.º 15
0
def cmd_join(main_window, argv):
    """ /join <channel> [<key>] """
    key = ""

    if len(argv) == 3:
        cmd, channel, key = argv
    elif len(argv) == 2:
        cmd, channel = argv
    elif len(argv) == 1 and type(main_window.current_tab) == tabs.Channel:
        channel = main_window.current_tab.name
    else:
        print_notification("Usage: /join [<channel> [<key>]]")
        return

    server_tab = tabs.get_server(main_window.current_tab)

    connection.sushi.join(server_tab.name, channel, key)
    print_notification("Joining channel '%s'." % (channel))
Exemplo n.º 16
0
def cmd_join(main_window, argv):
    """ /join <channel> [<key>] """
    key = ""

    if len(argv) == 3:
        cmd, channel, key = argv
    elif len(argv) == 2:
        cmd, channel = argv
    elif len(argv) == 1 and type(main_window.current_tab) == tabs.Channel:
        channel = main_window.current_tab.name
    else:
        print_notification("Usage: /join [<channel> [<key>]]")
        return

    server_tab = tabs.get_server(main_window.current_tab)

    connection.sushi.join(server_tab.name, channel, key)
    print_notification("Joining channel '%s'." % (channel))
Exemplo n.º 17
0
def cmd_back(main_window, argv):
    """ /back """
    server = tabs.get_server(main_window.current_tab)
    connection.sushi.back(server.name)
Exemplo n.º 18
0
def cmd_dcc(main_window, argv):
    """ /dcc chat <target>
	/dcc send <target> <path>
	/dcc list <type>
	/dcc remove <type> <id>
	"""
    if no_connection():
        return

    if len(argv) < 2:
        print_notification("Usage: /dcc accept|chat|send|list|remove")
        return

    server_tab = tabs.get_server(main_window.current_tab)

    if argv[1] == "send":
        if len(argv) < 4:
            print_notification("Usage: /dcc send <target> <path>")
            return

        connection.sushi.dcc_send(server_tab.name, argv[2], argv[3])
    elif argv[1] == "accept":

        def accepted_cb(time, id, *x):
            if id == int(argv[2]):
                print_notification(
                    _("DCC action with id %(id)d accepted.") % {"id": id})
                signals.disconnect_signal("dcc_send", accepted_cb)

        if len(argv) < 3:
            print_notification("Usage: /dcc accept <id>")
            return

        signals.connect_signal("dcc_send", accepted_cb)
        connection.sushi.dcc_send_accept(int(argv[2]))
    elif argv[1] == "chat":
        pass
    elif argv[1] == "list":
        if len(argv) < 3:
            print_notification("Usage: /dcc list chat|send")
            return

        if argv[2] == "send":
            ids, servers, froms, filenames, sizes, progresses, speeds, statuses = connection.sushi.dcc_sends(
            )

            for i in range(len(ids)):
                print_normal(
                    "#%(id)d: %(filename)s from/to %(from)s [%(server)s]: %(progress)d/%(size)d @ %(speed)d"
                    % {
                        "id": ids[i],
                        "filename": filenames[i],
                        "from": froms[i],
                        "server": servers[i],
                        "progress": progresses[i],
                        "size": sizes[i],
                        "speed": speeds[i]
                    })
        elif argv[2] == "chat":
            pass
    elif argv[1] == "remove":
        if len(argv) < 4:
            print_notification("Usage: /dcc remove <type> <id>")
            return

        if argv[2] == "send":
            connection.sushi.dcc_send_remove(int(argv[3]))
        elif argv[2] == "chat":
            pass
Exemplo n.º 19
0
def cmd_back(main_window, argv):
    """ /back """
    server = tabs.get_server(main_window.current_tab)
    connection.sushi.back(server.name)
Exemplo n.º 20
0
def cmd_dcc(main_window, argv):
    """ /dcc chat <target>
	/dcc send <target> <path>
	/dcc list <type>
	/dcc remove <type> <id>
	"""
    if no_connection():
        return

    if len(argv) < 2:
        print_notification("Usage: /dcc accept|chat|send|list|remove")
        return

    server_tab = tabs.get_server(main_window.current_tab)

    if argv[1] == "send":
        if len(argv) < 4:
            print_notification("Usage: /dcc send <target> <path>")
            return

        connection.sushi.dcc_send(server_tab.name, argv[2], argv[3])
    elif argv[1] == "accept":

        def accepted_cb(time, id, *x):
            if id == int(argv[2]):
                print_notification(_("DCC action with id %(id)d accepted.") % {"id": id})
                signals.disconnect_signal("dcc_send", accepted_cb)

        if len(argv) < 3:
            print_notification("Usage: /dcc accept <id>")
            return

        signals.connect_signal("dcc_send", accepted_cb)
        connection.sushi.dcc_send_accept(int(argv[2]))
    elif argv[1] == "chat":
        pass
    elif argv[1] == "list":
        if len(argv) < 3:
            print_notification("Usage: /dcc list chat|send")
            return

        if argv[2] == "send":
            ids, servers, froms, filenames, sizes, progresses, speeds, statuses = connection.sushi.dcc_sends()

            for i in range(len(ids)):
                print_normal(
                    "#%(id)d: %(filename)s from/to %(from)s [%(server)s]: %(progress)d/%(size)d @ %(speed)d"
                    % {
                        "id": ids[i],
                        "filename": filenames[i],
                        "from": froms[i],
                        "server": servers[i],
                        "progress": progresses[i],
                        "size": sizes[i],
                        "speed": speeds[i],
                    }
                )
        elif argv[2] == "chat":
            pass
    elif argv[1] == "remove":
        if len(argv) < 4:
            print_notification("Usage: /dcc remove <type> <id>")
            return

        if argv[2] == "send":
            connection.sushi.dcc_send_remove(int(argv[3]))
        elif argv[2] == "chat":
            pass