Support profile image color parsing in wip parser
This commit is contained in:
		
							parent
							
								
									a54d6aa1eb
								
							
						
					
					
						commit
						49a2fbb070
					
				| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
import std/[algorithm, unicode, re, strutils]
 | 
			
		||||
import std/[algorithm, unicode, re, strutils, strformat]
 | 
			
		||||
import jsony
 | 
			
		||||
import utils, slices
 | 
			
		||||
import ../types/user as userType
 | 
			
		||||
| 
						 | 
				
			
			@ -34,9 +34,14 @@ proc expandUserEntities(user: var User; raw: RawUser) =
 | 
			
		|||
proc getBanner(user: RawUser): string =
 | 
			
		||||
  if user.profileBannerUrl.len > 0:
 | 
			
		||||
    return user.profileBannerUrl & "/1500x500"
 | 
			
		||||
 | 
			
		||||
  if user.profileLinkColor.len > 0:
 | 
			
		||||
    return '#' & user.profileLinkColor
 | 
			
		||||
 | 
			
		||||
  if user.profileImageExtensions.mediaColor.r.ok.palette.len > 0:
 | 
			
		||||
    let color = user.profileImageExtensions.mediaColor.r.ok.palette[0].rgb
 | 
			
		||||
    return &"#{color.red:02x}{color.green:02x}{color.blue:02x}"
 | 
			
		||||
 | 
			
		||||
proc toUser*(raw: RawUser): User =
 | 
			
		||||
  result = User(
 | 
			
		||||
    id: raw.idStr,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,6 +18,7 @@ type
 | 
			
		|||
    protected*: bool
 | 
			
		||||
    profileBannerUrl*: string
 | 
			
		||||
    profileImageUrlHttps*: string
 | 
			
		||||
    profileImageExtensions*: ImageExtensions
 | 
			
		||||
    profileLinkColor*: string
 | 
			
		||||
    pinnedTweetIdsStr*: seq[string]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -27,3 +28,15 @@ type
 | 
			
		|||
 | 
			
		||||
  Urls* = object
 | 
			
		||||
    urls*: seq[Url]
 | 
			
		||||
 | 
			
		||||
  ImageExtensions = object
 | 
			
		||||
    mediaColor*: tuple[r: Ok]
 | 
			
		||||
 | 
			
		||||
  Ok = object
 | 
			
		||||
    ok*: Palette
 | 
			
		||||
 | 
			
		||||
  Palette = object
 | 
			
		||||
    palette*: seq[tuple[rgb: Color]]
 | 
			
		||||
 | 
			
		||||
  Color* = object
 | 
			
		||||
    red*, green*, blue*: int
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue