diff options
| author | 2018-11-27 14:25:12 +0000 | |
|---|---|---|
| committer | 2018-11-27 14:25:12 +0000 | |
| commit | d13a5069e3a0e78a77bf16effe78f2ba223c495b (patch) | |
| tree | ea7fb7c8dfcb0cea94523572e03b7bab35d7aa49 /modules | |
| parent | Show list of users in a channel, not just count (diff) | |
| signature | ||
Grab response from functions asked to be executed on the main thread and feed
them back to the callers, allowing rest_api.py to take the main thread while
it's waiting for the response to give back to the requesting client
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/github.py | 11 | ||||
| -rw-r--r-- | modules/rest_api.py | 5 | ||||
| -rw-r--r-- | modules/signals.py | 6 |
3 files changed, 11 insertions, 11 deletions
diff --git a/modules/github.py b/modules/github.py index ecfe8e7a..dbe20b70 100644 --- a/modules/github.py +++ b/modules/github.py @@ -86,16 +86,13 @@ class Module(ModuleManager.BaseModule): for server, channel in targets: for output in outputs: output = "(%s) %s" % (full_name, output) - trigger = self._make_trigger(channel, server, output) - self.bot.trigger(trigger) + self.events.on("send.stdout").call(target=channel, + module_name="Github", server=server, message=line, + hide_prefix=channel.get_setting( + "github-hide-prefix", False)) return True - def _make_trigger(self, channel, server, line): - return lambda: self.events.on("send.stdout").call(target=channel, - module_name="Github", server=server, message=line, - hide_prefix=channel.get_setting("github-hide-prefix", False)) - def _change_count(self, n, symbol, color): return utils.irc.color("%s%d" % (symbol, n), color)+utils.irc.bold("") def _added(self, n): diff --git a/modules/rest_api.py b/modules/rest_api.py index 28d05aed..601eebd8 100644 --- a/modules/rest_api.py +++ b/modules/rest_api.py @@ -30,9 +30,10 @@ class Handler(http.server.BaseHTTPRequestHandler): if path.startswith("/api/"): event_response = None try: - event_response = _events.on("api").on(method).on( + event_response = _bot.trigger(lambda: + _events.on("api").on(method).on( endpoint).call_unsafe_for_result(params=params, - path=args, data=data, headers=dict(self.headers)) + path=args, data=data, headers=dict(self.headers))) except Exception as e: _log.error("failed to call API endpoint \"%s\"", [path], exc_info=True) diff --git a/modules/signals.py b/modules/signals.py index 9bf2c9a8..9d8230ed 100644 --- a/modules/signals.py +++ b/modules/signals.py @@ -11,7 +11,10 @@ class Module(ModuleManager.BaseModule): def SIGINT(self, signum, frame): print() - self.events.on("signal.interrupt").call(signum=signum, frame=frame) + self.bot.trigger(lambda: self._kill(signum)) + + def _kill(self, signum): + self.events.on("signal.interrupt").call(signum=signum) for server in self.bot.servers.values(): reason = "Leaving" @@ -19,7 +22,6 @@ class Module(ModuleManager.BaseModule): reason = self.events.on("get.quit-quote" ).call_for_result(default=reason) server.send_quit(reason) - self.bot.trigger() self.events.on("writebuffer.empty").hook( lambda event: self.bot.disconnect(event["server"])) |
