ソースを参照

Minor retweet refactor

Zed 7 年 前
コミット
c60280415e
4 ファイル変更12 行追加7 行削除
  1. 4 2
      src/parser.nim
  2. 5 2
      src/types.nim
  3. 2 2
      src/views/tweet.nimf
  4. 1 1
      src/views/user.nimf

+ 4 - 2
src/parser.nim

@@ -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:

+ 5 - 2
src/types.nim

@@ -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]

+ 2 - 2
src/views/tweet.nimf

@@ -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:

+ 1 - 1
src/views/user.nimf

@@ -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
   #end if
   ${renderTweet(tweet, "timeline-tweet")}
   #end for