Shorten any long text inside of existing links

merge-requests/30/head
Bob Mottram 2022-05-04 12:34:33 +01:00
parent ef8ca26c5c
commit 05680217c1
2 changed files with 44 additions and 0 deletions

View File

@ -529,9 +529,41 @@ def _add_music_tag(content: str, tag: str) -> str:
return ':music: ' + content + ' ' + tag + ' '
def _shorten_linked_urls(content: str) -> str:
"""If content comes with a web link included then make sure
that it is short enough
"""
if 'href=' not in content:
return content
if '>' not in content:
return content
if '<' not in content:
return content
sections = content.split('>')
ctr = 0
for section_text in sections:
if ctr == 0:
ctr += 1
continue
if '<' not in section_text:
ctr += 1
continue
section_text = section_text.split('<')[0]
if ' ' in section_text:
continue
if len(section_text) > MAX_LINK_LENGTH:
content = content.replace('>' + section_text + '<',
'>' +
section_text[:MAX_LINK_LENGTH-1] + '<')
ctr += 1
return content
def add_web_links(content: str) -> str:
"""Adds markup for web links
"""
content = _shorten_linked_urls(content)
if ':' not in content:
return content

View File

@ -3523,6 +3523,18 @@ def _test_actor_parsing():
def _test_web_links():
print('test_web_links')
example_text = \
'<p>Some text!</p><p><a href=\"https://videosite.whatever/video' + \
'/A3JpZMovL25kci1kZS32MGE0NCg4YB1lMLQwLTRkMGEtYkYxMS5kNmQ1MjJqY' + \
'WZjKzd\">https://videosite.whatever/video/A3JpZMovL25kci1kZS32' + \
'MGE0NCg4YB1lMLQwLTRkMGEtYkYxMS5kNmQ1MjJqYWZjKzd</a></p>'
linked_text = add_web_links(example_text)
expected_text = \
'<p>Some text!</p><p><a href="https://videosite.whatever/video/' + \
'A3JpZMovL25kci1kZS32MGE0NCg4YB1lMLQwLTRkMGEtYkYxMS5kNmQ1MjJqYW' + \
'ZjKzd">https://videosite.whatever/video/A3JpZM</a></p>'
assert linked_text == expected_text
example_text = \
"<p>Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + \
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + \