aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2019-10-28 10:56:33 +0000
committerGravatar jesopo2019-10-28 10:56:33 +0000
commit7ee65f8f8ca9da93174284450db891346ea9daaf (patch)
treeef74117b4262d1f5a4e18f6d568b5ef8d13aeb14 /modules
parentRevert "remove unneeded import" (diff)
signature
remove src/utils/irc/protocol.py
Diffstat (limited to 'modules')
-rw-r--r--modules/commands/__init__.py13
-rw-r--r--modules/commands/outs.py18
-rw-r--r--modules/ircv3_multiline.py3
-rw-r--r--modules/relay.py13
-rw-r--r--modules/signals.py4
5 files changed, 29 insertions, 22 deletions
diff --git a/modules/commands/__init__.py b/modules/commands/__init__.py
index 9b104325..8cf56aa4 100644
--- a/modules/commands/__init__.py
+++ b/modules/commands/__init__.py
@@ -2,7 +2,7 @@
#--depends-on permissions
import re, string, traceback, typing
-from src import EventManager, ModuleManager, utils
+from src import EventManager, IRCLine, ModuleManager, utils
from . import outs
COMMAND_METHOD = "command-method"
@@ -172,6 +172,9 @@ class Module(ModuleManager.BaseModule):
if not is_success:
raise utils.EventError(message)
+ def _tagmsg(self, target, tags):
+ return IRCLine.ParsedLine("TAGMSG", [target], tags=tags)
+
def command(self, server, target, target_str, is_channel, user, command,
args_split, tags, hook, **kwargs):
message_tags = server.has_capability(MESSAGE_TAGS_CAP)
@@ -188,8 +191,8 @@ class Module(ModuleManager.BaseModule):
send_tags["+draft/reply"] = msgid
if expect_output:
- server.send(utils.irc.protocol.tagmsg(target_str,
- {"+draft/typing": "active"}), immediate=True)
+ line = self._tagmsg(target_str, {"+draft/typing": "active"})
+ server.send(line, immediate=True)
stdout = outs.StdOut(server, module_name, target, target_str, send_tags)
stderr = outs.StdErr(server, module_name, target, target_str, send_tags)
@@ -238,8 +241,8 @@ class Module(ModuleManager.BaseModule):
ret = new_event.eaten
if expect_output and message_tags and not has_out:
- server.send(utils.irc.protocol.tagmsg(target_str,
- {"+draft/typing": "done"}), immediate=True)
+ line = self._tagmsg(target_str, {"+draft/typing": "done"})
+ server.send(line, immediate=True)
return ret
diff --git a/modules/commands/outs.py b/modules/commands/outs.py
index 9098df63..0fd8db7d 100644
--- a/modules/commands/outs.py
+++ b/modules/commands/outs.py
@@ -6,6 +6,14 @@ STR_MORE_LEN = len(STR_MORE.encode("utf8"))
STR_CONTINUED = "(...continued) "
WORD_BOUNDARY = ' '
+def _mesage_factory(command):
+ if not command in ["PRIVMSG", "NOTICE"]:
+ raise ValueError("Unknown command method '%s'" % method)
+
+ def _(target, message):
+ return IRCLine.ParsedLine(command, [target, message])
+ return _
+
class Out(object):
def __init__(self, server, module_name, target, target_str, tags):
self.server = server
@@ -39,15 +47,9 @@ class Out(object):
text = text.replace("\n\n", "\n")
full_text = "%s%s" % (prefix, text)
- line_factory = None
- if method == "PRIVMSG":
- line_factory = utils.irc.protocol.privmsg
- elif method == "NOTICE":
- line_factory = utils.irc.protocol.notice
- else:
- raise ValueError("Unknown command method '%s'" % method)
+ message_factory = _mess_factory(method)
- line = line_factory(self._target_str, full_text, tags=self._tags)
+ line = message_factory(self._target_str, full_text, tags=self._tags)
if self._assured:
line.assure()
diff --git a/modules/ircv3_multiline.py b/modules/ircv3_multiline.py
index e07b2400..c03448af 100644
--- a/modules/ircv3_multiline.py
+++ b/modules/ircv3_multiline.py
@@ -18,7 +18,8 @@ class Module(ModuleManager.BaseModule):
batch = IRCLine.IRCSendBatch("draft/multiline",
[target])
for line in lines:
- batch.add_line(utils.irc.protocol.privmsg(target, line))
+ line = IRCLine.ParsedLine("PRIVMSG", [target, line])
+ batch.add_line(line)
for line in batch.get_lines():
event["server"].send(line)
diff --git a/modules/relay.py b/modules/relay.py
index 9660f571..c40fb6c0 100644
--- a/modules/relay.py
+++ b/modules/relay.py
@@ -46,13 +46,14 @@ class Module(ModuleManager.BaseModule):
relay_message = "[%s%s] %s" % (server_name,
relay_prefix_channel, event["line"])
- message = utils.irc.protocol.privmsg(relay_channel.name,
- relay_message)
- server._relay_ignore.append(message.id)
- self.bot.trigger(self._send_factory(server, message))
+ self.bot.trigger(self._send_factory(server, relay_channel.name,
+ relay_message))
- def _send_factory(self, server, message):
- return lambda: server.send(message)
+ def _send_factory(self, server, channel_name, message):
+ def _():
+ message = server.send_message(channel_name, message)
+ server._relay_ignore.append(message.parsed_line.id)
+ return _
@utils.hook("formatted.message.channel")
@utils.hook("formatted.notice.channel")
diff --git a/modules/signals.py b/modules/signals.py
index f3adcbb0..921b483c 100644
--- a/modules/signals.py
+++ b/modules/signals.py
@@ -1,5 +1,5 @@
import signal, sys
-from src import Config, ModuleManager, utils
+from src import Config, IRCLine, ModuleManager, utils
class Module(ModuleManager.BaseModule):
def on_load(self):
@@ -24,7 +24,7 @@ class Module(ModuleManager.BaseModule):
if server.connected:
server.socket.clear_send_buffer()
- line = utils.irc.protocol.quit("Shutting down")
+ line = IRCLine.ParsedLine("QUIT", ["Shutting down"])
sent_line = server.send(line, immediate=True)
sent_line.events.on("send").hook(self._make_hook(server))