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:]))
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]})
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]))
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)})
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])
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:]))
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:]))
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:])
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))
def cmd_back(main_window, argv): """ /back """ server = tabs.get_server(main_window.current_tab) connection.sushi.back(server.name)
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
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