def process_messages(msg_store, sub, filters, match_writer): logger.info("started processor") last_msg = 0 for m in sub.listen(): msg_data = m['data'] msg = Message.decode(msg_data) last_msg = msg.msg_id logger.info(msg.text) msg_store.save_message(msg) # check msg from the past, so we have some # context for our matches msg_to_check = msg_store.get_message(msg.channel, last_msg - 5) if msg_to_check: matches = check_matches(msg_to_check.text, filters) if len(matches) > 0: match_context = get_context( msg_store, msg_to_check.channel, msg_to_check.msg_id) match_writer.save( msg_to_check.channel, matches, match_context)
def test_message_encode_and_decode_completeness(): m = Message(0, 'mychannel', 'rth', 'message text') e = m.encode() msg = Message.decode(e) assert_equal(msg.msg_id, 0) assert_equal(msg.channel, 'mychannel') assert_equal(msg.nick, 'rth') assert_equal(msg.text, 'message text')