aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2019-06-04 17:53:40 +0100
committerGravatar jesopo2019-06-04 17:54:19 +0100
commit2d46fe0cbf9a383038b8715b27cfa587e5a50ecf (patch)
tree64a34a0b8aaf1471a7b4b21420ae4a9760c727f1 /modules
parentAdd new BatchType object, to match like how Capability and MessageTag do (diff)
signature
labels: Use BatchType to match, pass `lines` not `line`, batch ID isn't a label,
fire event on label response
Diffstat (limited to 'modules')
-rw-r--r--modules/ircv3_labeled_responses.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/modules/ircv3_labeled_responses.py b/modules/ircv3_labeled_responses.py
index 59bab81a..d6ee7975 100644
--- a/modules/ircv3_labeled_responses.py
+++ b/modules/ircv3_labeled_responses.py
@@ -31,20 +31,22 @@ class Module(ModuleManager.BaseModule):
label = str(uuid.uuid4())
event["line"].tags[tag_key] = label
- event["server"]._label_cache[label] = event["line"]
+ event["server"]._label_cache[label] = [event["line"],
+ event["events"]]
@utils.hook("raw.received")
def raw_recv(self, event):
if not event["line"].command == "BATCH":
label = TAG.get_value(event["line"].tags)
if not label == None:
- self._recv(event["server"], label, event["line"])
+ self._recv(event["server"], label, [event["line"]])
@utils.hook("received.batch.end")
def batch_end(self, event):
- if TAG.match(event["batch"].type):
- self._recv(event["server"], event["batch"].identifier, None)
+ if BATCH.match(event["batch"].type):
+ label = TAG.get_value(event["batch"].tags)
+ self._recv(event["server"], label, event["batch"].get_lines())
- def _recv(self, server, label, line):
- cached_line = server._label_cache.pop(label)
- # do something with the line!
+ def _recv(self, server, label, lines):
+ cached_line, cached_events = server._label_cache.pop(label)
+ cached_events.on("labeled-response").call(lines=lines)