mirror of
https://codeberg.org/StreamGraph/StreamGraph.git
synced 2024-11-13 19:49:55 +01:00
Added Handling for Invalid NoTwitch Credentials (#135)
Just a quick fix that implements handling for if your Twitch authorization is invalid by adding a new signal that gets emitted, No_Twitch.invalid_auth. Which is connected to a lambda in twitch_setup_dialog that asks for authorization and opens the browser if it's received. It's not *pretty*, but it solves the problem temporarily. Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/135 Co-authored-by: Eroax <eroaxebusiness@duck.com> Co-committed-by: Eroax <eroaxebusiness@duck.com>
This commit is contained in:
parent
5a4a62ef44
commit
8896fed2f8
2 changed files with 42 additions and 9 deletions
|
@ -7,6 +7,10 @@ class_name No_Twitch
|
||||||
|
|
||||||
signal token_received(token : String)
|
signal token_received(token : String)
|
||||||
|
|
||||||
|
signal twitch_error(error : String)
|
||||||
|
|
||||||
|
signal invalid_auth()
|
||||||
|
|
||||||
signal chat_received(chat_dict)
|
signal chat_received(chat_dict)
|
||||||
signal chat_received_rich(chat_dict)
|
signal chat_received_rich(chat_dict)
|
||||||
|
|
||||||
|
@ -43,18 +47,27 @@ func _ready():
|
||||||
|
|
||||||
## Function that handles Caching the data of the Account tied to the Connections Token
|
## Function that handles Caching the data of the Account tied to the Connections Token
|
||||||
func cache_user_data():
|
func cache_user_data():
|
||||||
|
|
||||||
if token.is_empty():
|
if token.is_empty():
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
var resp = request_user_info()
|
var resp = request_user_info()
|
||||||
resp.response_received.connect(func(data):
|
resp.response_received.connect(func(data):
|
||||||
|
|
||||||
|
# Error handling here.
|
||||||
|
if data.has("error") and not data.error.is_empty(): # If we have an error.
|
||||||
|
|
||||||
|
invalid_auth.emit()
|
||||||
|
|
||||||
|
# Return out.
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
user_info = data.data
|
user_info = data.data
|
||||||
print("User Info Cached")
|
print("User Info Cached")
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -196,7 +209,18 @@ func twitch_request(url : String, method : HTTPClient.Method = HTTPClient.METHOD
|
||||||
var resp = HTTPResponse.new(http, responses)
|
var resp = HTTPResponse.new(http, responses)
|
||||||
add_child(http)
|
add_child(http)
|
||||||
http.request(url, headers, method, body)
|
http.request(url, headers, method, body)
|
||||||
|
|
||||||
|
# Generic error signal handling to ensure the signal is emitted.
|
||||||
|
resp.response_received.connect(func(data):
|
||||||
|
# If there's no error return.
|
||||||
|
if !data.has("error") or data.error.is_empty():
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
twitch_error.emit(data.error, data.message)
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
|
|
||||||
|
@ -322,7 +346,6 @@ class HTTPResponse:
|
||||||
|
|
||||||
if info.has("error"):
|
if info.has("error"):
|
||||||
|
|
||||||
push_error("No_Twitch Twitch API Error: " + str(info))
|
|
||||||
emit_response(info, http, storage)
|
emit_response(info, http, storage)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
@ -20,13 +20,23 @@ func authenticate_twitch():
|
||||||
|
|
||||||
Connections.twitch.token = loaded_creds.data.token
|
Connections.twitch.token = loaded_creds.data.token
|
||||||
if loaded_creds.data.has("channel"):
|
if loaded_creds.data.has("channel"):
|
||||||
|
|
||||||
%Default_Chat.text = loaded_creds.data.channel
|
%Default_Chat.text = loaded_creds.data.channel
|
||||||
|
|
||||||
|
|
||||||
Connections.twitch.cache_user_data()
|
Connections.twitch.cache_user_data()
|
||||||
|
# Binds invalid auth to call No_Twitch.authenticate_with_twitch, handles if the cache of auth is invalid.
|
||||||
|
Connections.twitch.invalid_auth.connect(func():
|
||||||
|
|
||||||
|
var url = Connections.twitch.authenticate_with_twitch(%Client_ID.text)
|
||||||
|
OS.shell_open(url)
|
||||||
|
)
|
||||||
|
|
||||||
connect_to_chat()
|
connect_to_chat()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
# Temporary setup for saving tokens.
|
# Handles first authentication/invalid cached authentication.
|
||||||
Connections.twitch.token_received.connect(func(token):
|
Connections.twitch.token_received.connect(func(token):
|
||||||
|
|
||||||
Connections.save_credentials({"token" : token}, "twitch")
|
Connections.save_credentials({"token" : token}, "twitch")
|
||||||
|
|
Loading…
Reference in a new issue