mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			Extra test for mentions
							parent
							
								
									27da1189e3
								
							
						
					
					
						commit
						c8925141ba
					
				
							
								
								
									
										39
									
								
								languages.py
								
								
								
								
							
							
						
						
									
										39
									
								
								languages.py
								
								
								
								
							| 
						 | 
				
			
			@ -182,6 +182,28 @@ def getLinksFromContent(content: str) -> {}:
 | 
			
		|||
    return links
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def addLinksToContent(content: str, links: {}) -> str:
 | 
			
		||||
    """Adds links back into plain text
 | 
			
		||||
    """
 | 
			
		||||
    for linkText, url in links.items():
 | 
			
		||||
        urlDesc = url
 | 
			
		||||
        if linkText.startswith('@') and linkText in content:
 | 
			
		||||
            content = \
 | 
			
		||||
                content.replace(linkText,
 | 
			
		||||
                                '<a href="' + url +
 | 
			
		||||
                                '" rel="nofollow noopener ' +
 | 
			
		||||
                                'noreferrer" target="_blank">' +
 | 
			
		||||
                                linkText + '</a>')
 | 
			
		||||
        else:
 | 
			
		||||
            if len(urlDesc) > 40:
 | 
			
		||||
                urlDesc = urlDesc[:40]
 | 
			
		||||
            content += \
 | 
			
		||||
                '<p><a href="' + url + \
 | 
			
		||||
                '" rel="nofollow noopener noreferrer" target="_blank">' + \
 | 
			
		||||
                urlDesc + '</a></p>'
 | 
			
		||||
    return content
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _libretranslate(url: str, text: str,
 | 
			
		||||
                    source: str, target: str, apiKey: str = None) -> str:
 | 
			
		||||
    """Translate string using libretranslate
 | 
			
		||||
| 
						 | 
				
			
			@ -220,22 +242,7 @@ def _libretranslate(url: str, text: str,
 | 
			
		|||
 | 
			
		||||
    # append links form the original text
 | 
			
		||||
    if links:
 | 
			
		||||
        for linkText, url in links.items():
 | 
			
		||||
            urlDesc = url
 | 
			
		||||
            if linkText.startswith('@') and linkText in translatedText:
 | 
			
		||||
                translatedText = \
 | 
			
		||||
                    translatedText.replace(linkText,
 | 
			
		||||
                                           '<a href="' + url +
 | 
			
		||||
                                           '" rel="nofollow noopener ' +
 | 
			
		||||
                                           'noreferrer" target="_blank">' +
 | 
			
		||||
                                           linkText + '</a>')
 | 
			
		||||
            else:
 | 
			
		||||
                if len(urlDesc) > 40:
 | 
			
		||||
                    urlDesc = urlDesc[:40]
 | 
			
		||||
                translatedText += \
 | 
			
		||||
                    '<p><a href="' + url + \
 | 
			
		||||
                    '" rel="nofollow noopener noreferrer" target="_blank">' + \
 | 
			
		||||
                    urlDesc + '</a></p>'
 | 
			
		||||
        translatedText = addLinksToContent(translatedText, links)
 | 
			
		||||
    return translatedText
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										11
									
								
								tests.py
								
								
								
								
							
							
						
						
									
										11
									
								
								tests.py
								
								
								
								
							| 
						 | 
				
			
			@ -126,6 +126,7 @@ from markdown import markdownToHtml
 | 
			
		|||
from languages import setActorLanguages
 | 
			
		||||
from languages import getActorLanguages
 | 
			
		||||
from languages import getLinksFromContent
 | 
			
		||||
from languages import addLinksToContent
 | 
			
		||||
 | 
			
		||||
testServerAliceRunning = False
 | 
			
		||||
testServerBobRunning = False
 | 
			
		||||
| 
						 | 
				
			
			@ -4236,15 +4237,19 @@ def _testGetLinksFromContent():
 | 
			
		|||
    link1 = 'https://somewebsite.net'
 | 
			
		||||
    link2 = 'http://somewhere.or.other'
 | 
			
		||||
    content = \
 | 
			
		||||
        'This is <a href="' + link1 + '">a link</a>. ' + \
 | 
			
		||||
        'This is <a href="' + link1 + '">@linked</a>. ' + \
 | 
			
		||||
        'And <a href="' + link2 + '">another</a>.'
 | 
			
		||||
    links = getLinksFromContent(content)
 | 
			
		||||
    assert len(links.items()) == 2
 | 
			
		||||
    assert links.get('a link')
 | 
			
		||||
    assert links['a link'] == link1
 | 
			
		||||
    assert links.get('@linked')
 | 
			
		||||
    assert links['@linked'] == link1
 | 
			
		||||
    assert links.get('another')
 | 
			
		||||
    assert links['another'] == link2
 | 
			
		||||
 | 
			
		||||
    contentPlain = '<p>' + removeHtml(content) + '</p>'
 | 
			
		||||
    content = addLinksToContent(contentPlain, links)
 | 
			
		||||
    assert '>@linked</a>' in content
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def runAllTests():
 | 
			
		||||
    print('Running tests...')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue