@@ -3,7 +3,6 @@ import strutils, options, tables, times, math
import packedjson, packedjson/deserialiser
import types, parserutils, utils
import experimental/parser/unifiedcard
-import std/strutils
proc parseUser(js: JsonNode; id=""): User =
if js.isNull: return
@@ -133,6 +133,12 @@ proc getTombstone*(js: JsonNode): string =
result = js{"tombstoneInfo", "richText", "text"}.getStr
result.removeSuffix(" Learn more")
+proc getSource*(js: JsonNode): string =
+ let
+ raw_src = js["source"].getStr
+ src = raw_src.substr(raw_src.find('>') + 1, raw_src.rfind('<') - 1)
+ return src
+
proc extractSlice(js: JsonNode): Slice[int] =
result = js["indices"][0].getInt ..< js["indices"][1].getInt
@@ -174,8 +174,8 @@ type
available*: bool
tombstone*: string
location*: string
- stats*: TweetStats
source*: string
+ stats*: TweetStats
retweet*: Option[Tweet]
attribution*: Option[User]
mediaTags*: seq[User]
@@ -344,7 +344,7 @@ proc renderTweet*(tweet: Tweet; prefs: Prefs; path: string; class=""; index=0;
renderQuote(tweet.quote.get(), prefs, path)
if mainTweet:
- p(class="tweet-published"): text getTime(tweet) & " · " & tweet.source
+ p(class="tweet-published"): text &"{getTime(tweet)} · {tweet.source}"
if tweet.mediaTags.len > 0:
renderMediaTags(tweet.mediaTags)