Support promo_video_website cards

This commit is contained in:
Zed
2019-07-15 16:03:01 +02:00
parent d12f14135e
commit 27cf4cdf64
6 changed files with 48 additions and 35 deletions

View File

@@ -1,4 +1,4 @@
import xmltree, htmlparser, strtabs, strformat, times
import xmltree, htmlparser, strtabs, strformat, strutils, times
import regex
import types, formatters, api
@@ -169,13 +169,16 @@ proc getQuoteMedia*(quote: var Quote; node: XmlNode) =
proc getTweetCard*(tweet: Tweet; node: XmlNode) =
if node.attr("data-has-cards") == "false": return
let cardType = node.attr("data-card2-type")
var cardType = node.attr("data-card2-type")
if ":" in cardType:
cardType = cardType.split(":")[^1]
if "poll" in cardType:
tweet.poll = some(Poll())
return
let cardDiv = node.select(".card2 > div")
let cardDiv = node.select(".card2 > .js-macaw-cards-iframe-container")
if cardDiv == nil: return
var card = Card(
@@ -183,6 +186,11 @@ proc getTweetCard*(tweet: Tweet; node: XmlNode) =
query: cardDiv.attr("data-src")
)
try:
card.kind = parseEnum[CardKind](cardType)
except ValueError:
card.kind = summary
let cardUrl = cardDiv.attr("data-card-url")
for n in node.selectAll(".tweet-text a"):
if n.attr("href") == cardUrl: