Add support for "vmap" videos
This commit is contained in:
		
							parent
							
								
									ac8d0e2052
								
							
						
					
					
						commit
						13dc5efcf6
					
				| 
						 | 
				
			
			@ -100,7 +100,12 @@ proc parseConversation*(node: XmlNode): Conversation =
 | 
			
		|||
 | 
			
		||||
proc parseVideo*(node: JsonNode): Video =
 | 
			
		||||
  let track = node{"track"}
 | 
			
		||||
  let contentType = track["contentType"].to(string)
 | 
			
		||||
 | 
			
		||||
  case contentType
 | 
			
		||||
  of "media_entity":
 | 
			
		||||
    result = Video(
 | 
			
		||||
      contentType: m3u8,
 | 
			
		||||
      thumb: node["posterImage"].to(string),
 | 
			
		||||
      id: track["contentId"].to(string),
 | 
			
		||||
      length: track["durationMs"].to(int),
 | 
			
		||||
| 
						 | 
				
			
			@ -108,3 +113,12 @@ proc parseVideo*(node: JsonNode): Video =
 | 
			
		|||
      url: track["playbackUrl"].to(string),
 | 
			
		||||
      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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,12 +31,16 @@ db("cache.db", "", "", ""):
 | 
			
		|||
        .}: Time
 | 
			
		||||
 | 
			
		||||
type
 | 
			
		||||
  VideoType* = enum
 | 
			
		||||
    vmap, m3u8
 | 
			
		||||
 | 
			
		||||
  Video* = object
 | 
			
		||||
    id*: string
 | 
			
		||||
    contentType*: VideoType
 | 
			
		||||
    url*: string
 | 
			
		||||
    thumb*: string
 | 
			
		||||
    length*: int
 | 
			
		||||
    id*: string
 | 
			
		||||
    views*: string
 | 
			
		||||
    length*: int
 | 
			
		||||
    available*: bool
 | 
			
		||||
 | 
			
		||||
  Gif* = object
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue