diff --git a/content.py b/content.py index 25124549f..8f8f4612f 100644 --- a/content.py +++ b/content.py @@ -273,7 +273,10 @@ def removeLongWords(content: str,maxWordLength: int,longWordsList: []) -> str: elif 'dat:' in wordStr: continue if '<' in wordStr: - wordStr=wordStr.split('<',1)[0] + replaceWord=wordStr.split('<',1)[0] + content= \ + content.replace(wordStr,replaceWord) + wordStr=replaceWord if '/' in wordStr: continue if len(wordStr[maxWordLength:])<maxWordLength: @@ -285,6 +288,9 @@ def removeLongWords(content: str,maxWordLength: int,longWordsList: []) -> str: content= \ content.replace(wordStr, \ wordStr[:maxWordLength]) + if content.startswith('<p>'): + if not content.endswith('</p>'): + content=content.strip()+'</p>' return content def addHtmlTags(baseDir: str,httpPrefix: str, \ diff --git a/tests.py b/tests.py index f677ffcb3..a9e066f3e 100644 --- a/tests.py +++ b/tests.py @@ -1558,6 +1558,10 @@ def testActorParsing(): def testWebLinks(): print('testWebLinks') + exampleText='<p><span class=\"h-card\"><a href=\"https://something/@orother\" class=\"u-url mention\">@<span>foo</span></a></span> Some random text.</p><p>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</p>' + resultText=removeLongWords(exampleText,40,[]) + assert resultText=='<p><span class="h-card"><a href="https://something/@orother" class="u-url mention">@<span>foo</span></a></span> Some random text.</p>' + exampleText='This post has a web links https://somesite.net\n\nAnd some other text' linkedText=addWebLinks(exampleText) assert '<a href="https://somesite.net" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">somesite.net</span></a' in linkedText @@ -1574,10 +1578,6 @@ def testWebLinks(): resultText=removeLongWords(exampleText,40,[]) assert resultText=='<p>ABCABCABCABCABCABCABCABCABCABCABCABCABCA<\p>' - exampleText='<p>Some text.\n\nHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHHAHAHAHAHAHAHAHAHAHAHAHAHHAHAHAHAHAHAHAHAH!</p>' - resultText=removeLongWords(exampleText,40,[]) - assert resultText=='<p>Some text.\n\nHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAH</p>' - def testAddEmoji(): print('testAddEmoji') @@ -1693,13 +1693,13 @@ def testRecentPostsCache(): def runAllTests(): print('Running tests...') + testWebLinks() testRecentPostsCache() testTheme() testSaveLoadJson() testCommentJson() testGetStatusNumber() testAddEmoji() - testWebLinks() testActorParsing() testHttpsig() testCache()