| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import options
- import jsony
- from json import JsonNode
- import user, media, common
- type
- RawTweet* = object
- createdAt*: string
- idStr*: string
- fullText*: string
- displayTextRange*: array[2, int]
- entities*: Entities
- extendedEntities*: ExtendedEntities
- inReplyToStatusIdStr*: string
- inReplyToScreenName*: string
- userIdStr*: string
- isQuoteStatus*: bool
- replyCount*: int
- retweetCount*: int
- favoriteCount*: int
- quoteCount*: int
- conversationIdStr*: string
- favorited*: bool
- retweeted*: bool
- selfThread*: tuple[idStr: string]
- card*: Option[Card]
- quotedStatusIdStr*: string
- retweetedStatusIdStr*: string
- Card* = object
- name*: string
- url*: string
- bindingValues*: JsonNode
- Entities* = object
- hashtags*: seq[Hashtag]
- symbols*: seq[Hashtag]
- userMentions*: seq[UserMention]
- urls*: seq[Url]
- media*: seq[Entity]
- Hashtag* = object
- indices*: Slice[int]
- UserMention* = object
- screenName*: string
- name*: string
- indices*: Slice[int]
- ExtendedEntities* = object
- media*: seq[Entity]
- Entity* = object
- kind*: MediaType
- indices*: Slice[int]
- mediaUrlHttps*: string
- url*: string
- expandedUrl*: string
- videoInfo*: VideoInfo
- ext*: Ext
- extMediaAvailability*: tuple[status: string]
- extAltText*: string
- additionalMediaInfo*: AdditionalMediaInfo
- sourceStatusIdStr*: string
- sourceUserIdStr*: string
- AdditionalMediaInfo* = object
- sourceUser*: Option[RawUser]
- title*: string
- description*: string
- Ext* = object
- mediaStats*: JsonNode
- MediaStats* = object
- ok*: tuple[viewCount: string]
- proc renameHook*(v: var Entity; fieldName: var string) =
- if fieldName == "type":
- fieldName = "kind"
- proc parseHook*(s: string; i: var int; v: var Slice[int]) =
- var slice: array[2, int]
- parseHook(s, i, slice)
- v = slice[0] ..< slice[1]
|