2023-12-15 22:44:25 +01:00
|
|
|
# (c) 2023-present Eroax
|
|
|
|
# (c) 2023-present Yagich
|
|
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
extends ConfirmationDialog
|
|
|
|
class_name TwitchSetupDialog
|
|
|
|
|
|
|
|
func _ready():
|
|
|
|
|
|
|
|
%Authenticate.pressed.connect(authenticate_twitch)
|
2023-12-16 12:23:17 +01:00
|
|
|
%CopyURLButton.pressed.connect(copy_auth_link)
|
2024-01-15 06:35:16 +01:00
|
|
|
#confirmed.connect(connect_to_chat)
|
|
|
|
%Join_Chat.pressed.connect(connect_to_chat)
|
2023-12-15 22:44:25 +01:00
|
|
|
|
|
|
|
func authenticate_twitch():
|
|
|
|
|
2024-01-15 06:35:16 +01:00
|
|
|
# Temporary setup for loading credentials
|
|
|
|
var loaded_creds = Connections.load_credentials("twitch")
|
|
|
|
|
|
|
|
if loaded_creds != null:
|
|
|
|
|
|
|
|
Connections.twitch.token = loaded_creds.data.token
|
|
|
|
if loaded_creds.data.has("channel"):
|
|
|
|
%Default_Chat.text = loaded_creds.data.channel
|
|
|
|
connect_to_chat()
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
# Temporary setup for saving tokens.
|
|
|
|
Connections.twitch.token_received.connect(func(token):
|
|
|
|
|
|
|
|
Connections.save_credentials({"token" : token}, "twitch")
|
|
|
|
)
|
|
|
|
|
2023-12-16 12:23:17 +01:00
|
|
|
var url = Connections.twitch.authenticate_with_twitch(%Client_ID.text)
|
|
|
|
OS.shell_open(url)
|
|
|
|
|
|
|
|
|
|
|
|
func copy_auth_link():
|
|
|
|
var url = Connections.twitch.authenticate_with_twitch(%Client_ID.text)
|
|
|
|
DisplayServer.clipboard_set(url)
|
|
|
|
|
2023-12-15 22:44:25 +01:00
|
|
|
|
|
|
|
func connect_to_chat():
|
|
|
|
|
2024-01-22 06:51:48 +01:00
|
|
|
if !Connections.twitch.get("chat_socket") or Connections.twitch.chat_socket.get_ready_state() != WebSocketPeer.STATE_OPEN:
|
2024-01-15 06:35:16 +01:00
|
|
|
Connections.twitch.setup_chat_connection(%Default_Chat.text)
|
|
|
|
|
2023-12-15 22:44:25 +01:00
|
|
|
|
2024-01-15 06:35:16 +01:00
|
|
|
Connections.twitch.join_channel(%Default_Chat.text)
|