diff --git a/fjerkroa_bot/ai_responder.py b/fjerkroa_bot/ai_responder.py index 5e4bff4..9f24d1d 100644 --- a/fjerkroa_bot/ai_responder.py +++ b/fjerkroa_bot/ai_responder.py @@ -127,6 +127,8 @@ class AIResponder(object): response['answer_needed'] = False else: response['answer'] = str(response['answer']) + response['answer'] = re.sub(r'@\[([^\]]*)\]\([^\)]*\)', r'\1', response['answer']) + response['answer'] = re.sub(r'\[[^\]]*\]\(([^\)]*)\)', r'\1', response['answer']) return AIResponse(response['answer'], response['answer_needed'], parse_maybe_json(response['staff']), diff --git a/tests/test_main.py b/tests/test_main.py index 79e1cc7..1591cda 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -8,7 +8,7 @@ import logging import pytest from unittest.mock import Mock, PropertyMock, MagicMock, AsyncMock, patch, mock_open, ANY from fjerkroa_bot import FjerkroaBot -from fjerkroa_bot.ai_responder import parse_maybe_json +from fjerkroa_bot.ai_responder import parse_maybe_json, AIResponse from discord import User, Message, TextChannel @@ -78,6 +78,20 @@ class TestFunctionality(TestBotBase): expected_output = 'This is a string.' self.assertEqual(parse_maybe_json(json_struct), expected_output) + async def test_message_lings(self) -> None: + message = {'answer': 'Test [Link](https://www.example.com/test)', + 'answer_needed': True, 'staff': None, 'picture': None, 'hack': False} + expected = AIResponse('Test https://www.example.com/test', True, None, None, False) + self.assertEqual(str(await self.bot.airesponder.post_process(message)), str(expected)) + message = {'answer': 'Test @[Link](https://www.example.com/test)', + 'answer_needed': True, 'staff': None, 'picture': None, 'hack': False} + expected = AIResponse('Test Link', True, None, None, False) + self.assertEqual(str(await self.bot.airesponder.post_process(message)), str(expected)) + message = {'answer': 'Test [Link](https://www.example.com/test) and [Link2](https://xxx) lala', + 'answer_needed': True, 'staff': None, 'picture': None, 'hack': False} + expected = AIResponse('Test https://www.example.com/test and https://xxx lala', True, None, None, False) + self.assertEqual(str(await self.bot.airesponder.post_process(message)), str(expected)) + async def test_on_message_event(self) -> None: async def acreate(*a, **kw): answer = {'answer': 'Hello!',