示例#1
0
 def setUp(self):
     self.message_event1 = MessageEvent(
         data.standard_message_in_another_channel_event_json)
     self.message_event2 = MessageEvent(data.hi_message_event_json)
     self.queue_manager = QueueManager()
     self.ticket1 = Ticket.of_event(self.message_event1)
     self.queue_manager.add(self.ticket1, self.message_event1)
     self.ticket2 = Ticket.of_event(self.message_event2)
     self.queue_manager.add(self.ticket2, self.message_event2)
    def process_incoming_event(self, event_json):
        """:param event_json: json representing slack message.im event"""
        if not MessageEvent.is_message_event(event_json):
            print("Got hidden event")
            return

        event = MessageEvent(event_json)
        print("Got standard message: {0}".format(event.text))

        found_in_keywords = False
        found_wallet = False
        already_banned = False

        nickname = slack_utils.get_slack_user_by_id(event.sender)['name']

        print('Event channel %s' % event.channel)
        print('Event sender %s' % event.sender)
        print('Event nickname %s' % nickname)
        print('Event ts %s' % event.time)

        with open('banned.txt', 'r') as f:
            print("READ FROM FILE")
            for line in f:
                if line.rstrip() == nickname:
                    already_banned = True
                    break
            f.close()

        if not already_banned:
            for keyword in KEYWORDS:
                if is_keyword_in_string(keyword, event.text):
                    found_in_keywords = True
                    break

            if is_wallet_in_string(event.text) is True:
                found_wallet = True

            if found_in_keywords or found_wallet:

                if banner.ban(nickname=nickname) is True:
                    slack_utils.delete_message(event.channel, event.time)
                    slack_utils.send_message(
                        event.channel,
                        '<@%s> is a scammer. Unfortunately, has been banned.' %
                        event.sender)

                    with open('banned.txt', 'a') as f:
                        f.write("{0}\n".format(nickname))
                        f.close()
                        print("WRITE TO FILE")
示例#3
0
    def test_message_deleted_parsed(self):
        message = MessageEvent(data.message_deleted_hi_event_json)

        self.assertEqual(message.subtype, EventSubtype.MESSAGE_DELETED)
        self.assertIsNone(message.text)
        self.assertEqual(message.previous_text, data.message_hi)
        self.assertEqual(message.sender, data.sender_hi)
示例#4
0
    def test_message_changed_parsed(self):
        message = MessageEvent(data.message_changed_hi_to_std_event_json)

        self.assertEqual(message.subtype, EventSubtype.MESSAGE_CHANGED)
        self.assertEqual(message.text, data.message_std)
        self.assertEqual(message.previous_text, data.message_hi)
        self.assertEqual(message.sender, data.sender_hi)
示例#5
0
    def test_new_message_parsed(self):
        message = MessageEvent(
            data.standard_message_in_another_channel_event_json)

        self.assertEqual(message.subtype, EventSubtype.MESSAGE)
        self.assertEqual(message.text, data.message_std)
        self.assertEqual(message.sender, data.sender_std)
示例#6
0
    def process_incoming_event(self, event_json):
        """:param event_json: json representing slack message.im event"""
        if not MessageEvent.is_message_event(event_json):
            print("Got hidden event")
            return

        event = MessageEvent(event_json)
        ticket = Ticket.of_event(event)
        existing_event = self._queue_manager.get_item(ticket)
        if MessageProcessor._should_void_old_event(existing_event, event):
            print("Got message that voids existing one")
            self._queue_manager.void(ticket)
        elif MessageProcessor._should_add_new_event(event):
            print("Got HI message :", event.text)
            self._queue_manager.add(ticket, event)
        else:
            print("Got standard message :", event.text)
示例#7
0
 def test_new_message_detected(self):
     self.assertTrue(
         MessageEvent.is_message_event(
             data.standard_message_in_another_channel_event_json))
示例#8
0
 def test_wrong_json_not_detected(self):
     self.assertFalse(
         MessageEvent.is_message_event(data.valid_handshake_json))
     self.assertFalse(MessageEvent.is_message_event(data.bad_request_json))
示例#9
0
 def test_message_deleted_detected(self):
     self.assertTrue(
         MessageEvent.is_message_event(data.message_deleted_hi_event_json))
示例#10
0
 def test_message_changed_detected(self):
     self.assertTrue(
         MessageEvent.is_message_event(
             data.message_changed_std_to_std_event_json))
示例#11
0
    def test_can_parse_message_event(self):
        ticket = Ticket.of_event(MessageEvent(data.standard_message_in_another_channel_event_json))

        self.assertIsNotNone(ticket)