Send +draft/typing
tag when processing commands
This commit is contained in:
parent
f822345976
commit
5f47d86708
1 changed files with 18 additions and 4 deletions
|
@ -10,6 +10,8 @@ COMMAND_METHODS = ["PRIVMSG", "NOTICE"]
|
||||||
|
|
||||||
REGEX_ARG_NUMBER = re.compile(r"\$(\d+)(-?)")
|
REGEX_ARG_NUMBER = re.compile(r"\$(\d+)(-?)")
|
||||||
|
|
||||||
|
MESSAGE_TAGS_CAP = utils.irc.Capability("message-tags",
|
||||||
|
"draft/message-tags-0.2")
|
||||||
MSGID_TAG = utils.irc.MessageTag("msgid", "draft/msgid")
|
MSGID_TAG = utils.irc.MessageTag("msgid", "draft/msgid")
|
||||||
|
|
||||||
NON_ALPHANUMERIC = [char for char in string.printable if not char.isalnum()]
|
NON_ALPHANUMERIC = [char for char in string.printable if not char.isalnum()]
|
||||||
|
@ -133,19 +135,27 @@ class Module(ModuleManager.BaseModule):
|
||||||
if self._is_ignored(server, user, command):
|
if self._is_ignored(server, user, command):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
message_tags = server.has_capability(MESSAGE_TAGS_CAP)
|
||||||
|
|
||||||
module_name = self._get_prefix(hook) or ""
|
module_name = self._get_prefix(hook) or ""
|
||||||
if not module_name and hasattr(hook.function, "__self__"):
|
if not module_name and hasattr(hook.function, "__self__"):
|
||||||
module_name = hook.function.__self__._name
|
module_name = hook.function.__self__._name
|
||||||
|
|
||||||
send_tags = {}
|
send_tags = {}
|
||||||
|
if message_tags:
|
||||||
msgid = MSGID_TAG.get_value(tags)
|
msgid = MSGID_TAG.get_value(tags)
|
||||||
if msgid:
|
if msgid:
|
||||||
send_tags["+draft/reply"] = msgid
|
send_tags["+draft/reply"] = msgid
|
||||||
|
|
||||||
|
server.send(utils.irc.protocol.tagmsg(target_str,
|
||||||
|
{"+draft/typing": "active"}), immediate=True)
|
||||||
|
|
||||||
stdout = outs.StdOut(server, module_name, target, target_str, send_tags)
|
stdout = outs.StdOut(server, module_name, target, target_str, send_tags)
|
||||||
stderr = outs.StdErr(server, module_name, target, target_str, send_tags)
|
stderr = outs.StdErr(server, module_name, target, target_str, send_tags)
|
||||||
command_method = self._command_method(target, server)
|
command_method = self._command_method(target, server)
|
||||||
|
|
||||||
|
ret = False
|
||||||
|
|
||||||
if hook.kwargs.get("remove_empty", True):
|
if hook.kwargs.get("remove_empty", True):
|
||||||
args_split = list(filter(None, args_split))
|
args_split = list(filter(None, args_split))
|
||||||
|
|
||||||
|
@ -204,7 +214,11 @@ class Module(ModuleManager.BaseModule):
|
||||||
stderr.send(command_method)
|
stderr.send(command_method)
|
||||||
target.last_stdout = stdout
|
target.last_stdout = stdout
|
||||||
target.last_stderr = stderr
|
target.last_stderr = stderr
|
||||||
return new_event.eaten
|
ret = new_event.eaten
|
||||||
|
|
||||||
|
if message_tags and not stdout.has_text() and not stderr.has_text():
|
||||||
|
server.send(utils.irc.protocol.tagmsg(target_str,
|
||||||
|
{"+draft/typing": "done"}), immediate=True)
|
||||||
|
|
||||||
def _command_prefix(self, server, channel):
|
def _command_prefix(self, server, channel):
|
||||||
return channel.get_setting("command-prefix",
|
return channel.get_setting("command-prefix",
|
||||||
|
|
Loading…
Reference in a new issue