Rewrite text parsing to ensure correctness

This commit is contained in:
Zed
2019-10-09 16:06:51 +02:00
parent 83a651e732
commit 7b766b793b
7 changed files with 47 additions and 100 deletions

View File

@@ -25,7 +25,7 @@ proc renderProfileCard*(profile: Profile; prefs: Prefs): VNode =
tdiv(class="profile-card-extra"):
if profile.bio.len > 0:
tdiv(class="profile-bio"):
p: verbatim linkifyText(profile.bio, prefs)
p: verbatim replaceUrl(profile.bio, prefs)
if profile.location.len > 0:
tdiv(class="profile-location"):
@@ -39,8 +39,9 @@ proc renderProfileCard*(profile: Profile; prefs: Prefs): VNode =
if profile.website.len > 0:
tdiv(class="profile-website"):
span:
let url = replaceUrl(profile.website, prefs)
icon "link"
verbatim linkifyText(profile.website, prefs)
a(href=url): text shortLink(url)
tdiv(class="profile-joindate"):
span(title=getJoinDateFull(profile)):

View File

@@ -7,7 +7,7 @@
#if tweet.pinned: result = "Pinned: "
#elif tweet.retweet.isSome: result = "RT: "
#end if
#result &= xmltree.escape(replaceUrl(tweet.text, prefs))
#result &= xmltree.escape(replaceUrl(tweet.text, prefs, rss=true))
#if result.len > 0: return
#end if
#if tweet.photos.len > 0:
@@ -20,7 +20,7 @@
#end proc
#
#proc renderRssTweet(tweet: Tweet; prefs: Prefs): string =
#let text = linkifyText(tweet.text, prefs, rss=true)
#let text = replaceUrl(tweet.text, prefs, rss=true)
#if tweet.quote.isSome and get(tweet.quote).available:
#let quoteLink = hostname & getLink(get(tweet.quote))
<p>${text}<br><a href="https://${quoteLink}">${quoteLink}</a></p>
@@ -58,7 +58,7 @@
#end proc
#
#proc renderTimelineRss*(timeline: Timeline; profile: Profile): string =
#let prefs = Prefs(replaceTwitter: hostname)
#let prefs = Prefs(replaceTwitter: hostname, replaceYoutube: "invidio.us")
#result = ""
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
@@ -84,7 +84,7 @@
#end proc
#
#proc renderListRss*(tweets: seq[Tweet]; name, list: string): string =
#let prefs = Prefs(replaceTwitter: hostname)
#let prefs = Prefs(replaceTwitter: hostname, replaceYoutube: "invidio.us")
#let link = &"https://{hostname}/{name}/lists/{list}"
#result = ""
<?xml version="1.0" encoding="UTF-8"?>
@@ -102,7 +102,7 @@
#end proc
#
#proc renderSearchRss*(tweets: seq[Tweet]; name, param: string): string =
#let prefs = Prefs(replaceTwitter: hostname)
#let prefs = Prefs(replaceTwitter: hostname, replaceYoutube: "invidio.us")
#let link = &"https://{hostname}/search"
#result = ""
<?xml version="1.0" encoding="UTF-8"?>

View File

@@ -56,7 +56,7 @@ proc renderUser(user: Profile; prefs: Prefs): VNode =
linkUser(user, class="username")
tdiv(class="tweet-content media-body"):
verbatim linkifyText(user.bio, prefs)
verbatim replaceUrl(user.bio, prefs)
proc renderTimelineUsers*(results: Result[Profile]; prefs: Prefs; path=""): VNode =
buildHtml(tdiv(class="timeline")):

View File

@@ -215,7 +215,7 @@ proc renderQuote(quote: Quote; prefs: Prefs): VNode =
renderReply(quote)
tdiv(class="quote-text"):
verbatim linkifyText(quote.text, prefs)
verbatim replaceUrl(quote.text, prefs)
if quote.hasThread:
a(class="show-thread", href=getLink(quote)):
@@ -248,7 +248,7 @@ proc renderTweet*(tweet: Tweet; prefs: Prefs; path: string; class="";
renderReply(tweet)
tdiv(class="tweet-content media-body"):
verbatim linkifyText(tweet.text, prefs)
verbatim replaceUrl(tweet.text, prefs)
if tweet.quote.isSome:
renderQuote(tweet.quote.get(), prefs)