Beispiel #1
0
 def handle_message(self, message: Message):
     message_type = message.get_message_type()
     self.__snapshot[message_type] = True
     (data_handler,
      business_rule) = setting.messages_to_receive[message_type]
     data_handler(message.get_message_data(), self.__data)
     (snapshot_to_meet, logic_rule, messages_to_send) = business_rule
     is_messages_got = self.is_messages_got
     if len(snapshot_to_meet) > 0 and snapshot_to_meet[0] == '':
         snapshot_to_meet.remove('')
         is_messages_got = self.is_just_messages_got
     if is_messages_got(snapshot_to_meet) and logic_rule(self.__data):
         for (message_type, to_entities_ids_generator,
              send_data_generator) in messages_to_send:
             (from_entity_type,
              to_entities_type) = setting.messages_paths[message_type]
             if from_entity_type != setting.entity_type:
                 continue
             to_entities_ids = to_entities_ids_generator(
                 self.__entity_id, self.__data)
             send_data = send_data_generator(self.__data)
             MessageHandler(self.__artifact_id, message_type,
                            from_entity_type, self.__entity_id,
                            to_entities_type, to_entities_ids,
                            send_data).send()
def send_message(send_data):
    global new_artifact_id
    to_entities_ids = to_entities_ids_chooser(1, send_data)
    MessageHandler(new_artifact_id, begin_message_type, external_type, 1,
                   begin_message_to_entities_type, to_entities_ids,
                   send_data).send()
    new_artifact_id += 1
Beispiel #3
0
    def wait_incoming(self):

        botdb_cursor = self.botdb.cursor()
        botdb_cursor.execute("SELECT * FROM config")
        config_data = botdb_cursor.fetchone()
        botdb_cursor.close()

        lastid = (config_data[0], )
        skypedb_cursor = self.skypedb.cursor()
        skypedb_cursor.execute("SELECT convo_id, body_xml, id, timestamp, author FROM messages WHERE id > ? ORDER BY id ASC", lastid)
        messages = skypedb_cursor.fetchall()
        skypedb_cursor.close()

        if not messages:
            return False

        for message in messages:
            if message[4] == DTSkypeBotConfig.login:
                print "Ignoring messages from ourselves"
                continue
            MessageHandler(self, message[0], message[1])

        last_message = [message[2], message[3]]

        botdb_cursor = self.botdb.cursor()
        botdb_cursor.execute("UPDATE config SET last_message_id = ?, last_message_timestamp = ?", last_message)
        self.botdb.commit()
Beispiel #4
0
 def handle_message(self, message: Message):
     if message.get_artifact_id() != self.__artifact_id:
         return
     message_type = message.get_message_type()
     self.__snapshot[message_type] = True
     (data_handler,
      business_rule) = setting.messages_to_receive[message_type]
     data_handler(message.get_message_data(), self.__data)
     (snapshot_to_meet, logic_rule, messages_to_send) = business_rule
     # TODO: Choose `is_just_messages_got` or `is_messages_got`?
     if self.is_just_messages_got(snapshot_to_meet) and logic_rule(
             self.__data):
         for (message_type, to_entities_ids_generator,
              send_data_generator) in messages_to_send:
             (from_entity_type,
              to_entities_type) = setting.messages_paths[message_type]
             if from_entity_type != setting.entity_type:
                 continue
             to_entities_ids = to_entities_ids_generator(
                 self.__entity_id, self.__data)
             send_data = send_data_generator(self.__data)
             MessageHandler(self.__artifact_id, message_type,
                            from_entity_type, self.__entity_id,
                            to_entities_type, to_entities_ids,
                            send_data).send()
Beispiel #5
0
from addressbar_handler import AddressBarHandler
from screen_handler import ScreenHandler
from message import MessageHandler

message_handler = MessageHandler()
ScreenHandler(message_handler).start()
AddressBarHandler(message_handler).start()