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

271 lines
No EOL
8.6 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 TwitchGetChannelStreamSchedule
##
## #/components/schemas/GetChannelStreamScheduleResponse
class Response extends TwitchData:
## The broadcasters streaming schedule.
@export var data: ResponseData:
set(val):
data = val
track_data(&"data", val)
var response: BufferedHTTPClient.ResponseData
## Constructor with all required fields.
static func create(_data: ResponseData) -> 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:
result.data = ResponseData.from_json(d["data"])
return result
## The broadcasters streaming schedule.
## #/components/schemas/GetChannelStreamScheduleResponse/Data
class ResponseData extends TwitchData:
## The list of broadcasts in the broadcasters streaming schedule.
@export var segments: Array[TwitchChannelStreamScheduleSegment]:
set(val):
segments = val
track_data(&"segments", val)
## The ID of the broadcaster that owns the broadcast schedule.
@export var broadcaster_id: String:
set(val):
broadcaster_id = val
track_data(&"broadcaster_id", val)
## The broadcasters display name.
@export var broadcaster_name: String:
set(val):
broadcaster_name = val
track_data(&"broadcaster_name", val)
## The broadcasters login name.
@export var broadcaster_login: String:
set(val):
broadcaster_login = val
track_data(&"broadcaster_login", val)
## The dates when the broadcaster is on vacation and not streaming. Is set to **null** if vacation mode is not enabled.
@export var vacation: ResponseVacation:
set(val):
vacation = val
track_data(&"vacation", val)
## The information used to page through a 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)
## Constructor with all required fields.
static func create(_segments: Array[TwitchChannelStreamScheduleSegment], _broadcaster_id: String, _broadcaster_name: String, _broadcaster_login: String, _vacation: ResponseVacation) -> ResponseData:
var response_data: ResponseData = ResponseData.new()
response_data.segments = _segments
response_data.broadcaster_id = _broadcaster_id
response_data.broadcaster_name = _broadcaster_name
response_data.broadcaster_login = _broadcaster_login
response_data.vacation = _vacation
return response_data
static func from_json(d: Dictionary) -> ResponseData:
var result: ResponseData = ResponseData.new()
if d.get("segments", null) != null:
for value in d["segments"]:
result.segments.append(TwitchChannelStreamScheduleSegment.from_json(value))
if d.get("broadcaster_id", null) != null:
result.broadcaster_id = d["broadcaster_id"]
if d.get("broadcaster_name", null) != null:
result.broadcaster_name = d["broadcaster_name"]
if d.get("broadcaster_login", null) != null:
result.broadcaster_login = d["broadcaster_login"]
if d.get("vacation", null) != null:
result.vacation = ResponseVacation.from_json(d["vacation"])
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.data._next_page
segments = response.data.segments
broadcaster_id = response.data.broadcaster_id
broadcaster_name = response.data.broadcaster_name
broadcaster_login = response.data.broadcaster_login
vacation = response.data.vacation
pagination = response.data.pagination
return response
func _iter_init(iter: Array) -> bool:
if segments.is_empty(): return false
iter[0] = segments[0]
return segments.size() > 0
func _iter_next(iter: Array) -> bool:
if segments.size() - 1 > _cur_iter:
_cur_iter += 1
iter[0] = segments[_cur_iter]
if segments.size() - 1 == _cur_iter && not _has_pagination():
return false
return true
func _iter_get(iter: Variant) -> Variant:
if segments.size() - 1 == _cur_iter && _has_pagination():
await next_page()
return iter
## The dates when the broadcaster is on vacation and not streaming. Is set to **null** if vacation mode is not enabled.
## #/components/schemas/GetChannelStreamScheduleResponse/Data/Vacation
class ResponseVacation extends TwitchData:
## The UTC date and time (in RFC3339 format) of when the broadcasters vacation starts.
@export var start_time: String:
set(val):
start_time = val
track_data(&"start_time", val)
## The UTC date and time (in RFC3339 format) of when the broadcasters vacation ends.
@export var end_time: String:
set(val):
end_time = val
track_data(&"end_time", val)
## Constructor with all required fields.
static func create(_start_time: String, _end_time: String) -> ResponseVacation:
var response_vacation: ResponseVacation = ResponseVacation.new()
response_vacation.start_time = _start_time
response_vacation.end_time = _end_time
return response_vacation
static func from_json(d: Dictionary) -> ResponseVacation:
var result: ResponseVacation = ResponseVacation.new()
if d.get("start_time", null) != null:
result.start_time = d["start_time"]
if d.get("end_time", null) != null:
result.end_time = d["end_time"]
return result
## The information used to page through a 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/GetChannelStreamScheduleResponse/Data/Pagination
class ResponsePagination extends TwitchData:
## The cursor used to get the next page of results. Set the requests _after_ query parameter to this value.
@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_stream_schedule
## #/components/schemas/GetChannelStreamScheduleOpt
class Opt extends TwitchData:
## The ID of the scheduled segment to return. To specify more than one segment, include the ID of each segment you want to get. For example, `id=1234&id=5678`. You may specify a maximum of 100 IDs.
@export var id: Array[String]:
set(val):
id = val
track_data(&"id", val)
## The UTC date and time that identifies when in the broadcasters schedule to start returning segments. If not specified, the request returns segments starting after the current UTC date and time. Specify the date and time in RFC3339 format (for example, `2022-09-01T00:00:00Z`).
@export var start_time: String:
set(val):
start_time = val
track_data(&"start_time", val)
## Not supported.
@export var utc_offset: String:
set(val):
utc_offset = val
track_data(&"utc_offset", 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 25 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 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("id", null) != null:
for value in d["id"]:
result.id.append(value)
if d.get("start_time", null) != null:
result.start_time = d["start_time"]
if d.get("utc_offset", null) != null:
result.utc_offset = d["utc_offset"]
if d.get("first", null) != null:
result.first = d["first"]
if d.get("after", null) != null:
result.after = d["after"]
return result