from src import EventManager, ModuleManager, utils # postpone parsing SOME lines until after 001 class Module(ModuleManager.BaseModule): @utils.hook("new.server") def new_server(self, event): event["server"]._deferred_read = [] @utils.hook("raw.received.001", priority=EventManager.PRIORITY_LOW) def on_001(self, event): lines = event["server"]._deferred_read[:] event["server"]._deferred_read.clear() for line in lines: self.events.on("raw.received").call(line=line, server=event["server"]) @utils.hook("raw.received.mode", priority=EventManager.PRIORITY_HIGH) def defer(self, event): if not event["server"].connected: event.eat() event["server"]._deferred_read.append(event["line"])