Convert markdown links to just links.

This commit is contained in:
OK 2023-03-30 17:33:58 +02:00
parent 9eda81d7eb
commit 24ae6bcf32
2 changed files with 17 additions and 1 deletions

View File

@ -127,6 +127,8 @@ class AIResponder(object):
response['answer_needed'] = False response['answer_needed'] = False
else: else:
response['answer'] = str(response['answer']) 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'], return AIResponse(response['answer'],
response['answer_needed'], response['answer_needed'],
parse_maybe_json(response['staff']), parse_maybe_json(response['staff']),

View File

@ -8,7 +8,7 @@ import logging
import pytest import pytest
from unittest.mock import Mock, PropertyMock, MagicMock, AsyncMock, patch, mock_open, ANY from unittest.mock import Mock, PropertyMock, MagicMock, AsyncMock, patch, mock_open, ANY
from fjerkroa_bot import FjerkroaBot 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 from discord import User, Message, TextChannel
@ -78,6 +78,20 @@ class TestFunctionality(TestBotBase):
expected_output = 'This is a string.' expected_output = 'This is a string.'
self.assertEqual(parse_maybe_json(json_struct), expected_output) 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 test_on_message_event(self) -> None:
async def acreate(*a, **kw): async def acreate(*a, **kw):
answer = {'answer': 'Hello!', answer = {'answer': 'Hello!',