202 lines
No EOL
6.8 KiB
GDScript
202 lines
No EOL
6.8 KiB
GDScript
@tool
|
||
extends TwitchData
|
||
|
||
# CLASS GOT AUTOGENERATED DON'T CHANGE MANUALLY. CHANGES CAN BE OVERWRITTEN EASILY.
|
||
|
||
class_name TwitchGetStreams
|
||
|
||
|
||
|
||
##
|
||
## #/components/schemas/GetStreamsResponse
|
||
class Response extends TwitchData:
|
||
|
||
## The list of streams.
|
||
@export var data: Array[TwitchStream]:
|
||
set(val):
|
||
data = val
|
||
track_data(&"data", val)
|
||
|
||
## 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)
|
||
var response: BufferedHTTPClient.ResponseData
|
||
|
||
|
||
## Constructor with all required fields.
|
||
static func create(_data: Array[TwitchStream]) -> Response:
|
||
var response: Response = Response.new()
|
||
response.data = _data
|
||
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(TwitchStream.from_json(value))
|
||
if d.get("pagination", null) != null:
|
||
result.pagination = ResponsePagination.from_json(d["pagination"])
|
||
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
|
||
|
||
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 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/GetStreamsResponse/Pagination
|
||
class ResponsePagination extends TwitchData:
|
||
|
||
## The cursor used to get the next page of results. Set the request’s _after_ or _before_ query parameter to this value depending on whether you’re paging forwards or backwards.
|
||
@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_streams
|
||
## #/components/schemas/GetStreamsOpt
|
||
class Opt extends TwitchData:
|
||
|
||
## A user ID used to filter the list of streams. Returns only the streams of those users that are broadcasting. You may specify a maximum of 100 IDs. To specify multiple IDs, include the _user\_id_ parameter for each user. For example, `&user_id=1234&user_id=5678`.
|
||
@export var user_id: Array[String]:
|
||
set(val):
|
||
user_id = val
|
||
track_data(&"user_id", val)
|
||
|
||
## A user login name used to filter the list of streams. Returns only the streams of those users that are broadcasting. You may specify a maximum of 100 login names. To specify multiple names, include the _user\_login_ parameter for each user. For example, `&user_login=foo&user_login=bar`.
|
||
@export var user_login: Array[String]:
|
||
set(val):
|
||
user_login = val
|
||
track_data(&"user_login", val)
|
||
|
||
## A game (category) ID used to filter the list of streams. Returns only the streams that are broadcasting the game (category). You may specify a maximum of 100 IDs. To specify multiple IDs, include the _game\_id_ parameter for each game. For example, `&game_id=9876&game_id=5432`.
|
||
@export var game_id: Array[String]:
|
||
set(val):
|
||
game_id = val
|
||
track_data(&"game_id", val)
|
||
|
||
## The type of stream to filter the list of streams by. Possible values are:
|
||
##
|
||
## * all
|
||
## * live
|
||
##
|
||
## The default is _all_.
|
||
@export var type: String:
|
||
set(val):
|
||
type = val
|
||
track_data(&"type", val)
|
||
|
||
## A language code used to filter the list of streams. Returns only streams that broadcast in the specified language. Specify the language using an ISO 639-1 two-letter language code or _other_ if the broadcast uses a language not in the list of [supported stream languages](https://help.twitch.tv/s/article/languages-on-twitch#streamlang).
|
||
##
|
||
## You may specify a maximum of 100 language codes. To specify multiple languages, include the _language_ parameter for each language. For example, `&language=de&language=fr`.
|
||
@export var language: Array[String]:
|
||
set(val):
|
||
language = val
|
||
track_data(&"language", 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 items per page. The default is 20.
|
||
@export var first: int:
|
||
set(val):
|
||
first = val
|
||
track_data(&"first", val)
|
||
|
||
## The cursor used to get the previous 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 before: String:
|
||
set(val):
|
||
before = val
|
||
track_data(&"before", 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:
|
||
for value in d["user_id"]:
|
||
result.user_id.append(value)
|
||
if d.get("user_login", null) != null:
|
||
for value in d["user_login"]:
|
||
result.user_login.append(value)
|
||
if d.get("game_id", null) != null:
|
||
for value in d["game_id"]:
|
||
result.game_id.append(value)
|
||
if d.get("type", null) != null:
|
||
result.type = d["type"]
|
||
if d.get("language", null) != null:
|
||
for value in d["language"]:
|
||
result.language.append(value)
|
||
if d.get("first", null) != null:
|
||
result.first = d["first"]
|
||
if d.get("before", null) != null:
|
||
result.before = d["before"]
|
||
if d.get("after", null) != null:
|
||
result.after = d["after"]
|
||
return result
|
||
|