Initial Commit

Initial commit of Code Base.
This commit is contained in:
Mario Steele 2025-06-12 14:31:14 -05:00
parent 293b1213e1
commit c11a4ebbc2
653 changed files with 36893 additions and 1 deletions

View file

@ -0,0 +1,115 @@
@tool
extends EditorInspectorPlugin
const BufferedHttpClient = preload("res://addons/twitcher/lib/http/buffered_http_client.gd")
const EncryptionKeyProvider: CryptoKeyProvider = preload("res://addons/twitcher/lib/oOuch/default_key_provider.tres")
func _can_handle(object: Object) -> bool:
return object is OAuthSetting
func _parse_property(object: Object, type: Variant.Type, name: String, hint_type: PropertyHint, hint_string: String, usage_flags: int, wide: bool) -> bool:
if name == "well_known_url":
add_property_editor("well_known_url", WellKnownUriProperty.new())
return true
if name == "client_id":
add_property_editor("client_secret", SecretProperty.new(), true, "Client Secret")
return false
class SecretProperty extends EditorProperty:
var _line_edit: LineEdit = LineEdit.new()
func _init() -> void:
_line_edit.secret = true
_line_edit.text_submitted.connect(_on_text_changed)
_line_edit.focus_exited.connect(_on_focus_exited)
add_child(_line_edit)
add_focusable(_line_edit)
func _update_property() -> void:
var secret = get_edited_object()[get_edited_property()]
if secret == "": _line_edit.text = ""
var value_raw := Marshalls.base64_to_raw(secret)
var value_bytes := EncryptionKeyProvider.decrypt(value_raw)
_line_edit.text = value_bytes.get_string_from_utf8()
func _on_focus_exited() -> void:
_save()
func _on_text_changed(_new_text: String) -> void:
_save()
func _save() -> void:
var plain_value = _line_edit.text
if plain_value == "":
emit_changed(get_edited_property(), "")
return
var encrypted_value := EncryptionKeyProvider.encrypt(plain_value.to_utf8_buffer())
emit_changed(get_edited_property(), Marshalls.raw_to_base64(encrypted_value))
class WellKnownUriProperty extends EditorProperty:
var _url_regex = RegEx.create_from_string("((https?://)?([^:/]+))(:([0-9]+))?(/.*)?")
var _container: VBoxContainer
var _well_known_url: LineEdit
var _submit: Button
var _client: BufferedHttpClient
func _init() -> void:
_container = VBoxContainer.new()
_client = BufferedHttpClient.new()
_client.name = "OauthSettingInspectorClient"
add_child(_client)
_well_known_url = LineEdit.new()
_well_known_url.placeholder_text = "https://id.twitch.tv/oauth2/.well-known/openid-configuration"
_well_known_url.text_changed.connect(_on_text_changed)
add_focusable(_well_known_url)
_container.add_child(_well_known_url)
_submit = Button.new()
_submit.pressed.connect(_on_submit_clicked)
_submit.text = "Update URIs"
_container.add_child(_submit)
add_focusable(_submit)
add_child(_container)
func _on_text_changed(new_text: String) -> void:
emit_changed(get_edited_property(), new_text)
func _update_property() -> void:
_well_known_url.text = get_edited_object()[get_edited_property()]
func load_from_wellknown(wellknow_url: String) -> void:
var request = _client.request(wellknow_url, HTTPClient.METHOD_GET, {}, "")
var response = await _client.wait_for_request(request) as BufferedHttpClient.ResponseData
var json = JSON.parse_string(response.response_data.get_string_from_utf8())
var device_code = json.get("device_authorization_endpoint", "")
if device_code != "":
emit_changed(&"device_authorization_url", device_code)
var token_endpoint = json["token_endpoint"]
if token_endpoint != "":
emit_changed(&"token_url", token_endpoint)
var authorization_endpoint = json["authorization_endpoint"]
if authorization_endpoint != "":
emit_changed(&"authorization_url", authorization_endpoint)
func _on_submit_clicked() -> void:
_submit.disabled = true
var wellknownurl = _well_known_url.text if _well_known_url.text != "" else _well_known_url.placeholder_text
await load_from_wellknown(wellknownurl)
_submit.disabled = false