mirror of https://gitlab.com/bashrc2/epicyon
Function to extract mentions as a string
parent
4064a317bc
commit
125ead6f8b
25
content.py
25
content.py
|
@ -14,6 +14,31 @@ from utils import fileLastModified
|
||||||
from utils import getLinkPrefixes
|
from utils import getLinkPrefixes
|
||||||
|
|
||||||
|
|
||||||
|
def getMentionsString(content: str) -> []:
|
||||||
|
"""Returns the initial string containing mentions from the post content
|
||||||
|
and the content string without the initial mentions
|
||||||
|
"""
|
||||||
|
if ' ' not in content:
|
||||||
|
# Doesn't contain any distinct words
|
||||||
|
return ['', content]
|
||||||
|
if '@' not in content:
|
||||||
|
# Nothing which could be a mention
|
||||||
|
return ['', content]
|
||||||
|
messageStr = content.strip()
|
||||||
|
if not messageStr.startswith('@'):
|
||||||
|
# There are no mentions
|
||||||
|
return ['', content]
|
||||||
|
words = messageStr.split(' ')
|
||||||
|
# get each mentioned handle
|
||||||
|
mentions = ''
|
||||||
|
for handle in words:
|
||||||
|
if not handle.startswith('@'):
|
||||||
|
break
|
||||||
|
mentions += handle + ' '
|
||||||
|
messageStr = content.replace(mentions, '')
|
||||||
|
return [mentions.strip(), messageStr]
|
||||||
|
|
||||||
|
|
||||||
def switchWords(baseDir: str, nickname: str, domain: str, content: str) -> str:
|
def switchWords(baseDir: str, nickname: str, domain: str, content: str) -> str:
|
||||||
"""Performs word replacements. eg. Trump -> The Orange Menace
|
"""Performs word replacements. eg. Trump -> The Orange Menace
|
||||||
"""
|
"""
|
||||||
|
|
17
tests.py
17
tests.py
|
@ -64,6 +64,7 @@ from media import getAttachmentMediaType
|
||||||
from delete import sendDeleteViaServer
|
from delete import sendDeleteViaServer
|
||||||
from inbox import validInbox
|
from inbox import validInbox
|
||||||
from inbox import validInboxFilenames
|
from inbox import validInboxFilenames
|
||||||
|
from content import getMentionsString
|
||||||
from content import addWebLinks
|
from content import addWebLinks
|
||||||
from content import replaceEmojiFromTags
|
from content import replaceEmojiFromTags
|
||||||
from content import addHtmlTags
|
from content import addHtmlTags
|
||||||
|
@ -1865,8 +1866,24 @@ def testSiteIsActive():
|
||||||
assert(not siteIsActive('https://notarealwebsite.a.b.c'))
|
assert(not siteIsActive('https://notarealwebsite.a.b.c'))
|
||||||
|
|
||||||
|
|
||||||
|
def testGetMentionsString():
|
||||||
|
print('testGetMentionsString')
|
||||||
|
content = 'This post has no mentions'
|
||||||
|
result = getMentionsString(content)
|
||||||
|
assert len(result) == 2
|
||||||
|
assert not result[0]
|
||||||
|
assert result[1] == 'This post has no mentions'
|
||||||
|
|
||||||
|
content = '@nick@abc @sue@def This post has no mentions'
|
||||||
|
result = getMentionsString(content)
|
||||||
|
assert len(result) == 2
|
||||||
|
assert result[0] == '@nick@abc @sue@def'
|
||||||
|
assert result[1] == 'This post has no mentions'
|
||||||
|
|
||||||
|
|
||||||
def runAllTests():
|
def runAllTests():
|
||||||
print('Running tests...')
|
print('Running tests...')
|
||||||
|
testGetMentionsString()
|
||||||
testSiteIsActive()
|
testSiteIsActive()
|
||||||
testJsonld()
|
testJsonld()
|
||||||
testRemoveTextFormatting()
|
testRemoveTextFormatting()
|
||||||
|
|
Loading…
Reference in New Issue