Ejemplo n.º 1
0
    def start(self):
        Component.start(self)

        server = ThreadedTCPServer((self._params['host'], self._params['port']), ThreadedTCPRequestHandler, False)
        server.allow_reuse_address = True
        server.server_bind()
        server.server_activate()
        server.serve_forever()
Ejemplo n.º 2
0
    def start(self):
        Component.start(self)

        # Raise volume
        os.system("/usr/bin/amixer set PCM -- 90%")

        self._sp = subprocess.Popen(self._params['festival_bin'],
                                    stdin=subprocess.PIPE,
                                    stdout=subprocess.PIPE,
                                    universal_newlines=True)

        self.command('(' + self._params['voice'] + ')')
Ejemplo n.º 3
0
    def start(self):
        Component.start(self)

        while True:
            now = datetime.datetime.now()

            if now.second == 0:
                dow = str(now.isoweekday())

                self.send_intercom_message(self.INTERCOM_MESSAGE_EVENT_CRON, {
                    'dow': dow,
                    'hour': now.hour,
                    'minute': now.minute,
                })

            time.sleep(1)
Ejemplo n.º 4
0
    def _on_intercom_message(self, message: Message) -> Reply:
        if message == self.INTERCOM_MESSAGE_DO_LEARN:
            return self._on_learn_start(message)

        if message == self.INTERCOM_MESSAGE_EVENT_LEARN_END:
            return self._on_learn_end()

        if message == self.INTERCOM_MESSAGE_DO_FIRE:
            return self._on_do_fire(message)

        return Component._on_intercom_message(self, message)
Ejemplo n.º 5
0
    def _on_intercom_message(self, message: Message) -> Reply:
        if message == self.INTERCOM_MESSAGE_DO_CHAT_MESSAGE:
            return self._on_intercom_message_send_chat(message)

        if message in [
                self.INTERCOM_MESSAGE_DO_SEND_CAM_SNAPSHOT,
                self.INTERCOM_MESSAGE_DO_SEND_CAM_VIDEO
        ]:
            return self._on_cam_action(message)

        if message in [
                self.INTERCOM_MESSAGE_DO_PHOTO_MESSAGE,
                self.INTERCOM_MESSAGE_DO_VIDEO_MESSAGE,
                self.INTERCOM_MESSAGE_DO_DOCUMENT_MESSAGE
        ]:
            return self._on_intercom_message_complex_message(message)

        return Component._on_intercom_message(self, message)
Ejemplo n.º 6
0
    def _on_intercom_message(self, message: Message) -> Reply:
        event = Event.create_from_message(message)

        all_rules = RuleRepo.get_rules()
        for rule in all_rules:
            res = rule.match_event(event)
            if res is not False:
                Log.info('Triggering rule: ' + rule.code)

                variables = copy.deepcopy(message.message_payload)
                variables.update(res)

                threading.Thread(target=rule.fire_actions, kwargs={
                    'variables': variables
                }).start()

                threading.Thread(target=self._trigger_rule_event, kwargs={
                    'rule': rule,
                    'message': message
                }).start()

        return Component._on_intercom_message(self, message)
Ejemplo n.º 7
0
    def _on_intercom_message(self, message: Message) -> Reply:
        for thread_id, handler in self.handlers.items():
            handler.send_message(message)

        return Component._on_intercom_message(self, message)
Ejemplo n.º 8
0
 def start(self):
     Component.start(self)
     RuleRepo.load()
Ejemplo n.º 9
0
 def start(self):
     Component.start(self)
     self.reload()
Ejemplo n.º 10
0
    def _on_intercom_message(self, message: Message) -> Reply:
        if message in [self.INTERCOM_MESSAGE_DO_GET, self.INTERCOM_MESSAGE_DO_POST]:
            return self._run_client(message)

        return Component._on_intercom_message(self, message)
Ejemplo n.º 11
0
    def start(self):
        Component.start(self)

        self._server = CamThreadedHTTPServer((self._params['host'], int(self._params['port'])), CamStreamHandler)
        self._server.serve_forever()
Ejemplo n.º 12
0
    def _on_intercom_message(self, message: Message) -> Reply:
        if message == self.INTERCOM_MESSAGE_DO_SAY:
            return self._on_say_text(message)

        return Component._on_intercom_message(self, message)
Ejemplo n.º 13
0
 def start(self):
     Component.start(self)
     SignalRepo.lazy_load()