Fix username linkification bug
This commit is contained in:
		
							parent
							
								
									7a7c4d68e4
								
							
						
					
					
						commit
						3ea926550b
					
				| 
						 | 
				
			
			@ -8,7 +8,7 @@ from unicode import Rune, `$`
 | 
			
		|||
const
 | 
			
		||||
  urlRegex = re"((https?|ftp)://(-\.)?([^\s/?\.#]+\.?)+([/\?][^\s\)]*)?)"
 | 
			
		||||
  emailRegex = re"([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)"
 | 
			
		||||
  usernameRegex = re"(^|[^A-z0-9_?])@([A-z0-9_]+)"
 | 
			
		||||
  usernameRegex = re"(^|[^A-z0-9_?\/])@([A-z0-9_]+)"
 | 
			
		||||
  picRegex = re"pic.twitter.com/[^ ]+"
 | 
			
		||||
  ellipsisRegex = re" ?…"
 | 
			
		||||
  hashtagRegex = re"([^\S])?([#$][A-z0-9]+)"
 | 
			
		||||
| 
						 | 
				
			
			@ -77,15 +77,15 @@ proc replaceUrl*(url: string; prefs: Prefs): string =
 | 
			
		|||
 | 
			
		||||
proc linkifyText*(text: string; prefs: Prefs; rss=false): string =
 | 
			
		||||
  result = xmltree.escape(stripText(text))
 | 
			
		||||
  result = result.replace(ellipsisRegex, "")
 | 
			
		||||
  result = result.replace(ellipsisRegex, " ")
 | 
			
		||||
  result = result.replace(emailRegex, reEmailToLink)
 | 
			
		||||
  result = result.replace(hashtagRegex, reHashtagToLink)
 | 
			
		||||
  if rss:
 | 
			
		||||
    result = result.replace(urlRegex, reUrlToLink)
 | 
			
		||||
    result = result.replace(usernameRegex, reUsernameToFullLink)
 | 
			
		||||
  else:
 | 
			
		||||
    result = result.replace(urlRegex, reUrlToShortLink)
 | 
			
		||||
    result = result.replace(usernameRegex, reUsernameToLink)
 | 
			
		||||
  result = result.replace(hashtagRegex, reHashtagToLink)
 | 
			
		||||
  result = result.replace(re"([^\s\(\n%])<a", "$1 <a")
 | 
			
		||||
  result = result.replace(re"</a>\s+([;.,!\)'%]|')", "</a>$1")
 | 
			
		||||
  result = result.replace(re"^\. <a", ".<a")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue