|
|
@@ -12,7 +12,7 @@
|
|
|
#elif retweet.len > 0: prefix = &"RT by @{retweet}: "
|
|
|
#elif tweet.reply.len > 0: prefix = &"R to @{tweet.reply[0]}: "
|
|
|
#end if
|
|
|
-#var text = stripHtml(tweet.text)
|
|
|
+#var text = strutils.splitWhitespace(stripHtml(tweet.text)).join(" ")
|
|
|
##if unicode.runeLen(text) > 32:
|
|
|
## text = unicode.runeSubStr(text, 0, 32) & "..."
|
|
|
##end if
|
|
|
@@ -34,6 +34,12 @@
|
|
|
# end case
|
|
|
# end if
|
|
|
#end if
|
|
|
+#if result.len == 0 and tweet.articlePreview.isSome:
|
|
|
+# let art = tweet.articlePreview.get()
|
|
|
+# if art.title.len > 0:
|
|
|
+# result = prefix & xmltree.escape(art.title)
|
|
|
+# end if
|
|
|
+#end if
|
|
|
#if result.len == 0 and tweet.card.isSome:
|
|
|
# let card = tweet.card.get()
|
|
|
# if card.kind notin {hidden, unknown} and card.title.len > 0:
|
|
|
@@ -69,6 +75,8 @@ Twitter feed for: ${desc}. Generated by ${getUrlPrefix(cfg)}
|
|
|
#proc renderRssCard(card: Card; prefs: Prefs; urlPrefix: string): string =
|
|
|
#let cardLink = if card.url.startsWith("/"): urlPrefix & card.url else: replaceUrls(card.url, prefs)
|
|
|
#let title = xmltree.escape(card.title)
|
|
|
+<hr/>
|
|
|
+<b>Link</b><br>
|
|
|
#if cardLink.len > 0:
|
|
|
<a href="${xmltree.escape(cardLink)}">
|
|
|
#end if
|
|
|
@@ -87,11 +95,49 @@ Twitter feed for: ${desc}. Generated by ${getUrlPrefix(cfg)}
|
|
|
#if card.text.len > 0:
|
|
|
<p>${xmltree.escape(card.text)}</p>
|
|
|
#end if
|
|
|
-#if card.dest.len > 0:
|
|
|
+#if cardLink.len > 0:
|
|
|
+# let destText = if card.dest.len > 0: xmltree.escape(card.dest) else: xmltree.escape(cardLink)
|
|
|
+<small><a href="${xmltree.escape(cardLink)}">${destText}</a></small>
|
|
|
+#elif card.dest.len > 0:
|
|
|
<small>${xmltree.escape(card.dest)}</small>
|
|
|
#end if
|
|
|
#end proc
|
|
|
#
|
|
|
+#proc renderRssArticle(article: ArticlePreview; urlPrefix: string): string =
|
|
|
+#let link = urlPrefix & "/i/article/" & $article.tweetId
|
|
|
+<hr/>
|
|
|
+<b>Article</b><br>
|
|
|
+<a href="${link}">
|
|
|
+#if article.coverImage.len > 0:
|
|
|
+<img src="${urlPrefix}${getPicUrl(article.coverImage)}" style="max-width:250px;" />
|
|
|
+#end if
|
|
|
+#if article.title.len > 0:
|
|
|
+# if article.coverImage.len > 0:
|
|
|
+<br>
|
|
|
+# end if
|
|
|
+<b>${xmltree.escape(article.title)}</b>
|
|
|
+#end if
|
|
|
+</a>
|
|
|
+#if article.previewText.len > 0:
|
|
|
+<p>${xmltree.escape(article.previewText)}</p>
|
|
|
+#end if
|
|
|
+#end proc
|
|
|
+#
|
|
|
+#proc renderRssPoll(poll: Poll): string =
|
|
|
+<hr/>
|
|
|
+<b>Poll</b>
|
|
|
+<p>
|
|
|
+#for i in 0 ..< poll.options.len:
|
|
|
+# let perc = if poll.votes > 0: poll.values[i] / poll.votes * 100 else: 0.0
|
|
|
+# let pct = (&"{perc:.0f}").strip(chars={'.'})
|
|
|
+# let line = pct & "% — " & xmltree.escape(poll.options[i])
|
|
|
+${line}<br>
|
|
|
+#end for
|
|
|
+#let votesStr = insertSep($poll.votes, ',')
|
|
|
+<i>${votesStr} votes • ${xmltree.escape(poll.status)}</i>
|
|
|
+</p>
|
|
|
+#end proc
|
|
|
+#
|
|
|
#proc getTweetsWithPinned(profile: Profile): seq[Tweets] =
|
|
|
#result = profile.tweets.content
|
|
|
#if profile.pinned.isSome and result.len > 0:
|
|
|
@@ -114,7 +160,9 @@ Twitter feed for: ${desc}. Generated by ${getUrlPrefix(cfg)}
|
|
|
#let tweet = tweet.retweet.get(tweet)
|
|
|
#let urlPrefix = getUrlPrefix(cfg)
|
|
|
#let text = replaceUrls(tweet.text, prefs, absolute=urlPrefix)
|
|
|
+#if text.len > 0:
|
|
|
<p>${text.replace("\n", "<br>\n")}</p>
|
|
|
+#end if
|
|
|
#if tweet.media.len > 0:
|
|
|
# for media in tweet.media:
|
|
|
${renderRssMedia(media, tweet, urlPrefix)}
|
|
|
@@ -122,6 +170,12 @@ ${renderRssMedia(media, tweet, urlPrefix)}
|
|
|
#elif tweet.card.isSome and tweet.card.get().kind notin {hidden, unknown}:
|
|
|
${renderRssCard(tweet.card.get(), prefs, urlPrefix)}
|
|
|
#end if
|
|
|
+#if tweet.articlePreview.isSome:
|
|
|
+${renderRssArticle(tweet.articlePreview.get(), urlPrefix)}
|
|
|
+#end if
|
|
|
+#if tweet.poll.isSome:
|
|
|
+${renderRssPoll(tweet.poll.get())}
|
|
|
+#end if
|
|
|
#if tweet.note.len > 0 and not prefs.hideCommunityNotes:
|
|
|
<p><b>Community note:</b> ${replaceUrls(tweet.note, prefs, absolute=urlPrefix)}</p>
|
|
|
#end if
|