Minor retweet refactor

This commit is contained in:
Zed 2019-07-01 23:22:00 +02:00
parent 9b07199901
commit c60280415e
4 changed files with 12 additions and 7 deletions

View File

@ -73,8 +73,10 @@ proc parseTweet*(node: XmlNode): Tweet =
let by = tweet.selectText(".js-retweet-text > a > b") let by = tweet.selectText(".js-retweet-text > a > b")
if by.len > 0: if by.len > 0:
result.retweetBy = some(by.stripText()) result.retweet = some(Retweet(
result.retweetId = some(tweet.attr("data-retweet-id")) by: stripText(by),
id: tweet.attr("data-retweet-id")
))
let quote = tweet.select(".QuoteTweet-innerContainer") let quote = tweet.select(".QuoteTweet-innerContainer")
if quote != nil: if quote != nil:

View File

@ -62,6 +62,10 @@ type
thumb*: Option[string] thumb*: Option[string]
badge*: Option[string] badge*: Option[string]
Retweet* = object
by*: string
id*: string
Tweet* = ref object Tweet* = ref object
id*: string id*: string
profile*: Profile profile*: Profile
@ -72,9 +76,8 @@ type
retweets*: string retweets*: string
likes*: string likes*: string
pinned*: bool pinned*: bool
retweet*: Option[Retweet]
quote*: Option[Quote] quote*: Option[Quote]
retweetBy*: Option[string]
retweetId*: Option[string]
gif*: Option[Gif] gif*: Option[Gif]
video*: Option[Video] video*: Option[Video]
photos*: seq[string] photos*: seq[string]

View File

@ -3,9 +3,9 @@
#import ../types, ../formatters, ../utils #import ../types, ../formatters, ../utils
# #
#proc renderHeading(tweet: Tweet): string = #proc renderHeading(tweet: Tweet): string =
#if tweet.retweetBy.isSome: #if tweet.retweet.isSome:
<div class="retweet"> <div class="retweet">
<span>🔄 ${tweet.retweetBy.get()} retweeted</span> <span>🔄 ${get(tweet.retweet).by} retweeted</span>
</div> </div>
#end if #end if
#if tweet.pinned: #if tweet.pinned:

View File

@ -61,7 +61,7 @@
# #
#for tweet in timeline.tweets: #for tweet in timeline.tweets:
#if tweet.id in retweets: continue #if tweet.id in retweets: continue
#elif tweet.retweetBy.isSome: retweets.add tweet.id #elif tweet.retweet.isSome: retweets.add tweet.id
#end if #end if
${renderTweet(tweet, "timeline-tweet")} ${renderTweet(tweet, "timeline-tweet")}
#end for #end for