Exemplo n.º 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
Exemplo n.º 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()
Exemplo n.º 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()
Exemplo n.º 5
0
 def run(self):
     while True:
         code, data = MessageHandler.receive_message(self.socket)
         if int(code) not in self.actions:
             print('Unknown code {}'.format(code))
             continue
         if code.startswith('0'):
             self.actions[0](code[1:], data)
             continue
         self.actions[int(code)](data)
Exemplo n.º 6
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()
Exemplo n.º 7
0
 def message_receiver(self):
     while True:
         code, data = MessageHandler.receive_message(self.socket)
         Client._message_receiver_event.set()  # Interrupt main loop
         self.thread_actions[int(code[0])](data)
         Client._message_receiver_event.clear()  # Continue with main loop
Exemplo n.º 8
0
 def send_message(self, code, data=None):
     MessageHandler.send_message('{}:{}'.format(code, data), self.socket)
Exemplo n.º 9
0
 def on_message(self, message):
     oauth_token = self.get_secure_cookie(settings["OAUTH"]["session_key"])
     user_name = redis_client.get(oauth_token)
     MessageHandler.handle(user_name, message,
                           MessageSocketHandler.socket_pool)
Exemplo n.º 10
0
 def acknowledge_login(self, client_socket):
     MessageHandler.send_message('{}:OK'.format(Code.ACK_LOGIN),
                                 client_socket)
Exemplo n.º 11
0
 def send_users_info(self, client_socket):
     self.update(
     )  # TODO: Place update call when client logs in and logs out
     message = '{}:{}'.format(Code.USERS_INFO, str(self.client_names))
     MessageHandler.send_message(message, client_socket)
Exemplo n.º 12
0
 def notify(self, code, data):
     """Sends Conversation IDs, forwards messages and exit statuses"""
     message = '{}:{}'.format(code, data)
     MessageHandler.send_message(message,
                                 *[t.socket for t in self.participants])