From 35fcd3f85105aa9f34d84acf077c8febce113f76 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Thu, 18 Mar 2021 19:33:01 +0100 Subject: [PATCH] searx that --- distbot/plugins/searx.py | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/distbot/plugins/searx.py b/distbot/plugins/searx.py index 6382e77..96e2725 100644 --- a/distbot/plugins/searx.py +++ b/distbot/plugins/searx.py @@ -27,9 +27,10 @@ class RateLimitingError(HTTPError): class Searx(Worker): - binding_keys = ["nick.search.#", "nick.next-searx"] + binding_keys = ["nick.search.#", "nick.search.that", "nick.next-searx", "nick.next.searx"] + Worker.CATCH_ALL + uses_history = True description = "search the web (using searx)" - usage = "bot: search or bot: next-searx (to drop current searx engine)" + usage = "bot: search or bot: next searx (to drop current searx engine)" search_list = [] @@ -99,21 +100,26 @@ class Searx(Worker): def parse_body(self, msg): words = get_words(msg) - if words[0] == "next-searx": + if words[0] == "next-searx" or words[0:2] == ["next", "searx"]: searx_provider = self.search_list.pop(0) return Action(msg='Ok. There goes {}'.format(searx_provider)) - else: + elif words == ["search", "that"]: + result = self.searx(self.history[-1]['body']) + elif words[0] == "search": result = self.searx(' '.join(words[1:])) - if not result: - return Action(msg='Sorry, no results.') - else: - abstract, url, provider = result - - if len(abstract) > 150: - suffix = '…' - else: - suffix = '' - return Action(msg='{}{} ({}) - powered by {}'.format(abstract[:150], suffix, url, provider)) + else: + return + + if not result: + return Action(msg='Sorry, no results.') + else: + abstract, url, provider = result + + if len(abstract) > 150: + suffix = '…' + else: + suffix = '' + return Action(msg='{}{} ({}) - powered by {}'.format(abstract[:150], suffix, url, provider)) ALL = [Searx] -- 2.39.2