From 67b850096ecaa150a68e8270a706521af6a6c0b4 Mon Sep 17 00:00:00 2001 From: mathieui Date: Sat, 14 Oct 2017 15:55:53 +0200 Subject: Split command_info in muctab --- poezio/tabs/muctab.py | 66 ++++++++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 30 deletions(-) (limited to 'poezio') diff --git a/poezio/tabs/muctab.py b/poezio/tabs/muctab.py index ec22cf15..9d83ec67 100644 --- a/poezio/tabs/muctab.py +++ b/poezio/tabs/muctab.py @@ -222,6 +222,40 @@ class MucTab(ChatTab): muc.set_user_role(self.core.xmpp, self.name, nick, reason, role, callback=callback) + @refresh_wrapper.conditional + def print_info(self, nick): + """Print information about a user""" + user = self.get_user_by_name(nick) + if not user: + return False + + theme = get_theme() + inf = '\x19' + dump_tuple(theme.COLOR_INFORMATION_TEXT) + '}' + if user.jid: + user_jid = '%s (\x19%s}%s\x19o%s)' % ( + inf, + dump_tuple(theme.COLOR_MUC_JID), + user.jid, + inf) + else: + user_jid = '' + info = ('\x19%(user_col)s}%(nick)s\x19o%(jid)s%(info)s: show: ' + '\x19%(show_col)s}%(show)s\x19o%(info)s, affiliation: ' + '\x19%(role_col)s}%(affiliation)s\x19o%(info)s, role: ' + '\x19%(role_col)s}%(role)s\x19o%(status)s') % { + 'user_col': dump_tuple(user.color), + 'nick': nick, + 'jid': user_jid, + 'info': inf, + 'show_col': dump_tuple(theme.color_show(user.show)), + 'show': user.show or 'Available', + 'role_col': dump_tuple(theme.color_role(user.role)), + 'affiliation': user.affiliation or 'None', + 'role': user.role or 'None', + 'status': '\n%s' % user.status if user.status else ''} + self.add_message(info, typ=0) + return True + def on_input(self, key, raw): if not raw and key in self.key_func: self.key_func[key]() @@ -1073,36 +1107,8 @@ class MucTab(ChatTab): if args is None: return self.core.command.help('info') nick = args[0] - user = self.get_user_by_name(nick) - if not user: - return self.core.information("Unknown user: %s" % nick, "Error") - theme = get_theme() - inf = '\x19' + dump_tuple(theme.COLOR_INFORMATION_TEXT) + '}' - if user.jid: - user_jid = '%s (\x19%s}%s\x19o%s)' % ( - inf, - dump_tuple(theme.COLOR_MUC_JID), - user.jid, - inf) - else: - user_jid = '' - info = ('\x19%s}%s\x19o%s%s: show: \x19%s}%s\x19o%s, affiliation:' - ' \x19%s}%s\x19o%s, role: \x19%s}%s\x19o%s') % ( - dump_tuple(user.color), - nick, - user_jid, - inf, - dump_tuple(theme.color_show(user.show)), - user.show or 'Available', - inf, - dump_tuple(theme.color_role(user.role)), - user.affiliation or 'None', - inf, - dump_tuple(theme.color_role(user.role)), - user.role or 'None', - '\n%s' % user.status if user.status else '') - self.add_message(info, typ=0) - self.core.refresh_window() + if not self.print_info(nick): + self.core.information("Unknown user: %s" % nick, "Error") @command_args_parser.quoted(0) def command_configure(self, ignored): -- cgit v1.2.3