First, we need to define every object and its methods. # Category - [ ] id (String) - [ ] name (String) - [ ] slug (String) - [ ] Tags (List of Tag objects) # Channel - [x] bans (List of ChannelBan objects) - [ ] category (Category object) - [ ] chatMessages (List of ChatMessage objects) - [x] chatRulesHtml (String) - [x] chatRulesMd (String) - [ ] hmacKey (String) [can't be added until March 2nd] - [x] id (String) - [x] inaccessible (boolean) - [ ] insertedAt (NaiveDateTime) - [x] language (String) - [ ] moderationLogs (List of ChannelModerationLog objects) - [ ] moderators (list of ChannelModerator objects) - [ ] status (ChannelStatus object) - [ ] stream (Stream object) - [ ] streamer (User object) - [ ] streamKey (String) [can't be added until March 2nd] - [ ] tags (list of Tag objects) - [x] thumbnail (String) - [x] title (String) - [ ] updatedAt (NaiveDateTime) # ChatMessage - [ ] channel (Channel object) - [ ] id (String) - [ ] insertedAt (NaiveDateTime) - [ ] message (String) - [ ] tokens (list of ChatMessageToken objects) - [ ] updatedAt (NaiveDateTime) - [ ] user (User object) # Stream - [ ] avgChatters (int) - [ ] avgViewers (int) - [ ] category (Catrgory object) - [ ] channel (Channel object) - [ ] countChatters (int) - [ ] countViewers (int) - [ ] endedAt (NaiveDateTime) - [ ] id (String) - [ ] insertedAt (NaiveDateTime) - [ ] metadata (List of StreamMetadata objects) - [ ] newSubscribers (int) - [ ] peakChatters (int) - [ ] peakViewers (int) - [ ] resubSubscribers (int) - [ ] startedAt (NaiveDateTime) - [ ] thumbnail (String) - [ ] title (String) - [ ] updatedAt (NaiveDateTime) # ChannelBan - [x] channel (Channel object) - [ ] expiresAt (NaiveDateTime) - [ ] insertedAt (NaiveDateTime) - [x] reason (String) - [ ] updatedAt (NaiveDateTime) - [ ] user (User object) # ChannelModeratorLog - [ ] action (String) - [ ] channel (Channel object) - [ ] insertedAt (NaiveDateTime) - [ ] moderator (User object) - [ ] updatedAt (NaiveDateTime) - [ ] user (User object) # ChannelModerator - [ ] canBan (boolean) - [ ] canLongTimeout (boolean) - [ ] canShortTimeout (boolean) - [ ] canUnban (boolean) - [ ] canUnTimeout (boolean) - [ ] channel (Channel object) - [ ] insertedAt (NaiveDateTime) - [ ] updatedAt (NaiveDateTime) - [ ] user (User object) # Follower - [ ] hasLiveNotifications (boolean) - [ ] id (String) - [ ] insertedAt (NaiveDateTime) - [ ] streamer (User object) - [ ] updatedAt (NaiveDateTime) - [ ] user (User object) # Sub - [ ] endedAt (DateTime) - [ ] id (String) - [ ] insertedAt (NaiveDateTime) - [ ] price (int) - [ ] productName (String) - [ ] startedAt (DateTime) - [ ] streamer (User object) - [ ] updatedAt (NaiveDateTime) - [ ] user (User object) # Tag - [ ] category (Category object) - [ ] countUsage (int) - [ ] id (String) - [ ] insertedAt (NaiveDateTime) - [ ] name (String) - [ ] slug (String) - [ ] updatedAt (NaiveDateTime) # ChatMessageToken (interface?) - [ ] text (String) - [ ] type (String) # EmoteToken implements ChatMessageToken - [ ] src (String) - [ ] text (String) - [ ] type (String) - [ ] URL (String) # TextToken implements ChatMessageToken - [ ] text (String) - [ ] type (String) # UrlToken implements ChatMessageToken - [ ] text (String) - [ ] type (String) - [ ] URL (String) # StreamMetadata - [ ] audioCodec (String) - [ ] id (String) - [ ] ingestServer (String) - [ ] ingestViewers (String) - [ ] insertedAt (NaiveDateTime) - [ ] lostPackets (int) - [ ] nackPackets (int) - [ ] recvPackets (int) - [ ] sourceBitrate (int) - [ ] sourcePing (int) - [ ] stream (Stream object) - [ ] streamTimeSeconds (int) - [ ] updatedAt (NaiveDateTime) - [ ] vendorName (String) - [ ] vendorVersion (String) - [ ] videoCodec (String) - [ ] videoHeight (int) - [ ] videoWidth (int) # User - [x] avatar (String) - [x] avatarUrl (String) - [ ] confirmedAt (NaiveDateTime) - [x] displayname (String) - [x] id (String) - [x] profileContentHtml (String) - [x] profileContentMd (String) - [x] socialDiscord (String) - [x] socialGuilded (String) - [x] socialInstagram (String) - [ ] socials (list of UserSocial objects) - [x] socialYoutube (String) - [x] username (String) - [x] youtubeIntroUrl (String) # UserSocial - [ ] id (String) - [ ] identifier (String) - [ ] insertedAt (NaiveDateTime) - [ ] platform (String) - [ ] updatedAt (NaiveDateTime) - [ ] username (String)
First, we need to define every object and its methods.
Category
Channel
ChatMessage
Stream
ChannelBan
ChannelModeratorLog
ChannelModerator
Follower
Sub
Tag
ChatMessageToken (interface?)
EmoteToken implements ChatMessageToken
TextToken implements ChatMessageToken
UrlToken implements ChatMessageToken
StreamMetadata
User
UserSocial