From a5fdac224ff69fa8b863be19df81aa1bfe58be6c Mon Sep 17 00:00:00 2001 From: Yannik Enss Date: Wed, 27 Feb 2019 01:59:48 +0100 Subject: [PATCH] updated commands --- xmpp_tg/message_handlers.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/xmpp_tg/message_handlers.py b/xmpp_tg/message_handlers.py index 7f231ef..0c46828 100644 --- a/xmpp_tg/message_handlers.py +++ b/xmpp_tg/message_handlers.py @@ -9,6 +9,7 @@ from xmpp_tg.utils import var_dump, display_tg_name, get_contact_jid, localtime class MessageHandler(): _on_connect = lambda: None + _helptext = "Available Commands:" def _unknown_command_handler(self, *args, **kwargs): return "Unknown command, for a list send !help" @@ -34,7 +35,7 @@ class MessageHandler(): xmpp.send_message(mto=self.replyto, mtype=self.type, mbody=text) def debug(self, *args, **kwargs): - """Show debug info""" + """nolistnolist Show debug info""" return pprint.pformat(self.__dict__) def help(self, *args, **kwargs): @@ -66,13 +67,15 @@ class MessageHandler(): return '\n'.join(trimmed) if len(self.arguments) == 0: - methods = [func for func in dir(self) if not func.startswith("_") and callable(getattr(self, func))] - reply = "Available commands:" + methods = [func for func in dir(self) if not func.startswith("_") and callable(getattr(self, func)) and not isinstance(func, Exception)] + reply = self._helptext for method in methods: docstring = getattr(self, method).__doc__ if docstring is None: docstring = "No description available" - reply += "\n"+method+" ("+docstring.split("\n")[0]+")" + if docstring.startswith("nolist "): + continue + reply += "\n!{command} - {doc}".format(method, docstring.split("\n")[0] return reply else: method = getattr(self,self.arguments[0]) @@ -80,6 +83,8 @@ class MessageHandler(): return reply class GateMessageHandler(MessageHandler): + _helptext = "Available Gateway commands:" + def configure(hndl, self): """Get config/set config options""" config_exclude = ['jid', 'tg_phone'] @@ -119,6 +124,7 @@ class GateMessageHandler(MessageHandler): return 'Please enter one-time code via !code 12345.' def code(hndl, self): + """nolist Enter confirmation code""" hndl._min_args(1) code = hndl.arguments[0] @@ -146,6 +152,7 @@ class GateMessageHandler(MessageHandler): return 'You are already authenticated. Please use !logout before new login.' def password(hndl, self): + """nolist Enter password""" hndl._min_args(1) password = hndl.arguments[1] @@ -167,14 +174,8 @@ class GateMessageHandler(MessageHandler): else: self.gate_reply_message(iq, 'You are already authenticated. Please use !logout before new login.') - def list_sessions(hndl, self): - if not self.tg_connections[hndl.jid].is_user_authorized(): - return "Error" - - sessions = self.tg_connections[hndl.jid].invoke(GetAuthorizationsRequest()) - return str(sessions) - def reload_dialogs(hndl, self): + """Reload Telegram dialogs""" if not self.tg_connections[hndl.jid].is_user_authorized(): return "Error" @@ -287,7 +288,7 @@ class GateMessageHandler(MessageHandler): return response def oldhelp(hndl, self): - """Old !help message""" + """nolist Old !help message""" return ('=== Available gateway commands ===:\n\n' '!help - Displays this text\n' '!login +123456789 - Initiates Telegram session\n' @@ -316,6 +317,7 @@ class GateMessageHandler(MessageHandler): '!roster - Lists yout TG roster\n') class ChatCommandHandler(MessageHandler): + _helptext = "Available Userchat commands:" def __init__(self, msg): super(ChatCommandHandler, self).__init__(msg) @@ -324,16 +326,19 @@ class ChatCommandHandler(MessageHandler): self.tg_id = int(msg['to'].node[1:]) def block(hndl, self): + """Block this user""" nickname = display_tg_name(self.tg_dialogs[hndl.jid]['users'][hndl.tg_id]) self.tg_connections[hndl.jid].invoke(BlockRequest( InputPeerUser(hndl.tg_id, self.tg_dialogs[jid]['users'][hndl.tg_id].access_hash) ) ) self.gate_reply_message(iq, 'User %s blacklisted!' % nickname) def unblock(hndl, self): + """Unblock this user""" nickname = display_tg_name(self.tg_dialogs[hndl.jid]['users'][hndl.tg_id]) self.tg_connections[hndl.jid].invoke(UnblockRequest( InputPeerUser(hndl.tg_id, self.tg_dialogs[jid]['users'][hndl.tg_id].access_hash) ) ) self.gate_reply_message(iq, 'User %s unblacklisted!' % nickname) def remove(hndl, self): + """Remove User from Telegram contact list""" peer = InputPeerUser(hndl.tg_id, self.tg_dialogs[hndl.jid]['users'][hndl.tg_id].access_hash) c_jid = get_contact_jid(self.tg_dialogs[hndl.jid]['users'][hndl.tg_id], self.boundjid.bare)