Add support for loading more tweet replies
This commit is contained in:
@@ -141,7 +141,7 @@ proc parseThread*(nodes: XmlNode): Thread =
|
||||
else:
|
||||
result.content.add parseTweet(n)
|
||||
|
||||
proc parseConversation*(node: XmlNode): Conversation =
|
||||
proc parseConversation*(node: XmlNode; after: string): Conversation =
|
||||
let tweet = node.select(".permalink-tweet-container")
|
||||
|
||||
if tweet == nil:
|
||||
@@ -149,9 +149,21 @@ proc parseConversation*(node: XmlNode): Conversation =
|
||||
|
||||
result = Conversation(
|
||||
tweet: parseTweet(tweet),
|
||||
before: parseThread(node.select(".in-reply-to .stream-items"))
|
||||
before: parseThread(node.select(".in-reply-to .stream-items")),
|
||||
replies: Result[Thread](
|
||||
minId: node.selectAttr(".replies-to .stream-container", "data-min-position"),
|
||||
hasMore: node.select(".stream-footer .has-more-items") != nil,
|
||||
beginning: after.len == 0
|
||||
)
|
||||
)
|
||||
|
||||
let showMore = node.selectAttr(".ThreadedConversation-showMoreThreads button",
|
||||
"data-cursor")
|
||||
|
||||
if showMore.len > 0:
|
||||
result.replies.minId = showMore
|
||||
result.replies.hasMore = true
|
||||
|
||||
let replies = node.select(".replies-to .stream-items")
|
||||
if replies == nil: return
|
||||
|
||||
@@ -162,9 +174,9 @@ proc parseConversation*(node: XmlNode): Conversation =
|
||||
if i == 0 and "self" in class:
|
||||
result.after = parseThread(thread)
|
||||
elif "lone" in class:
|
||||
result.replies.add parseThread(reply)
|
||||
result.replies.content.add parseThread(reply)
|
||||
else:
|
||||
result.replies.add parseThread(thread)
|
||||
result.replies.content.add parseThread(thread)
|
||||
|
||||
proc parseTimeline*(node: XmlNode; after: string): Timeline =
|
||||
if node == nil: return Timeline()
|
||||
|
||||
Reference in New Issue
Block a user