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")
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)
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)
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)
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)
def test_new_message_detected(self): self.assertTrue( MessageEvent.is_message_event( data.standard_message_in_another_channel_event_json))
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))
def test_message_deleted_detected(self): self.assertTrue( MessageEvent.is_message_event(data.message_deleted_hi_event_json))
def test_message_changed_detected(self): self.assertTrue( MessageEvent.is_message_event( data.message_changed_std_to_std_event_json))
def test_can_parse_message_event(self): ticket = Ticket.of_event(MessageEvent(data.standard_message_in_another_channel_event_json)) self.assertIsNotNone(ticket)