From c1be52847bae48215a8e5589b3a3b94bc1bb913c Mon Sep 17 00:00:00 2001 From: Emmanuel Gil Peyrot Date: Thu, 31 Mar 2016 23:24:58 +0100 Subject: Fix core commands, broken in the previous commit. --- poezio/core/core.py | 160 ++++++++++++++++++++-------------------------------- 1 file changed, 62 insertions(+), 98 deletions(-) (limited to 'poezio/core/core.py') diff --git a/poezio/core/core.py b/poezio/core/core.py index e4cc2340..cccc1dd0 100644 --- a/poezio/core/core.py +++ b/poezio/core/core.py @@ -43,7 +43,7 @@ from theming import get_theme import keyboard from . completions import CompletionCore -from . import commands +from . commands import CommandCore from . import handlers from . structs import POSSIBLE_SHOW, DEPRECATED_ERRORS, \ ERROR_AND_STATUS_CODES, Command, Status @@ -56,6 +56,7 @@ class Core(object): def __init__(self): self.completion = CompletionCore(self) + self.command = CommandCore(self) # All uncaught exception are given to this callback, instead # of being displayed on the screen and exiting the program. sys.excepthook = self.on_exception @@ -162,14 +163,14 @@ class Core(object): 'M-C': self.scroll_info_down, 'M-k': self.escape_next_key, ######## actions mappings ########## - '_bookmark': self.command_bookmark, - '_bookmark_local': self.command_bookmark_local, + '_bookmark': self.command.bookmark, + '_bookmark_local': self.command.bookmark_local, '_close_tab': self.close_tab, '_disconnect': self.disconnect, - '_quit': self.command_quit, + '_quit': self.command.quit, '_redraw_screen': self.full_screen_redraw, - '_reload_theme': self.command_theme, - '_remove_bookmark': self.command_remove_bookmark, + '_reload_theme': self.command.theme, + '_remove_bookmark': self.command.remove_bookmark, '_room_left': self.rotate_rooms_left, '_room_right': self.rotate_rooms_right, '_show_roster': self.go_to_roster, @@ -177,19 +178,19 @@ class Core(object): '_scroll_up': self.scroll_page_up, '_scroll_info_up': self.scroll_info_up, '_scroll_info_down': self.scroll_info_down, - '_server_cycle': self.command_server_cycle, - '_show_bookmarks': self.command_bookmarks, + '_server_cycle': self.command.server_cycle, + '_show_bookmarks': self.command.bookmarks, '_show_important_room': self.go_to_important_room, - '_show_invitations': self.command_invitations, - '_show_plugins': self.command_plugins, - '_show_xmltab': self.command_xml_tab, + '_show_invitations': self.command.invitations, + '_show_plugins': self.command.plugins, + '_show_xmltab': self.command.xml_tab, '_toggle_pane': self.toggle_left_pane, ###### status actions ###### - '_available': lambda: self.command_status('available'), - '_away': lambda: self.command_status('away'), - '_chat': lambda: self.command_status('chat'), - '_dnd': lambda: self.command_status('dnd'), - '_xa': lambda: self.command_status('xa'), + '_available': lambda: self.command.status('available'), + '_away': lambda: self.command.status('away'), + '_chat': lambda: self.command.status('chat'), + '_dnd': lambda: self.command.status('dnd'), + '_xa': lambda: self.command.status('xa'), ##### Custom actions ######## '_exc_': self.try_execute, } @@ -645,7 +646,7 @@ class Core(object): if self.current_tab().nb == nb and config.get('go_to_previous_tab_on_alt_number'): self.go_to_previous_tab() else: - self.command_win('%d' % nb) + self.command.win('%d' % nb) # search for keyboard shortcut func = self.key_func.get(char, None) if func: @@ -1021,7 +1022,7 @@ class Core(object): """ self.tabs.append(new_tab) if focus: - self.command_win("%s" % new_tab.nb) + self.command.win("%s" % new_tab.nb) def insert_tab_nogaps(self, old_pos, new_pos): """ @@ -1141,7 +1142,7 @@ class Core(object): if len(self.room_number_jump) == 2: arg = "".join(self.room_number_jump) self.room_number_jump.clear() - self.command_win(arg) + self.command.win(arg) else: # We need to read more digits keyboard.continuation_keys_callback = read_next_digit @@ -1149,11 +1150,11 @@ class Core(object): def go_to_roster(self): "Select the roster as the current tab" - self.command_win('0') + self.command.win('0') def go_to_previous_tab(self): "Go to the previous tab" - self.command_win('%s' % (self.previous_tab_nb,)) + self.command.win('%s' % (self.previous_tab_nb,)) def go_to_important_room(self): """ @@ -1182,7 +1183,7 @@ class Core(object): if (tab.nb < self.current_tab_nb and tab_refs[state][-1].nb > self.current_tab_nb): continue - self.command_win('%s' % tab.nb) + self.command.win('%s' % tab.nb) return return @@ -1191,7 +1192,7 @@ class Core(object): for tab in self.tabs: if tab.name == tab_name: if (type_ and (isinstance(tab, type_))) or not type_: - self.command_win('%s' % (tab.nb,)) + self.command.win('%s' % (tab.nb,)) return True return False @@ -1242,7 +1243,7 @@ class Core(object): # if the room exists, focus it and return for tab in self.get_tabs(tabs.PrivateTab): if tab.name == complete_jid: - self.command_win('%s' % tab.nb) + self.command.win('%s' % tab.nb) return tab # create the new tab tab = self.get_tab_by_name(room_name, tabs.MucTab) @@ -1727,11 +1728,11 @@ class Core(object): """ Register the commands when poezio starts """ - self.register_command('help', self.command_help, + self.register_command('help', self.command.help, usage='[command]', shortdesc='\\_o< KOIN KOIN KOIN', completion=self.completion.help) - self.register_command('join', self.command_join, + self.register_command('join', self.command.join, usage="[room_name][@server][/nick] [password]", desc="Join the specified room. You can specify a nickname " "after a slash (/). If no nickname is specified, you will" @@ -1746,22 +1747,22 @@ class Core(object): ".tld/my_nick password\n/join / password", shortdesc='Join a room', completion=self.completion.join) - self.register_command('exit', self.command_quit, + self.register_command('exit', self.command.quit, desc='Just disconnect from the server and exit poezio.', shortdesc='Exit poezio.') - self.register_command('quit', self.command_quit, + self.register_command('quit', self.command.quit, desc='Just disconnect from the server and exit poezio.', shortdesc='Exit poezio.') self.register_command('next', self.rotate_rooms_right, shortdesc='Go to the next room.') self.register_command('prev', self.rotate_rooms_left, shortdesc='Go to the previous room.') - self.register_command('win', self.command_win, + self.register_command('win', self.command.win, usage='', shortdesc='Go to the specified room', completion=self.completion.win) self.commands['w'] = self.commands['win'] - self.register_command('move_tab', self.command_move_tab, + self.register_command('move_tab', self.command.move_tab, usage=' ', desc="Insert the tab at the position of " ". This will make the following tabs shift in" @@ -1771,14 +1772,14 @@ class Core(object): "tab.", shortdesc='Move a tab.', completion=self.completion.move_tab) - self.register_command('destroy_room', self.command_destroy_room, + self.register_command('destroy_room', self.command.destroy_room, usage='[room JID]', desc='Try to destroy the room [room JID], or the current' ' tab if it is a multi-user chat and [room JID] is ' 'not given.', shortdesc='Destroy a room.', completion=None) - self.register_command('show', self.command_status, + self.register_command('show', self.command.status, usage=' [status message]', desc="Sets your availability and (optionally) your status " "message. The argument is one of \"available" @@ -1787,7 +1788,7 @@ class Core(object): shortdesc='Change your availability.', completion=self.completion.status) self.commands['status'] = self.commands['show'] - self.register_command('bookmark_local', self.command_bookmark_local, + self.register_command('bookmark_local', self.command.bookmark_local, usage="[roomname][/nick] [password]", desc="Bookmark Local: Bookmark locally the specified room " "(you will then auto-join it on each poezio start). This" @@ -1798,7 +1799,7 @@ class Core(object): "(instead of default_nick)", shortdesc='Bookmark a room locally.', completion=self.completion.bookmark_local) - self.register_command('bookmark', self.command_bookmark, + self.register_command('bookmark', self.command.bookmark, usage="[roomname][/nick] [autojoin] [password]", desc="Bookmark: Bookmark online the specified room (you " "will then auto-join it on each poezio start if autojoin" @@ -1809,7 +1810,7 @@ class Core(object): "currently using in this room (instead of default_nick).", shortdesc="Bookmark a room online.", completion=self.completion.bookmark) - self.register_command('set', self.command_set, + self.register_command('set', self.command.set, usage="[plugin|][section]