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