Source code for athena.modules.active.voice_browse

"""
    Wraps the Spotify Web Player to play music

    Usage Examples:
        - "Open facebook.com"
        - "Search Neil Degrasse Tyson"
        - "Maximize the browser"
"""

from athena.classes.module import Module
from athena.classes.task import ActiveTask
from athena.apis import api_lib

MOD_PARAMS = {
    'name': 'voice_browse',
    'priority': 2,
}

[docs]class VoiceBrowseTask(ActiveTask): def __init__(self): super().__init__(patterns=[r'.*\b(?:search|look up|tell me about)\b(.*)', r'.*\b(?:go to|open)(.*\.(com|org|net|edu|gov|io|html))\b', r'.*\b(?:(?:close|shut)(?: the| this)? (browser|tab|page))\b.*', r'.*\b(?:type)\b(.*)', r'.*\b(delete|clear the)\b.*', r'.*\b(maximize)\b.*', r'.*\b(click)\b.*', r'.*\b(?:next|switch the) (tab|page)\b.*'])
[docs] def match(self, text): for case, p in enumerate(self.patterns): m = p.match(text) if m is not None: self.case = case self.q = m.group(1).strip() return True return False
[docs] def action(self, text): if self.case is 0: print('\n~ Searching '+self.q+'...') api_lib['voice_browse_api'].search(self.q) elif self.case is 1: if self.q[0:4] is not 'http': self.q = 'https://'+self.q.replace(' ', '') print('\n~ Opening '+self.q+'...') api_lib['voice_browse_api'].open(self.q) elif self.case is 2: print('\n~ Closing the '+self.q+'...') if 'browser' in self.q: api_lib['voice_browse_api'].close() else: api_lib['voice_browse_api'].close_tab() elif self.case is 3: print('\n~ Typing: '+self.q) api_lib['voice_browse_api'].type(self.q) elif self.case is 4: print('\n~ Maximizing...') api_lib['voice_browse_api'].maximize() elif self.case is 5: print('\n~ Clearing text...') api_lib['voice_browse_api'].clear() elif self.case is 6: print('\n~ Clicking...') api_lib['voice_browse_api'].click() elif self.case is 7: print('\n~ Switching the'+self.q+'...') api_lib['voice_browse_api'].switch_tab()
[docs]class VoiceBrowse(Module): def __init__(self): tasks = [VoiceBrowseTask()] super().__init__(MOD_PARAMS, tasks)