Ejemplo n.º 1
0
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'),
        SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================
    #print(say) #2017-08-15
    #res = requests.get('http://www.chatbot.hk/Firebase.api.aiy.php?Key=63ebdad609d02ac15a71bde64fb21f8ea43ac513&Project=Aiy&k=test&v=' + str(say))

    return actor
Ejemplo n.º 2
0
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'),
        SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================

    # streaming radio station commend
    actor.add_keyword(_('radio'), Radio(say, _('radio')))

    # streaming most recent podcast
    actor.add_keyword(_('podcast'), Podcast(say, _('podcast')))

    #play youtube audio - be as specific as possible for the video otherwise you will get some interestng results
    actor.add_keyword(_('play'), play(say, _('play')))
    return actor
Ejemplo n.º 3
0
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'), SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================

    actor.add_keyword(_('power off'), PowerCommand(say, PowerCommand.SHUTDOWN))
    actor.add_keyword(_('turn off'), PowerCommand(say, PowerCommand.SHUTDOWN))
    
    actor.add_keyword(_('reboot'), PowerCommand(say, PowerCommand.RESTART))
    actor.add_keyword(_('restart'), PowerCommand(say, PowerCommand.RESTART))
    
    actor.add_keyword(_('volume'), VolumeControl(say, _('volume')))
    actor.add_keyword(_('play'), YouTubePlayer(say,_('play')))
    actor.add_keyword(_('radio'), TuneInRadio(say,_('radio')))

    return actor
Ejemplo n.º 4
0
def make_actor(say, camera):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'),
        SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================

    actor.add_keyword(_('power off'), PowerCommand(say, 'shutdown'))
    actor.add_keyword(_('reboot'), PowerCommand(say, 'reboot'))

    actor.add_keyword(_('take a photo'), PhotoCapture(say, 'photo', camera))
    actor.add_keyword(_('uptime'), Uptime(say, 'uptime'))

    actor.add_keyword(_('time lapse'), TimeLapse(say, camera))

    # If triggered accidently, either say "pass" or detect no words said.
    actor.add_keyword(_('pass'), Pass(say))
    # actor.add_keyword(_(''), Pass(say))
    return actor
Ejemplo n.º 5
0
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'),
        SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================

    actor.add_keyword(_('power off'), PowerCommand(say, 'shutdown'))
    actor.add_keyword(_('reboot'), PowerCommand(say, 'reboot'))
    actor.add_keyword(_('podcast'), playPodcast(say, _('podcast')))
    actor.add_keyword(_('set timer'), setTimer(say, _('set timer for ')))
    actor.add_keyword(_('set a timer'), setTimer(say, _('set a timer for ')))
    actor.add_keyword(_('radio'), playRadio(say, _('Radio')))

    actor.add_keyword(
        _('the news'),
        ReadRssFeed(say, "http://feeds.bbci.co.uk/news/rss.xml?edition=uk#",
                    10))

    return actor
Ejemplo n.º 6
0
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'),
        SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('list directory'),
                      SpeakShellCommandOutput(say, "ls", _('what.')))

    actor.add_keyword(_('oscilloscope'), junk(say, _('oscilloscope')))

    actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================

    return actor
Ejemplo n.º 7
0
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'),
        SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================

    actor.add_keyword('light on', GpioWrite(4, True))
    actor.add_keyword('light off', GpioWrite(4, False))

    return actor
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'),
        SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================
    actor.add_keyword(_('who is your master'),
                      SpeakAction(say, 'Mark, is my master'))
    actor.add_keyword(
        _('the news'),
        ReadRssFeed(say, "http://feeds.bbci.co.uk/news/rss.xml?edition=uk#",
                    10. ['title']))

    return actor
Ejemplo n.º 9
0
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'),
        SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================

    actor.add_keyword(_('power off'), PowerCommand(say, 'shutdown'))
    actor.add_keyword(_('reboot'), PowerCommand(say, 'reboot'))
    actor.add_keyword(_('radio'), playRadio(say, _('radio')))

    return actor
Ejemplo n.º 10
0
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    entities = entity.Entities('/home/pi/entities2.yml')
    actor = actionbase.Actor()

    if False:
        actor.add_keyword(
            _('ip address'),
            SpeakShellCommandOutput(
                say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
                _('I do not have an ip address assigned to me.')))

        actor.add_keyword(_('volume up'), VolumeControl(say, 10))
        actor.add_keyword(_('volume down'), VolumeControl(say, -10))
        actor.add_keyword(_('max volume'), VolumeControl(say, 100))

        actor.add_keyword(_('repeat after me'),
                          RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================
    for item in entities.units.values():
        unit = entity.Unit(item)
        logging.debug(unit)
        actor.add_keyword(unit.synonyms, PageUnit(say, unit))
    for item in entities.tenants.values():
        tenant = entity.Tenant(item)
        logging.debug(tenant)
        actor.add_keyword(tenant.synonyms, PageTenant(say, tenant))
    actor.add_keyword(GainEntry.synonyms, GainEntry(say, entities.tenants))
    actor.add_keyword(RequestPassword.synonyms,
                      RequestPassword(say, entities.tenants))
    return actor
 def test_actor_runs_matching_action(self):
     actor = actionbase.Actor()
     foo_action = TestAction()
     actor.add_keyword('foo', foo_action)
     bar_action = TestAction()
     actor.add_keyword('bar', bar_action)
     self.assertTrue(actor.handle('moo bar'))
     self.assertIsNone(foo_action.voice_command)
     self.assertIsNotNone(bar_action.voice_command)
Ejemplo n.º 12
0
 def test_valid_user_script_directory(self):
     user_script_helper = TestUserScriptHelper()
     say_helper = TestSayHelper()
     actor = actionbase.Actor()
     actor.add_user_scripts(user_script_helper.get_dir_name(),
                            say_helper.say)
     scripts = actor.user_scripts.get_scripts()
     actor.handle_state_trigger("before-listen")
     scripts[0].run("unit test")
     self.assertEqual(len(scripts), 1)
     self.assertEqual(scripts[0].get_description(), "Unit Test.")
     self.assertTrue(actor.can_handle('unit-test-keyword'))
     self.assertTrue(user_script_helper.trigger_file_exists())
     self.assertEqual(say_helper.last_said(), "unit test")
     user_script_helper.clean_up()
Ejemplo n.º 13
0
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'), SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))
    return actor
Ejemplo n.º 14
0
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'),
        SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))
    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================
    actor.add_keyword(_('shut down'), PowerAction(say, 'shutdown'))
    actor.add_keyword(_('reboot'), PowerAction(say, 'reboot'))
    actor.add_keyword(_('radio'), RadioAction(say, _('radio')))
    actor.add_keyword(_('play'), PlayAction(say, _('play')))
    actor.add_keyword(
        _('news headlines'),
        ReadRssFeedAction(say,
                          "http://feeds.bbci.co.uk/news/rss.xml?edition=uk",
                          "title", 5))
    actor.add_keyword(
        _('currency check'),
        ReadRssFeedAction(say, "http://gbp.fxexchangerate.com/AUD.xml",
                          "summary", 1, True))
    actor.add_keyword(_('kilian'), KilianAction(say, 'kilian'))
    actor.add_keyword(
        _('voice actions'),
        SpeakAction(
            say,
            """The custom actions are: radio, play, news headlines, currency check, reboot and shutdown. To hear this list again, say, custom actions"""
        ))

    return actor
Ejemplo n.º 15
0
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    
    actor.add_keyword(
        _('ip address'), SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    #actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    #actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))
    actor.add_keyword(_('GW open a new terminal'), MasterTerminal(say))
    actor.add_keyword(_('GW open the python editor'), MasterIDLE(say))
    actor.add_keyword(_('GW open netflix'), OpenTVNetflix(say))
    actor.add_keyword(_('GW volume up'), TVVolumeUp(say))
    actor.add_keyword(_('GW volume down'), TVVolumeDown(say))
    actor.add_keyword(_('GW switch to input two'), TVHdmiTwo(say))
    actor.add_keyword(_('GW tv exit'), TVExit(say))
    #actor.add_keyword(_('GW pause'), KodiPlay(say))
    actor.add_keyword(_('GW open music'), Spotify(say))
    actor.add_keyword(_('GW switch to input 3'), TVHdmiThree(say))
    actor.add_keyword(_('GW wake the giant'), PsOn(say))
    actor.add_keyword(_('GW kill giant'), PsOff(say))
    actor.add_keyword(_('GW start Wolf'), PsWolf(say))
    actor.add_keyword(_('GW tv off'), TVPowerOff(say))
    actor.add_keyword(_('GW tv on'), TVPowerOn(say))
    actor.add_keyword(_('GW start hbo'), PsHbo(say))
    actor.add_keyword(_('GW network search'), PsIP(say))
    actor.add_keyword(_('GW open movies'), PsN(say))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================

    return actor
Ejemplo n.º 16
0
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'), SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================

    actor.add_keyword(_('raspberry power off'), PowerCommand(say, 'shutdown'))
    actor.add_keyword(_('raspberry reboot'), PowerCommand(say, 'reboot'))
    
    actor.add_keyword('light on', GpioWrite(4, True))
    actor.add_keyword('light off', GpioWrite(4, False))
    
    actor.add_keyword('play a fart', PlayFart(say))
    actor.add_keyword('no farting', PlayFart(say))

    actor.add_keyword('burp', PlayFart(say))

    actor.add_keyword('learn', Learn(say, _('learn')))

    actions.iss.Register(say, actor)
    actions.tunein.Register(say, actor)
    actions.youtube.Register(say, actor)

    return actor
 def test_can_handle_does_nothing(self):
     actor = actionbase.Actor()
     foo_action = TestAction()
     actor.add_keyword('foo', foo_action)
     self.assertIsNone(foo_action.voice_command)
Ejemplo n.º 18
0
 def test_invalid_user_script_directory(self):
     actor = actionbase.Actor()
     actor.add_user_scripts(None, None)
     actor.handle_state_trigger('test')
     self.assertEqual(actor.user_scripts.get_scripts(), [])
def make_actor(say):
    """Create an actor to carry out the user's commands."""

    actor = actionbase.Actor()

    actor.add_keyword(
        _('ip address'),
        SpeakShellCommandOutput(
            say, "ip -4 route get 1 | head -1 | cut -d' ' -f8",
            _('I do not have an ip address assigned to me.')))

    actor.add_keyword(_('volume up'), VolumeControl(say, 10))
    actor.add_keyword(_('volume down'), VolumeControl(say, -10))
    actor.add_keyword(_('max volume'), VolumeControl(say, 100))

    actor.add_keyword(_('go forward'), Ileri(say, _('going forward')))
    actor.add_keyword(_('go backward'), Geri(say, _('going backward')))
    actor.add_keyword(_('turn left'), Sol(say, _('turning left')))
    actor.add_keyword(_('turn right'), Sag(say, _('turning right')))
    actor.add_keyword(_('look ahead'), Duzbak(say, _('looking ahead')))
    actor.add_keyword(_('look up'), Yukaribak(say, _('looking up')))
    actor.add_keyword(_('look down'), Asagibak(say, _('looking down')))
    actor.add_keyword(_('look left'), Solabak(say, _('looking left')))
    actor.add_keyword(_('look right'), Sagabak(say, _('looking right')))
    actor.add_keyword(_('arm left'), Kolsol(say,
                                            _('robotic arm turning left')))
    actor.add_keyword(_('arm right'),
                      Kolsag(say, _('robotic arm turning right')))
    actor.add_keyword(_('arm up'), Kolyuk(say, _('robotic arm going up')))
    actor.add_keyword(_('arm down'), Kolasa(say, _('robotic arm going down')))
    actor.add_keyword(_('gripper open'), Kancaac(say, _('gripper opening')))
    actor.add_keyword(_('gripper close'), Kancakapa(say, _('gripper closing')))
    actor.add_keyword(_('stop'), Fren(say, _('breaking')))
    actor.add_keyword(_('express yes'), Evet(say, _('expressing yes')))
    actor.add_keyword(_('express no'), Hayir(say, _('expressing no')))
    actor.add_keyword(_('be sad'), Uzgun(say, _('being sad')))
    actor.add_keyword(_('make sound'), Ses(say, _('making sound')))
    actor.add_keyword(_('light the leds'), Led(say,
                                               _('lighting the leds now')))
    actor.add_keyword(_('light the left led'),
                      Ledleft(say, _('lighting the left led now')))
    actor.add_keyword(_('light the right led'),
                      Ledright(say, _('lighting the right led now')))

    # Voice commands with Portal 2 Turret answers

    actor.add_keyword(_('are you stupid'),
                      Turret1(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('fire'), Turret2(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what you will do now'),
                      Turret3(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('I do not like you'),
                      Turret4(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what do you think about this'),
                      Turret5(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('take this'), Turret6(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what do you think about sally'),
                      Turret7(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what do you think about diana'),
                      Turret7(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what do you think about emily'),
                      Turret7(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what do you think about her'),
                      Turret7(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what do you think about that girl'),
                      Turret7(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what do you think about that lady'),
                      Turret7(say, _('PortalTurretAnswers')))

    actor.add_keyword(_('I lost my keys'),
                      Turret8(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('the bomb is exploded'),
                      Turret9(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what do you think about that robot'),
                      Turret10(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what do you think about that guy'),
                      Turret10(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what do you think about that girl'),
                      Turret10(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what do you think about that lady'),
                      Turret10(say, _('PortalTurretAnswers')))

    actor.add_keyword(_('who did this'), Turret11(say,
                                                  _('PortalTurretAnswers')))
    actor.add_keyword(_('I killed her'), Turret12(say,
                                                  _('PortalTurretAnswers')))
    actor.add_keyword(_('he is dead'), Turret13(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('call a doctor'),
                      Turret14(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('note this'), Turret15(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('hello'), Turret16(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('hello there'), Turret17(say,
                                                 _('PortalTurretAnswers')))
    actor.add_keyword(_('kill him'), Turret18(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('jump of the window'),
                      Turret19(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('how are you'), Turret20(say,
                                                 _('PortalTurretAnswers')))
    actor.add_keyword(_('I will kill you'),
                      Turret21(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('I blame you'), Turret22(say,
                                                 _('PortalTurretAnswers')))
    actor.add_keyword(_('hi'), Turret23(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('catch him'), Turret24(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('just do it'), Turret25(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('I am finally here'),
                      Turret26(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('it is me'), Turret27(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('robot'), Turret28(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('find him'), Turret29(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('find her'), Turret30(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('find them'), Turret31(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('hi Jack'), Turret32(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('do you hear me'),
                      Turret33(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('come here'), Turret34(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('what are you doing'),
                      Turret35(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('sorry'), Turret36(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('oh men'), Turret37(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('deploy'), Turret38(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('be ready'), Turret39(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('activate searching mode'),
                      Turret40(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('activate killing mode'),
                      Turret40(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('activate sentry mode'),
                      Turret31(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('activate swift mode'),
                      Turret40(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('activate flying mode'),
                      Turret40(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('activate climbing mode'),
                      Turret40(say, _('PortalTurretAnswers')))

    actor.add_keyword(_('I am here'), Turret41(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('die'), Turret42(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('kill yourself'),
                      Turret43(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('come over here'),
                      Turret44(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('shut down'), Turret45(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('sorry for that'),
                      Turret46(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('I hate you'), Turret47(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('where are you coming from'),
                      Turret48(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('evaporate yourself'),
                      Turret49(say, _('PortalTurretAnswers')))
    actor.add_keyword(_('suicide yourself'),
                      Turret50(say, _('PortalTurretAnswers')))
    actor.add_keyword(
        _('follow the line'),
        Turret51(
            say,
            _('switching to infinite autonomous mode, press ctrl+c to exit')))
    actor.add_keyword(_('exit the program'),
                      Turret52(say, _('stopping the main program')))

    actor.add_keyword(_('repeat after me'),
                      RepeatAfterMe(say, _('repeat after me')))

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================

    return actor
 def test_actor_runs_action(self):
     actor = actionbase.Actor()
     actor.add_keyword('foo', TestAction())
     self.assertTrue(actor.handle('moo foo'))
 def test_empty_actor_does_not_handle_commands(self):
     self.assertFalse(actionbase.Actor().handle('foobar'))
 def test_empty_actor_has_no_phrases(self):
     phrases = actionbase.Actor().get_phrases()
     self.assertEqual(phrases, [])
 def test_can_handle_returns_true(self):
     actor = actionbase.Actor()
     foo_action = TestAction()
     actor.add_keyword('foo', foo_action)
     self.assertTrue(actor.can_handle('moo foo'))