@@ -73,8 +73,10 @@ proc parseTweet*(node: XmlNode): Tweet =
let by = tweet.selectText(".js-retweet-text > a > b")
if by.len > 0:
- result.retweetBy = some(by.stripText())
- result.retweetId = some(tweet.attr("data-retweet-id"))
+ result.retweet = some(Retweet(
+ by: stripText(by),
+ id: tweet.attr("data-retweet-id")
+ ))
let quote = tweet.select(".QuoteTweet-innerContainer")
if quote != nil:
@@ -62,6 +62,10 @@ type
thumb*: Option[string]
badge*: Option[string]
+ Retweet* = object
+ by*: string
+ id*: string
+
Tweet* = ref object
id*: string
profile*: Profile
@@ -72,9 +76,8 @@ type
retweets*: string
likes*: string
pinned*: bool
+ retweet*: Option[Retweet]
quote*: Option[Quote]
- retweetBy*: Option[string]
- retweetId*: Option[string]
gif*: Option[Gif]
video*: Option[Video]
photos*: seq[string]
@@ -3,9 +3,9 @@
#import ../types, ../formatters, ../utils
#
#proc renderHeading(tweet: Tweet): string =
-#if tweet.retweetBy.isSome:
+#if tweet.retweet.isSome:
<div class="retweet">
- <span>🔄 ${tweet.retweetBy.get()} retweeted</span>
+ <span>🔄 ${get(tweet.retweet).by} retweeted</span>
</div>
#end if
#if tweet.pinned:
@@ -61,7 +61,7 @@
#for tweet in timeline.tweets:
#if tweet.id in retweets: continue
- #elif tweet.retweetBy.isSome: retweets.add tweet.id
+ #elif tweet.retweet.isSome: retweets.add tweet.id
${renderTweet(tweet, "timeline-tweet")}
#end for