class Searx(Worker):
- binding_keys = ["nick.search.#"]
+ binding_keys = ["nick.search.#", "nick.next-searx"]
description = "search the web (using searx)"
- usage = "bot: search <terms>"
+ usage = "bot: search <terms> or bot: next-searx (to drop current searx engine)"
search_list = []
return [(r.get('content', ''), r['url'], url) for r in response['results']][0]
def parse_body(self, msg):
-
- result = self.searx(' '.join(get_words(msg)[1:]))
- if not result:
- return Action(msg='Sorry, no results.')
- else:
- abstract, url, provider = result
-
- if len(abstract) > 150:
- suffix = '…'
+ words = get_words(msg)
+ if words[1] == "next-searx":
+ searx_provider = self.search_list.pop(0)
+ return Action(msg='Ok. There goes {}'.format(searx_provider))
else:
- suffix = ''
- return Action(msg='{}{} ({}) - powered by {}'.format(abstract[:150], suffix, url, provider))
+ 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))
ALL = [Searx]