mirror of
https://github.com/zedeus/nitter
synced 2024-11-26 19:49:16 +01:00
commit
698ed8a85d
@ -63,7 +63,7 @@ proc cache*(video: var Video) =
|
||||
if video.videoId.len > 0:
|
||||
video.insert()
|
||||
|
||||
proc getCachedVideo*(id: int): Option[Video] =
|
||||
proc getCachedVideo*(id: int64): Option[Video] =
|
||||
withDb:
|
||||
try:
|
||||
return some Video.getOne("videoId = ?", $id)
|
||||
|
@ -49,7 +49,7 @@ proc getUserpic*(userpic: string; style=""): string =
|
||||
proc getUserpic*(profile: Profile; style=""): string =
|
||||
getUserPic(profile.userpic, style)
|
||||
|
||||
proc getVideoEmbed*(cfg: Config; id: int): string =
|
||||
proc getVideoEmbed*(cfg: Config; id: int64): string =
|
||||
&"https://{cfg.hostname}/i/videos/{id}"
|
||||
|
||||
proc pageTitle*(profile: Profile): string =
|
||||
|
@ -72,7 +72,7 @@ proc parseTweetProfile*(profile: XmlNode): Profile =
|
||||
|
||||
proc parseQuote*(quote: XmlNode): Quote =
|
||||
result = Quote(
|
||||
id: parseInt(quote.attr("data-item-id")),
|
||||
id: parseBiggestInt(quote.attr("data-item-id")),
|
||||
text: getQuoteText(quote),
|
||||
reply: parseTweetReply(quote),
|
||||
hasThread: quote.select(".self-thread-context") != nil,
|
||||
@ -99,8 +99,8 @@ proc parseTweet*(node: XmlNode): Tweet =
|
||||
return Tweet()
|
||||
|
||||
result = Tweet(
|
||||
id: parseInt(tweet.attr("data-item-id")),
|
||||
threadId: parseInt(tweet.attr("data-conversation-id")),
|
||||
id: parseBiggestInt(tweet.attr("data-item-id")),
|
||||
threadId: parseBiggestInt(tweet.attr("data-conversation-id")),
|
||||
text: getTweetText(tweet),
|
||||
time: getTimestamp(tweet),
|
||||
shortTime: getShortTime(tweet),
|
||||
@ -119,7 +119,7 @@ proc parseTweet*(node: XmlNode): Tweet =
|
||||
if by.len > 0:
|
||||
result.retweet = some Retweet(
|
||||
by: stripText(by),
|
||||
id: parseInt(tweet.attr("data-retweet-id"))
|
||||
id: parseBiggestInt(tweet.attr("data-retweet-id"))
|
||||
)
|
||||
|
||||
let quote = tweet.select(".QuoteTweet-innerContainer")
|
||||
@ -196,7 +196,7 @@ proc parseTimeline*(node: XmlNode; after: string): Timeline =
|
||||
beginning: after.len == 0
|
||||
)
|
||||
|
||||
proc parseVideo*(node: JsonNode; tweetId: int): Video =
|
||||
proc parseVideo*(node: JsonNode; tweetId: int64): Video =
|
||||
let
|
||||
track = node{"track"}
|
||||
cType = track["contentType"].to(string)
|
||||
|
@ -82,7 +82,7 @@ proc getTweetText*(tweet: XmlNode): string =
|
||||
|
||||
proc getTimestamp*(tweet: XmlNode): Time =
|
||||
let time = tweet.selectAttr(".js-short-timestamp", "data-time")
|
||||
fromUnix(if time.len > 0: parseInt(time) else: 0)
|
||||
fromUnix(if time.len > 0: parseBiggestInt(time) else: 0)
|
||||
|
||||
proc getShortTime*(tweet: XmlNode): string =
|
||||
tweet.selectText(".js-short-timestamp")
|
||||
@ -270,9 +270,9 @@ proc getTweetCard*(tweet: Tweet; node: XmlNode) =
|
||||
|
||||
tweet.card = some card
|
||||
|
||||
proc getMoreReplies*(node: XmlNode): int =
|
||||
proc getMoreReplies*(node: XmlNode): int64 =
|
||||
let text = node.innerText().strip()
|
||||
try:
|
||||
result = parseInt(text.split(" ")[0])
|
||||
result = parseBiggestInt(text.split(" ")[0])
|
||||
except:
|
||||
result = -1
|
||||
|
@ -11,6 +11,6 @@ export embed
|
||||
proc createEmbedRouter*(cfg: Config) =
|
||||
router embed:
|
||||
get "/i/videos/tweet/@id":
|
||||
let tweet = Tweet(id: @"id".parseInt, video: some Video())
|
||||
let tweet = Tweet(id: @"id".parseBiggestInt, video: some Video())
|
||||
await getVideo(tweet, getAgent(), "")
|
||||
resp renderVideoEmbed(cfg, tweet)
|
||||
|
@ -115,7 +115,7 @@ type
|
||||
video*: Option[Video]
|
||||
|
||||
Quote* = object
|
||||
id*: int
|
||||
id*: int64
|
||||
profile*: Profile
|
||||
text*: string
|
||||
reply*: seq[string]
|
||||
@ -128,7 +128,7 @@ type
|
||||
|
||||
Retweet* = object
|
||||
by*: string
|
||||
id*: int
|
||||
id*: int64
|
||||
|
||||
TweetStats* = object
|
||||
replies*: string
|
||||
@ -136,8 +136,8 @@ type
|
||||
likes*: string
|
||||
|
||||
Tweet* = ref object
|
||||
id*: int
|
||||
threadId*: int
|
||||
id*: int64
|
||||
threadId*: int64
|
||||
profile*: Profile
|
||||
text*: string
|
||||
time*: Time
|
||||
@ -159,7 +159,7 @@ type
|
||||
|
||||
Chain* = ref object
|
||||
content*: seq[Tweet]
|
||||
more*: int
|
||||
more*: int64
|
||||
|
||||
Conversation* = ref object
|
||||
tweet*: Tweet
|
||||
|
@ -45,7 +45,7 @@ proc renderThread(thread: seq[Tweet]; prefs: Prefs; path: string): VNode =
|
||||
renderTweet(tweet, prefs, path, class=(header & "thread"),
|
||||
index=i, total=thread.high, showThread=show)
|
||||
|
||||
proc threadFilter(it: Tweet; thread: int): bool =
|
||||
proc threadFilter(it: Tweet; thread: int64): bool =
|
||||
it.retweet.isNone and it.reply.len == 0 and it.threadId == thread
|
||||
|
||||
proc renderUser(user: Profile; prefs: Prefs): VNode =
|
||||
@ -88,8 +88,8 @@ proc renderTimelineTweets*(results: Result[Tweet]; prefs: Prefs; path: string):
|
||||
if results.content.len == 0:
|
||||
renderNoneFound()
|
||||
else:
|
||||
var threads: seq[int]
|
||||
var retweets: seq[int]
|
||||
var threads: seq[int64]
|
||||
var retweets: seq[int64]
|
||||
for tweet in results.content:
|
||||
if tweet.threadId in threads or tweet.id in retweets: continue
|
||||
if tweet.pinned and prefs.hidePins: continue
|
||||
|
Loading…
Reference in New Issue
Block a user