def test_manual_creation(self): message = ComplexMessage(['Hello, ', RefAttach('user_id_here', '@world')]) self.assertEqual(message.get_text(), 'Hello, @world') self.assertEqual(message.get_attachments(), [{ 'loci': [[7, 6]], 'type': 'mentions', 'user_ids': ['user_id_here'] }])
def test_manual_creation(self) -> None: message = ComplexMessage( ["Hello, ", RefAttach("user_id_here", "@world")]) self.assertEqual(message.get_text(), "Hello, @world") self.assertEqual( message.get_attachments(), [{ "loci": [[7, 6]], "type": "mentions", "user_ids": ["user_id_here"] }], )
def test_complex_message(self): message = ComplexMessage(['Hello, ', RefAttach('user_id_here', '@world')]) text, attachments = smart_split_complex_message(message) self.assertEqual(text, 'Hello, @world') self.assertEqual(attachments, [{ 'loci': [[7, 6]], 'type': 'mentions', 'user_ids': ['user_id_here'] }])
def on_fields_loaded(self): if self.text is None: self.text = "" from lowerpines.message import ComplexMessage, RefAttach self.complex_text = ComplexMessage('') doing_mentions = False for attachment in self.attachments: if attachment['type'] == 'mentions': doing_mentions = True prev_index = 0 for i in range(len(self.text)): for loci, user_id in zip(attachment['loci'], attachment['user_ids']): if loci[0] == i: self.complex_text += self.text[prev_index:loci[0]] + \ RefAttach(user_id, self.text[loci[0]:loci[0] + loci[1]]) prev_index = loci[0] + loci[1] self.complex_text = self.complex_text + self.text[prev_index:] if not doing_mentions: self.complex_text = ComplexMessage(self.text)
def system_messages(bot: Bot, message: Message) -> bool: """ Process system messages: * Nickname changes * Added users * Removed users """ if not message.system: return False remove_match = REMOVE_RE.match(message.text) add_match = ADD_RE.match(message.text) change_name_match = CHANGE_RE.match(message.text) # Grab an arrow time in UTC timestamp = arrow.get(message.created_at) if remove_match: bot.post(ComplexMessage([EmojiAttach(4, 36)])) return True if add_match: bot.post(ComplexMessage([EmojiAttach(2, 44)])) # Log the new member new_member = add_match.group('addee') nickname_entry(bot, new_member, timestamp) return True if change_name_match: bot.post(ComplexMessage([EmojiAttach(1, 81)])) # Log the name change new_name = change_name_match.group('new_name') nickname_entry(bot, new_name, timestamp) return True return False
def test_complex_message(self) -> None: message = ComplexMessage( ["Hello, ", RefAttach("user_id_here", "@world")]) text, attachments = smart_split_complex_message(message) self.assertEqual(text, "Hello, @world") self.assertEqual( attachments, [{ "loci": [[7, 6]], "type": "mentions", "user_ids": ["user_id_here"] }], )
def on_fields_loaded(self) -> None: if self.text is None: self.text = "" from lowerpines.message import ComplexMessage, RefAttach # noqa: F811 self.complex_text = ComplexMessage("") doing_mentions = False for attachment in self.attachments: if attachment["type"] == "mentions": doing_mentions = True prev_index = 0 for i in range(len(self.text)): for loci, user_id in zip(attachment["loci"], attachment["user_ids"]): if loci[0] == i: self.complex_text += self.text[ prev_index:loci[0]] + RefAttach( user_id, self.text[loci[0]:loci[0] + loci[1]]) prev_index = loci[0] + loci[1] self.complex_text = self.complex_text + self.text[prev_index:] if not doing_mentions: self.complex_text = ComplexMessage(self.text)
get_insult, get_tasted_brews, get_new_arrivals, ) logger = logging.getLogger(__name__) CLARK_USER_ID = '6499167' SHAINA_USER_ID = '6830949' SAUCERBOT_MESSAGE_LIST: List[Union[ComplexMessage, str]] = [ "Shut up, ", "Go away, ", "Go find your own name, ", "Stop being an asshole, ", ComplexMessage('https://media.giphy.com/media/IxmzjBNRGKy8U/giphy.gif'), 'random', ] @registry.handler() def user_named_saucerbot(bot: Bot, message: Message, force_random: bool = False) -> bool: """ Chastise people who make their name saucerbot """ if message.name != 'saucerbot': return False # Send something dumb user_attach = RefAttach(message.user_id, f'@{message.name}')
def test_reverse_add(self) -> None: message = "test " + ComplexMessage("reverse adding") self.assertEqual(message.get_text(), "test reverse adding")
def test_forward_add(self) -> None: message = ComplexMessage("test") + " normal adding" self.assertEqual(message.get_text(), "test normal adding") message = ComplexMessage("test") + ComplexMessage(" normal adding") self.assertEqual(message.get_text(), "test normal adding")
def test_forward_add(self) -> None: message = RefAttach("user_id", "@test") + ComplexMessage(", whats up?") self.assertEqual(message.get_text(), "@test, whats up?")