-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
31 lines (23 loc) · 1.02 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from ulauncher.api.client.Extension import Extension
from ulauncher.api.client.EventListener import EventListener
from ulauncher.api.shared.event import KeywordQueryEvent
from ulauncher.api.shared.action.RenderResultListAction import RenderResultListAction
from ecosia.search import get_results, no_action
from ecosia.counter import get_trees_count
class EcosiaSearchExtension(Extension):
def __init__(self):
super(EcosiaSearchExtension, self).__init__()
self.subscribe(KeywordQueryEvent, KeywordQueryEventListener())
class KeywordQueryEventListener(EventListener):
def on_event(self, event, extension):
query = event.get_argument() or str()
if len(query.strip()) == 0:
count = get_trees_count()
if len(count):
return RenderResultListAction(count)
else:
return RenderResultListAction(no_action())
else:
return RenderResultListAction(get_results(query))
if __name__ == '__main__':
EcosiaSearchExtension().run()