Fix crash on protected profiles
This commit is contained in:
parent
8000a814df
commit
a3285e8410
|
@ -49,11 +49,10 @@ proc fetchJson(url: Uri; headers: HttpHeaders): Future[JsonNode] {.async.} =
|
|||
var resp = ""
|
||||
try:
|
||||
resp = await client.getContent($url)
|
||||
result = parseJson(resp)
|
||||
except:
|
||||
return nil
|
||||
|
||||
return parseJson(resp)
|
||||
|
||||
proc getGuestToken(): Future[string] {.async.} =
|
||||
if getTime() - tokenUpdated < tokenLifetime:
|
||||
return token
|
||||
|
@ -166,7 +165,7 @@ proc getTimeline*(username: string; after=""): Future[Timeline] {.async.} =
|
|||
url &= "&max_position=" & cleanAfter
|
||||
|
||||
let json = await fetchJson(base / url, headers)
|
||||
let html = parseHtml(json["items_html"].to(string))
|
||||
if json.isNil: return Timeline()
|
||||
|
||||
result = Timeline(
|
||||
hasMore: json["has_more_items"].to(bool),
|
||||
|
@ -177,6 +176,7 @@ proc getTimeline*(username: string; after=""): Future[Timeline] {.async.} =
|
|||
if json["new_latent_count"].to(int) == 0:
|
||||
return
|
||||
|
||||
let html = parseHtml(json["items_html"].to(string))
|
||||
result.tweets = parseTweets(html)
|
||||
await getVideos(result.tweets)
|
||||
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
#end proc
|
||||
#
|
||||
#proc renderTimeline*(timeline: Timeline; profile: Profile; beginning: bool): string =
|
||||
#var retweets: Tweets
|
||||
<div id="tweets">
|
||||
#if profile.protected:
|
||||
<div class="timeline-protected">
|
||||
|
@ -60,18 +61,20 @@
|
|||
<p class="timeline-protected-explanation">Only confirmed followers have access to @${profile.username}'s Tweets.</p>
|
||||
</div>
|
||||
#end if
|
||||
#
|
||||
#if not beginning:
|
||||
<div class="show-more status-el">
|
||||
<a href="/${profile.username}">Load newest tweets</a>
|
||||
</div>
|
||||
#end if
|
||||
#var retweets: Tweets
|
||||
#
|
||||
#for tweet in timeline.tweets:
|
||||
#if tweet in retweets: continue
|
||||
#elif tweet.retweetBy.isSome: retweets.add tweet
|
||||
#end if
|
||||
${renderTweet(tweet, "timeline-tweet")}
|
||||
#if tweet in retweets: continue
|
||||
#elif tweet.retweetBy.isSome: retweets.add tweet
|
||||
#end if
|
||||
${renderTweet(tweet, "timeline-tweet")}
|
||||
#end for
|
||||
#
|
||||
#if timeline.hasMore:
|
||||
<div class="show-more">
|
||||
<a href="/${profile.username}?after=${timeline.minId}">Load older tweets</a>
|
||||
|
@ -81,6 +84,7 @@
|
|||
<h2 class="timeline-end" style="text-align: center;">No more tweets.</h2>
|
||||
</div>
|
||||
#end if
|
||||
#
|
||||
#if timeline.tweets.len == 0:
|
||||
<div class="timeline-protected">
|
||||
<h2 class="timeline-protected-header" style="text-align: center;">No tweets found.</h2>
|
||||
|
|
Loading…
Reference in New Issue