Optimize photo rail parser
This commit is contained in:
parent
be74cec48a
commit
ea7222bc86
1 changed files with 20 additions and 16 deletions
|
@ -403,21 +403,25 @@ proc parseTimeline*(js: JsonNode; after=""): Timeline =
|
||||||
elif "cursor-bottom" in entry:
|
elif "cursor-bottom" in entry:
|
||||||
result.bottom = e.getCursor
|
result.bottom = e.getCursor
|
||||||
|
|
||||||
proc parsePhotoRail*(tl: Timeline): PhotoRail =
|
proc parsePhotoRail*(js: JsonNode): PhotoRail =
|
||||||
for tweet in tl.content:
|
let
|
||||||
|
tweets = ? js{"globalObjects", "tweets"}
|
||||||
|
instructions = ? js{"timeline", "instructions"}
|
||||||
|
|
||||||
|
if instructions.len == 0 or tweets.len == 0: return
|
||||||
|
|
||||||
|
for e in instructions[0]{"addEntries", "entries"}:
|
||||||
if result.len == 16: break
|
if result.len == 16: break
|
||||||
|
let entry = e{"entryId"}.getStr
|
||||||
|
if "tweet" in entry:
|
||||||
|
let id = entry.getId
|
||||||
|
if id notin tweets: continue
|
||||||
|
let tweet = parseTweet(tweets{id})
|
||||||
|
var url = if tweet.photos.len > 0: tweet.photos[0]
|
||||||
|
elif tweet.video.isSome: get(tweet.video).thumb
|
||||||
|
elif tweet.gif.isSome: get(tweet.gif).thumb
|
||||||
|
elif tweet.card.isSome: get(tweet.card).image
|
||||||
|
else: ""
|
||||||
|
|
||||||
let url = if tweet.photos.len > 0: tweet.photos[0]
|
if url.len == 0: continue
|
||||||
elif tweet.video.isSome: get(tweet.video).thumb
|
result.add GalleryPhoto(url: url, tweetId: $tweet.id)
|
||||||
elif tweet.gif.isSome: get(tweet.gif).thumb
|
|
||||||
elif tweet.card.isSome: get(tweet.card).image
|
|
||||||
else: ""
|
|
||||||
|
|
||||||
if url.len == 0:
|
|
||||||
continue
|
|
||||||
|
|
||||||
result.add GalleryPhoto(
|
|
||||||
url: url,
|
|
||||||
tweetId: $tweet.id,
|
|
||||||
color: "#161616"
|
|
||||||
)
|
|
||||||
|
|
Loading…
Reference in a new issue