217 lines
7.2 KiB
GDScript3
217 lines
7.2 KiB
GDScript3
|
|
@tool
|
|||
|
|
extends TwitchData
|
|||
|
|
|
|||
|
|
# CLASS GOT AUTOGENERATED DON'T CHANGE MANUALLY. CHANGES CAN BE OVERWRITTEN EASILY.
|
|||
|
|
|
|||
|
|
class_name TwitchGetChannelFollowers
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
##
|
|||
|
|
## #/components/schemas/GetChannelFollowersResponse
|
|||
|
|
class Response extends TwitchData:
|
|||
|
|
|
|||
|
|
## The list of users that follow the specified broadcaster. The list is in descending order by `followed_at` (with the most recent follower first). The list is empty if nobody follows the broadcaster, the specified `user_id` isn’t in the follower list, the user access token is missing the **moderator:read:followers** scope, or the user isn’t the broadcaster or moderator for the channel.
|
|||
|
|
@export var data: Array[ResponseData]:
|
|||
|
|
set(val):
|
|||
|
|
data = val
|
|||
|
|
track_data(&"data", val)
|
|||
|
|
|
|||
|
|
## Contains the information used to page through the list of results. The object is empty if there are no more pages left to page through. [Read more](https://dev.twitch.tv/docs/api/guide#pagination).
|
|||
|
|
@export var pagination: ResponsePagination:
|
|||
|
|
set(val):
|
|||
|
|
pagination = val
|
|||
|
|
track_data(&"pagination", val)
|
|||
|
|
|
|||
|
|
## The total number of users that follow this broadcaster. As someone pages through the list, the number of users may change as users follow or unfollow the broadcaster.
|
|||
|
|
@export var total: int:
|
|||
|
|
set(val):
|
|||
|
|
total = val
|
|||
|
|
track_data(&"total", val)
|
|||
|
|
var response: BufferedHTTPClient.ResponseData
|
|||
|
|
|
|||
|
|
|
|||
|
|
## Constructor with all required fields.
|
|||
|
|
static func create(_data: Array[ResponseData], _total: int) -> Response:
|
|||
|
|
var response: Response = Response.new()
|
|||
|
|
response.data = _data
|
|||
|
|
response.total = _total
|
|||
|
|
return response
|
|||
|
|
|
|||
|
|
|
|||
|
|
static func from_json(d: Dictionary) -> Response:
|
|||
|
|
var result: Response = Response.new()
|
|||
|
|
if d.get("data", null) != null:
|
|||
|
|
for value in d["data"]:
|
|||
|
|
result.data.append(ResponseData.from_json(value))
|
|||
|
|
if d.get("pagination", null) != null:
|
|||
|
|
result.pagination = ResponsePagination.from_json(d["pagination"])
|
|||
|
|
if d.get("total", null) != null:
|
|||
|
|
result.total = d["total"]
|
|||
|
|
return result
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
func _has_pagination() -> bool:
|
|||
|
|
if pagination == null: return false
|
|||
|
|
if pagination.cursor == null || pagination.cursor == "": return false
|
|||
|
|
return true
|
|||
|
|
|
|||
|
|
var _next_page: Callable
|
|||
|
|
var _cur_iter: int = 0
|
|||
|
|
|
|||
|
|
|
|||
|
|
func next_page() -> Response:
|
|||
|
|
var response: Response = await _next_page.call()
|
|||
|
|
_cur_iter = 0
|
|||
|
|
_next_page = response._next_page
|
|||
|
|
data = response.data
|
|||
|
|
pagination = response.pagination
|
|||
|
|
total = response.total
|
|||
|
|
|
|||
|
|
return response
|
|||
|
|
|
|||
|
|
|
|||
|
|
func _iter_init(iter: Array) -> bool:
|
|||
|
|
if data.is_empty(): return false
|
|||
|
|
iter[0] = data[0]
|
|||
|
|
return data.size() > 0
|
|||
|
|
|
|||
|
|
|
|||
|
|
func _iter_next(iter: Array) -> bool:
|
|||
|
|
if data.size() - 1 > _cur_iter:
|
|||
|
|
_cur_iter += 1
|
|||
|
|
iter[0] = data[_cur_iter]
|
|||
|
|
if data.size() - 1 == _cur_iter && not _has_pagination():
|
|||
|
|
return false
|
|||
|
|
return true
|
|||
|
|
|
|||
|
|
|
|||
|
|
func _iter_get(iter: Variant) -> Variant:
|
|||
|
|
if data.size() - 1 == _cur_iter && _has_pagination():
|
|||
|
|
await next_page()
|
|||
|
|
return iter
|
|||
|
|
|
|||
|
|
|
|||
|
|
## The list of users that follow the specified broadcaster. The list is in descending order by `followed_at` (with the most recent follower first). The list is empty if nobody follows the broadcaster, the specified `user_id` isn’t in the follower list, the user access token is missing the **moderator:read:followers** scope, or the user isn’t the broadcaster or moderator for the channel.
|
|||
|
|
## #/components/schemas/GetChannelFollowersResponse/Data
|
|||
|
|
class ResponseData extends TwitchData:
|
|||
|
|
|
|||
|
|
## The UTC timestamp when the user started following the broadcaster.
|
|||
|
|
@export var followed_at: String:
|
|||
|
|
set(val):
|
|||
|
|
followed_at = val
|
|||
|
|
track_data(&"followed_at", val)
|
|||
|
|
|
|||
|
|
## An ID that uniquely identifies the user that’s following the broadcaster.
|
|||
|
|
@export var user_id: String:
|
|||
|
|
set(val):
|
|||
|
|
user_id = val
|
|||
|
|
track_data(&"user_id", val)
|
|||
|
|
|
|||
|
|
## The user’s login name.
|
|||
|
|
@export var user_login: String:
|
|||
|
|
set(val):
|
|||
|
|
user_login = val
|
|||
|
|
track_data(&"user_login", val)
|
|||
|
|
|
|||
|
|
## The user’s display name.
|
|||
|
|
@export var user_name: String:
|
|||
|
|
set(val):
|
|||
|
|
user_name = val
|
|||
|
|
track_data(&"user_name", val)
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## Constructor with all required fields.
|
|||
|
|
static func create(_followed_at: String, _user_id: String, _user_login: String, _user_name: String) -> ResponseData:
|
|||
|
|
var response_data: ResponseData = ResponseData.new()
|
|||
|
|
response_data.followed_at = _followed_at
|
|||
|
|
response_data.user_id = _user_id
|
|||
|
|
response_data.user_login = _user_login
|
|||
|
|
response_data.user_name = _user_name
|
|||
|
|
return response_data
|
|||
|
|
|
|||
|
|
|
|||
|
|
static func from_json(d: Dictionary) -> ResponseData:
|
|||
|
|
var result: ResponseData = ResponseData.new()
|
|||
|
|
if d.get("followed_at", null) != null:
|
|||
|
|
result.followed_at = d["followed_at"]
|
|||
|
|
if d.get("user_id", null) != null:
|
|||
|
|
result.user_id = d["user_id"]
|
|||
|
|
if d.get("user_login", null) != null:
|
|||
|
|
result.user_login = d["user_login"]
|
|||
|
|
if d.get("user_name", null) != null:
|
|||
|
|
result.user_name = d["user_name"]
|
|||
|
|
return result
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## Contains the information used to page through the list of results. The object is empty if there are no more pages left to page through. [Read more](https://dev.twitch.tv/docs/api/guide#pagination).
|
|||
|
|
## #/components/schemas/GetChannelFollowersResponse/Pagination
|
|||
|
|
class ResponsePagination extends TwitchData:
|
|||
|
|
|
|||
|
|
## The cursor used to get the next page of results. Use the cursor to set the request’s _after_ query parameter.
|
|||
|
|
@export var cursor: String:
|
|||
|
|
set(val):
|
|||
|
|
cursor = val
|
|||
|
|
track_data(&"cursor", val)
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## Constructor with all required fields.
|
|||
|
|
static func create() -> ResponsePagination:
|
|||
|
|
var response_pagination: ResponsePagination = ResponsePagination.new()
|
|||
|
|
return response_pagination
|
|||
|
|
|
|||
|
|
|
|||
|
|
static func from_json(d: Dictionary) -> ResponsePagination:
|
|||
|
|
var result: ResponsePagination = ResponsePagination.new()
|
|||
|
|
if d.get("cursor", null) != null:
|
|||
|
|
result.cursor = d["cursor"]
|
|||
|
|
return result
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## All optional parameters for TwitchAPI.get_channel_followers
|
|||
|
|
## #/components/schemas/GetChannelFollowersOpt
|
|||
|
|
class Opt extends TwitchData:
|
|||
|
|
|
|||
|
|
## A user’s ID. Use this parameter to see whether the user follows this broadcaster. If specified, the response contains this user if they follow the broadcaster. If not specified, the response contains all users that follow the broadcaster.
|
|||
|
|
##
|
|||
|
|
## Using this parameter requires both a user access token with the **moderator:read:followers** scope and the user ID in the access token match the broadcaster\_id or be the user ID for a moderator of the specified broadcaster.
|
|||
|
|
@export var user_id: String:
|
|||
|
|
set(val):
|
|||
|
|
user_id = val
|
|||
|
|
track_data(&"user_id", val)
|
|||
|
|
|
|||
|
|
## The maximum number of items to return per page in the response. The minimum page size is 1 item per page and the maximum is 100\. The default is 20.
|
|||
|
|
@export var first: int:
|
|||
|
|
set(val):
|
|||
|
|
first = val
|
|||
|
|
track_data(&"first", val)
|
|||
|
|
|
|||
|
|
## The cursor used to get the next page of results. The **Pagination** object in the response contains the cursor’s value. [Read more](https://dev.twitch.tv/docs/api/guide#pagination).
|
|||
|
|
@export var after: String:
|
|||
|
|
set(val):
|
|||
|
|
after = val
|
|||
|
|
track_data(&"after", val)
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## Constructor with all required fields.
|
|||
|
|
static func create() -> Opt:
|
|||
|
|
var opt: Opt = Opt.new()
|
|||
|
|
return opt
|
|||
|
|
|
|||
|
|
|
|||
|
|
static func from_json(d: Dictionary) -> Opt:
|
|||
|
|
var result: Opt = Opt.new()
|
|||
|
|
if d.get("user_id", null) != null:
|
|||
|
|
result.user_id = d["user_id"]
|
|||
|
|
if d.get("first", null) != null:
|
|||
|
|
result.first = d["first"]
|
|||
|
|
if d.get("after", null) != null:
|
|||
|
|
result.after = d["after"]
|
|||
|
|
return result
|
|||
|
|
|