Преглед изворни кода

Fix loading more tweets when last one is a retweet

Zed пре 7 година
родитељ
комит
8f7c61eab6
3 измењених фајлова са 6 додато и 3 уклоњено
  1. 1 0
      src/parser.nim
  2. 1 0
      src/types.nim
  3. 4 3
      src/views/user.nim

+ 1 - 0
src/parser.nim

@@ -70,6 +70,7 @@ proc parseTweet*(tweet: XmlNode): Tweet =
   let by = tweet.selectText(".js-retweet-text > a > b")
   if by.len > 0:
     result.retweetBy = some(by)
+    result.retweetId = some(tweet.getAttr("data-retweet-id"))
 
 proc parseTweets*(node: XmlNode): Tweets =
   if node.isNil: return

+ 1 - 0
src/types.nim

@@ -47,6 +47,7 @@ type
     gif*: Option[string]
     video*: Option[string]
     videoThumb*: Option[string]
+    retweetId*: Option[string]
 
   Tweets* = seq[Tweet]
 

+ 4 - 3
src/views/user.nim

@@ -72,14 +72,15 @@
   #var retweets: Tweets
   #for tweet in tweets:
     #if tweet in retweets: continue
-    #end if
-    #if tweet.retweetBy.isSome: retweets.add tweet
+    #elif tweet.retweetBy.isSome: retweets.add tweet
     #end if
     ${renderTweet(tweet, "timeline-tweet")}
   #end for
   #if tweets.len > 0:
   <div class="show-more">
-    <a href="/${profile.username}?after=${$tweets[^1].id}">Load older tweets</a>
+    #let retweet = tweets[^1].retweetId.get("")
+    #let id = if retweet.len > 0: retweet else: tweets[^1].id
+    <a href="/${profile.username}?after=${$id}">Load older tweets</a>
   </div>
   #end if
 </div>