Documentation
¶
Index ¶
- Constants
- Variables
- func GetURL(route Route, routeVars RouteVars) *url.URL
- func Request[REPLY any, REQUEST any](ctx context.Context, k *Kick, httpMethod string, route Route, ...) (_ret *REPLY, _err error)
- type BadgeV2
- type BannerImageV1
- type CategoriesV1Reply
- type CategoryV1
- type CategoryV1Short
- type CategoryV2
- type ChannelV1
- type ChatMessageSenderV2
- type ChatMessageV2
- type ChatMessagesV2Reply
- type ChatroomRulesV2
- type ChatroomV1
- type ChatroomV1Short
- type ChatroomV2
- type DeleteChatMessageReply
- type EmoteV1
- type IdentityV2
- type ImageV1
- type Kick
- func (k *Kick) GetChannelV1(ctx context.Context, channel string) (*ChannelV1, error)
- func (k *Kick) GetChatMessagesV2(ctx context.Context, channelID uint64, cursor uint64) (*ChatMessagesV2Reply, error)
- func (k *Kick) GetChatroomRulesV2(ctx context.Context, channelSlug string) (*ChatroomRulesV2, error)
- func (k *Kick) GetChatroomV1(ctx context.Context, channelSlug string) (*ChatroomV1, error)
- func (k *Kick) GetChatroomV2(ctx context.Context, channelSlug string) (*ChatroomV2, error)
- func (k *Kick) GetLivestreamV2(ctx context.Context, channelSlug string) (*LivestreamV2Reply, error)
- func (k *Kick) GetSubcategoriesV1(ctx context.Context) (*CategoriesV1Reply, error)
- func (k *Kick) TBDDeleteChatMessage(ctx context.Context, chatRoomID uint64, messageID uint64) (*DeleteChatMessageReply, error)
- func (k *Kick) TBDLogin(ctx context.Context, email string, password string) error
- func (k *Kick) TBDSwaggerGetDocs(ctx context.Context) (*map[string]any, error)
- type KickTokenProviderReply
- type LinkV1
- type LivestreamV1
- type LivestreamV2
- type LivestreamV2Reply
- type MediaAssetV1
- type MobileLoginReply
- type MobileLoginRequest
- type Route
- type RouteVars
- type SubscriberBadgeV1
- type UserV1
- type VideoV1
Constants ¶
const ( // RouteSubcategoriesAll is a route to the endpoint to get all subcategories using API v1. RouteSubcategoriesAll = Route("subcategories.all") // RouteChannelsShow is a route to the endpoint to get channel info using API v1. RouteChannelsShow = Route("channels.show") // RouteChannelLivestream is a route to the endpoint to get channel livestream info using API v2. RouteChannelLivestream = Route("channel.livestream") // RouteChatHistoryChannelMessages is a route to the endpoint to get channel messages history. RouteChatHistoryChannelMessages = Route("chat-history.channel-messages") // RouteDeleteChatMessage is a route to the endpoint to delete a chat message. RouteDeleteChatMessage = Route("delete.chatmessage") // RouteChatRoomGetRules is a route to the endpoint to get chat room rules using API v2. RouteChatRoomGetRules = Route("chatroom.getRules") // RouteChatRoomShow is a route to the endpoint to get chat room info using API v1. RouteChatRoomShow = Route("chatroom.show") // RouteChatRoomShow is a route to the endpoint to get chat room info using API v2. RouteChannelChatRoom = Route("channel.chatroom") // RouteKickTokenCreate is a route to the endpoint to create kick token (for authentication). RouteKickTokenCreate = Route("kick.token.create") // RouteSwaggerGetDocs is a route to the endpoint to get swagger docs. IT DOES NOT WORK. RouteSwaggerGetDocs = Route("swagger.getDocs") )
Variables ¶
var NoBody noBodyT
NoBody is a request that could be used in function `Request` to signify that there is no request body.
Functions ¶
Types ¶
type BadgeV2 ¶
type BadgeV2 struct { Type string `json:"type"` Text string `json:"text"` Active bool `json:"active"` Count int `json:"count,omitempty"` }
BadgeV2 is a representation of a badge in the API v2.
type BannerImageV1 ¶
BannerImageV1 is a representation of a banner image in the API v1.
type CategoriesV1Reply ¶
type CategoriesV1Reply []CategoryV1Short
CategoriesV1Reply is the response provided by GetCategoriesV1
type CategoryV1 ¶
type CategoryV1 struct { ID uint64 `json:"id"` CategoryID uint64 `json:"category_id"` Name string `json:"name"` Slug string `json:"slug"` Tags []string `json:"tags"` Description any `json:"description"` DeletedAt any `json:"deleted_at"` Viewers uint64 `json:"viewers"` Category CategoryV1Short `json:"category"` }
CategoryV1 is a full representation of a category in the API v1.
type CategoryV1Short ¶
type CategoryV1Short struct { ID uint64 `json:"id"` Name string `json:"name"` Slug string `json:"slug"` Icon string `json:"icon,omitempty"` IsMature bool `json:"is_mature"` }
CategoryV1Short is a representation of a category essentials in the API v1.
type CategoryV2 ¶
type ChannelV1 ¶
type ChannelV1 struct { ID uint64 `json:"id"` UserID uint64 `json:"user_id"` Slug string `json:"slug"` IsBanned bool `json:"is_banned"` PlaybackURL string `json:"playback_url"` NameUpdatedAt string `json:"name_updated_at"` VodEnabled bool `json:"vod_enabled"` SubscriptionEnabled bool `json:"subscription_enabled"` FollowersCount uint64 `json:"followersCount"` SubscriberBadges []SubscriberBadgeV1 `json:"subscriber_badges"` BannerImage BannerImageV1 `json:"banner_image"` RecentCategories []CategoryV1 `json:"recent_categories"` Livestream LivestreamV1 `json:"livestream"` Role any `json:"role"` Muted bool `json:"muted"` FollowerBadges []any `json:"follower_badges"` OfflineBannerImage ImageV1 `json:"offline_banner_image"` CanHost bool `json:"can_host"` User UserV1 `json:"user"` Chatroom ChatroomV1Short `json:"chatroom"` AscendingLinks []LinkV1 `json:"ascending_links"` Plan any `json:"plan"` PreviousLivestreams []LivestreamV1 `json:"previous_livestreams"` Verified struct { ID uint64 `json:"id"` ChannelID uint64 `json:"channel_id"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } `json:"verified"` Media []MediaAssetV1 `json:"media"` }
ChannelV1 is a representation of a channel in the API v1.
type ChatMessageSenderV2 ¶
type ChatMessageSenderV2 struct { ID int `json:"id"` Slug string `json:"slug"` Username string `json:"username"` Identity IdentityV2 `json:"identity"` }
ChatMessageSenderV2 is a representation of the sender of a chat message in API v2.
type ChatMessageV2 ¶
type ChatMessageV2 struct { ID string `json:"id"` ChatID int `json:"chat_id"` UserID int `json:"user_id"` Content string `json:"content"` Type string `json:"type"` Metadata any `json:"metadata"` CreatedAt time.Time `json:"created_at"` Sender ChatMessageSenderV2 `json:"sender"` }
ChatMessageSenderV2 is a representation of a chat message in API v2.
type ChatMessagesV2Reply ¶
type ChatMessagesV2Reply struct { Status struct { Error bool `json:"error"` Code int `json:"code"` Message string `json:"message"` } `json:"status"` Data struct { Messages []ChatMessageV2 `json:"messages"` Cursor string `json:"cursor"` PinnedMessage any `json:"pinned_message"` } `json:"data"` }
ChatMessageSenderV2 is response in API v2 on a request to provide chat messages.
type ChatroomRulesV2 ¶
type ChatroomRulesV2 struct { Status struct { Error bool `json:"error"` Code int `json:"code"` Message string `json:"message"` } `json:"status"` Data struct { Rules string `json:"rules"` } `json:"data"` }
ChatroomRulesV2 is a response to GetChatroomRulesV2.
type ChatroomV1 ¶
type ChatroomV1 struct { ID int `json:"id"` UserID int `json:"user_id"` Slug string `json:"slug"` IsBanned bool `json:"is_banned"` PlaybackURL string `json:"playback_url"` NameUpdatedAt any `json:"name_updated_at"` VodEnabled bool `json:"vod_enabled"` SubscriptionEnabled bool `json:"subscription_enabled"` Role any `json:"role"` FollowerBadges []any `json:"follower_badges"` MutedUsers []any `json:"muted_users"` CanHost bool `json:"can_host"` Chatroom ChatroomV1Short `json:"chatroom"` Emotes []EmoteV1 `json:"emotes"` }
ChatroomV1 is the full representation of a chat room in API v1.
type ChatroomV1Short ¶
type ChatroomV1Short struct { ID uint64 `json:"id"` ChatableType string `json:"chatable_type"` ChannelID uint64 `json:"channel_id"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` ChatModeOld string `json:"chat_mode_old"` ChatMode string `json:"chat_mode"` SlowMode bool `json:"slow_mode"` ChatableID uint64 `json:"chatable_id"` FollowersMode bool `json:"followers_mode"` SubscribersMode bool `json:"subscribers_mode"` EmotesMode bool `json:"emotes_mode"` MessageInterval uint64 `json:"message_interval"` FollowingMinDuration uint64 `json:"following_min_duration"` }
ChatroomV1Short is a representation of the chat room essentials in API v1.
type ChatroomV2 ¶
type ChatroomV2 struct { ID int `json:"id"` SlowMode struct { Enabled bool `json:"enabled"` MessageInterval int `json:"message_interval"` } `json:"slow_mode"` SubscribersMode struct { Enabled bool `json:"enabled"` } `json:"subscribers_mode"` FollowersMode struct { Enabled bool `json:"enabled"` MinDuration int `json:"min_duration"` } `json:"followers_mode"` EmotesMode struct { Enabled bool `json:"enabled"` } `json:"emotes_mode"` AdvancedBotProtection struct { Enabled bool `json:"enabled"` RemainingTime int `json:"remaining_time"` } `json:"advanced_bot_protection"` PinnedMessage interface{} `json:"pinned_message"` ShowQuickEmotes struct { Enabled bool `json:"enabled"` } `json:"show_quick_emotes"` ShowBanners struct { Enabled bool `json:"enabled"` } `json:"show_banners"` GiftsEnabled struct { Enabled bool `json:"enabled"` } `json:"gifts_enabled"` GiftsWeekEnabled struct { Enabled bool `json:"enabled"` } `json:"gifts_week_enabled"` GiftsMonthEnabled struct { Enabled bool `json:"enabled"` } `json:"gifts_month_enabled"` }
ChatroomV2 contains the information about the chat room as it is provided by API v2.
type DeleteChatMessageReply ¶
type DeleteChatMessageReply struct{}
DeleteChatMessageReply is a response to a request to delete a chat message.
type EmoteV1 ¶
type EmoteV1 struct { ID int `json:"id"` ChannelID int `json:"channel_id"` Name string `json:"name"` SubscribersOnly bool `json:"subscribers_only"` Image any `json:"image"` }
EmoteV1 is a representation of an emote in API v1.
type IdentityV2 ¶
IdentityV2 is a representation of a user's identity (in the chat?) in API v2.
type Kick ¶
Kick is a client to Kick.com API.
func (*Kick) GetChannelV1 ¶
GetChannelV1 returns channel information given channel slug using API v1.
func (*Kick) GetChatMessagesV2 ¶
func (k *Kick) GetChatMessagesV2( ctx context.Context, channelID uint64, cursor uint64, ) (*ChatMessagesV2Reply, error)
GetChatMessagesV2 requests a list of messages from the channel using API v2.
func (*Kick) GetChatroomRulesV2 ¶
func (k *Kick) GetChatroomRulesV2( ctx context.Context, channelSlug string, ) (*ChatroomRulesV2, error)
GetChatroomRulesV2 returns the rules of the chat. The function is not tested.
func (*Kick) GetChatroomV1 ¶
GetChatroomV1 returns the information about the chat root using API v1. For more details see the fields of ChatroomV1. The function is not tested.
func (*Kick) GetChatroomV2 ¶
GetChatroomV2 returns the information about the chat room using API v2. For more details see the fields of ChatroomV2. The function is not tested.
func (*Kick) GetLivestreamV2 ¶
func (k *Kick) GetLivestreamV2( ctx context.Context, channelSlug string, ) (*LivestreamV2Reply, error)
GetLivestreamV2 returns the information about the current live stream using API v2.
func (*Kick) GetSubcategoriesV1 ¶
func (k *Kick) GetSubcategoriesV1( ctx context.Context, ) (*CategoriesV1Reply, error)
GetCategoriesV1 returns the list of available categories.
func (*Kick) TBDDeleteChatMessage ¶
func (k *Kick) TBDDeleteChatMessage( ctx context.Context, chatRoomID uint64, messageID uint64, ) (*DeleteChatMessageReply, error)
TBDDeleteChatMessage is a To-Be-Developed (TBD) function to delete a chat message. DO NOT USE THIS FUNCTION.
type KickTokenProviderReply ¶
type KickTokenProviderReply struct { Enabled bool `json:"enabled"` NameFieldName string `json:"nameFieldName"` UnrandomizedNameFieldName string `json:"unrandomizedNameFieldName"` ValidFromFieldName string `json:"validFromFieldName"` EncryptedValidFrom string `json:"encryptedValidFrom"` }
KickTokenProviderReply is a reply to a token request.
type LinkV1 ¶
type LinkV1 struct { ID uint64 `json:"id"` ChannelID uint64 `json:"channel_id"` Description string `json:"description"` Link string `json:"link"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` Order uint64 `json:"order"` Title string `json:"title"` }
LinkV1 is a representation of a link in API v1.
type LivestreamV1 ¶
type LivestreamV1 struct { ID uint64 `json:"id"` Slug string `json:"slug"` ChannelID uint64 `json:"channel_id"` CreatedAt string `json:"created_at"` SessionTitle string `json:"session_title"` IsLive bool `json:"is_live"` RiskLevelID any `json:"risk_level_id"` StartTime string `json:"start_time"` Source any `json:"source"` TwitchChannel any `json:"twitch_channel"` Duration uint64 `json:"duration"` Language string `json:"language"` IsMature bool `json:"is_mature"` ViewerCount uint64 `json:"viewer_count"` Thumbnail struct { Src string `json:"src"` Srcset string `json:"srcset"` } `json:"thumbnail"` Views uint64 `json:"views"` Tags []any `json:"tags"` Categories []CategoryV1 `json:"categories"` Video VideoV1 `json:"video"` }
LivestreamV1 is a representation of a live stream in API v1.
type LivestreamV2 ¶
type LivestreamV2 struct { ID int `json:"id"` Slug string `json:"slug"` SessionTitle string `json:"session_title"` CreatedAt time.Time `json:"created_at"` Language string `json:"language"` IsMature bool `json:"is_mature"` Viewers int `json:"viewers"` Category CategoryV2 `json:"category"` PlaybackURL string `json:"playback_url"` Thumbnail struct { Src string `json:"src"` Srcset string `json:"srcset"` } `json:"thumbnail"` }
LivestreamV2 represents a live stream in API v2.
type LivestreamV2Reply ¶
type LivestreamV2Reply struct {
Data *LivestreamV2 `json:"data"`
}
LivestreamV2Reply is the response provided by GetLivestreamV2
type MediaAssetV1 ¶
type MediaAssetV1 struct { ID uint64 `json:"id"` ModelType string `json:"model_type"` ModelID uint64 `json:"model_id"` CollectionName string `json:"collection_name"` Name string `json:"name"` FileName string `json:"file_name"` MimeType string `json:"mime_type"` Disk string `json:"disk"` Size uint64 `json:"size"` Manipulations []any `json:"manipulations"` CustomProperties struct { GeneratedConversions struct { Fullsize bool `json:"fullsize"` } `json:"generated_conversions"` } `json:"custom_properties"` /*ResponsiveImages struct { Fullsize struct { Urls []string `json:"urls"` Base64Svg string `json:"base64svg"` } `json:"fullsize"` } `json:"responsive_images"`*/ OrderColumn uint64 `json:"order_column"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` UUID string `json:"uuid"` ConversionsDisk string `json:"conversions_disk"` }
MediaAssetV1 is a representation of a media asset in API v1.
type MobileLoginReply ¶
type MobileLoginReply struct {
TwoFARequired bool `json:"2fa_required"`
}
MobileLoginReply is a reply to mobile logging in request.
type MobileLoginRequest ¶
type MobileLoginRequest struct { Email string `json:"email"` Password string `json:"password"` OneTimePassword string `json:"one_time_password"` KickTokenX string `json:"_kick_token_xxxxxxxxxx"` // ? KickTokenValidFrom string `json:"_kick_token_valid_from"` IsMobileRequest bool `json:"isMobileRequest"` }
MobileLoginRequest is a request for mobile logging in.
type SubscriberBadgeV1 ¶
type SubscriberBadgeV1 struct { ID uint64 `json:"id"` ChannelID uint64 `json:"channel_id"` Months uint64 `json:"months"` BadgeImage ImageV1 `json:"badge_image"` }
SubscriberBadgeV1 is a representation of a subscriber badge in API v1.
type UserV1 ¶
type UserV1 struct { ID uint64 `json:"id"` Username string `json:"username"` AgreedToTerms bool `json:"agreed_to_terms"` EmailVerifiedAt time.Time `json:"email_verified_at"` Bio string `json:"bio"` Country string `json:"country"` State string `json:"state"` City string `json:"city"` Instagram string `json:"instagram"` Twitter string `json:"twitter"` Youtube string `json:"youtube"` Discord string `json:"discord"` Tiktok string `json:"tiktok"` Facebook string `json:"facebook"` ProfilePic string `json:"profile_pic"` }
UserV1 is a representation of an user in API v1.
type VideoV1 ¶
type VideoV1 struct { ID uint64 `json:"id"` LiveStreamID uint64 `json:"live_stream_id"` Slug any `json:"slug"` Thumb any `json:"thumb"` S3 any `json:"s3"` TradingPlatformID any `json:"trading_platform_id"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` UUID string `json:"uuid"` Views uint64 `json:"views"` DeletedAt any `json:"deleted_at"` }
VideoV1 is a representation of a VOD in API v1.
Source Files
¶
- badge_v2.go
- banner_image_v1.go
- category_v1.go
- category_v2.go
- channel_v1.go
- chat_message_v2.go
- chatroom_rules_v2.go
- chatroom_v1.go
- chatroom_v2.go
- emote_v1.go
- identity_v2.go
- image_v1.go
- kick.go
- link_v1.go
- livestream_v1.go
- livestream_v2.go
- login.go
- media_asset_v1.go
- resources.go
- routes.go
- subscriber_badge_v1.go
- swagger_docs.go
- user_v1.go
- utils.go
- video_v1.go