Add support for "vmap" videos

This commit is contained in:
Zed 2019-06-25 07:37:44 +02:00
parent ac8d0e2052
commit 13dc5efcf6
2 changed files with 28 additions and 10 deletions

View file

@ -100,7 +100,12 @@ proc parseConversation*(node: XmlNode): Conversation =
proc parseVideo*(node: JsonNode): Video = proc parseVideo*(node: JsonNode): Video =
let track = node{"track"} let track = node{"track"}
let contentType = track["contentType"].to(string)
case contentType
of "media_entity":
result = Video( result = Video(
contentType: m3u8,
thumb: node["posterImage"].to(string), thumb: node["posterImage"].to(string),
id: track["contentId"].to(string), id: track["contentId"].to(string),
length: track["durationMs"].to(int), length: track["durationMs"].to(int),
@ -108,3 +113,12 @@ proc parseVideo*(node: JsonNode): Video =
url: track["playbackUrl"].to(string), url: track["playbackUrl"].to(string),
available: track{"mediaAvailability"}["status"].to(string) == "available" available: track{"mediaAvailability"}["status"].to(string) == "available"
) )
of "vmap":
result = Video(
contentType: vmap,
thumb: node["posterImage"].to(string),
url: track["vmapUrl"].to(string),
length: track["durationMs"].to(int),
)
else:
echo "Can't parse video of type ", contentType

View file

@ -31,12 +31,16 @@ db("cache.db", "", "", ""):
.}: Time .}: Time
type type
VideoType* = enum
vmap, m3u8
Video* = object Video* = object
id*: string contentType*: VideoType
url*: string url*: string
thumb*: string thumb*: string
length*: int id*: string
views*: string views*: string
length*: int
available*: bool available*: bool
Gif* = object Gif* = object