diff options
| author | 2019-12-10 05:27:35 +0000 | |
|---|---|---|
| committer | 2019-12-10 05:27:35 +0000 | |
| commit | 638eee0d685c06d258cb55287204ca97bca7c344 (patch) | |
| tree | 33442439317ae2846f1efb7674b7a3758c8990a1 /modules/ircv3_labeled_responses.py | |
| parent | move sys.exit() codes to an enum in utils.consts (diff) | |
| signature | ||
move core modules to src/core_modules, make them uneffected by white/black list
Diffstat (limited to 'modules/ircv3_labeled_responses.py')
| -rw-r--r-- | modules/ircv3_labeled_responses.py | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/modules/ircv3_labeled_responses.py b/modules/ircv3_labeled_responses.py deleted file mode 100644 index 7dd04b5c..00000000 --- a/modules/ircv3_labeled_responses.py +++ /dev/null @@ -1,67 +0,0 @@ -import uuid -from src import ModuleManager, utils - -CAP = utils.irc.Capability(None, "draft/labeled-response-0.2", - alias="labeled-response", depends_on=["batch"]) -TAG = utils.irc.MessageTag(None, "draft/label") -BATCH = utils.irc.BatchType(None, "draft/labeled-response") - -CAP_TO_TAG = { - "draft/labeled-response-0.2": "draft/label" -} - -class WaitingForLabel(object): - def __init__(self, line, events): - self.line = line - self.events = events - self.labels_since = 0 - -@utils.export("cap", CAP) -class Module(ModuleManager.BaseModule): - @utils.hook("new.server") - def new_server(self, event): - event["server"]._label_cache = {} - - @utils.hook("preprocess.send") - def raw_send(self, event): - available_cap = event["server"].available_capability(CAP) - - if available_cap: - label = TAG.get_value(event["line"].tags) - if label == None: - tag_key = CAP_TO_TAG[available_cap] - label = str(uuid.uuid4()) - event["line"].tags[tag_key] = label - - event["server"]._label_cache[label] = WaitingForLabel(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"]]) - - @utils.hook("received.batch.end") - def batch_end(self, event): - 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, lines): - if not label in server._label_cache: - self.log.debug("unknown label received on %s: %s", - [str(server), label]) - return - - cached = server._label_cache.pop(label) - cached.events.on("labeled-response").call(line=cached.line, - responses=lines) - - for label, other_cached in server._label_cache.items(): - other_cached.labels_since += 1 - if other_cached.labels_since == 10: - self.log.debug( - "%d labels seen while waiting for response to %s on %s", - [other_cached.labels_since, label, str(server)]) |
