diff options
| author | 2019-06-04 17:53:40 +0100 | |
|---|---|---|
| committer | 2019-06-04 17:54:19 +0100 | |
| commit | 2d46fe0cbf9a383038b8715b27cfa587e5a50ecf (patch) | |
| tree | 64a34a0b8aaf1471a7b4b21420ae4a9760c727f1 /modules | |
| parent | Add 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.py | 16 |
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) |
