pokepurple/addons/twitcher/generated/twitch_get_streams.gd
Mario Steele c11a4ebbc2 Initial Commit
Initial commit of Code Base.
2025-06-12 14:31:14 -05:00

202 lines
No EOL
6.8 KiB
GDScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@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 requests _after_ or _before_ query parameter to this value depending on whether youre 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 cursors 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 cursors 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