You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
2.4 KiB
117 lines
2.4 KiB
extends Control
|
|
|
|
|
|
# Allow streamers to define their twitch credentials.
|
|
# Since this config is sensitive, should it be encrypted?
|
|
#
|
|
# Generate application
|
|
# https://dev.twitch.tv/console/apps/create
|
|
#
|
|
# Get OAuth Token
|
|
# https://twitchapps.com/tmi/
|
|
|
|
|
|
var config := {
|
|
'nick': '', # whatever you want
|
|
'channel': '', # twitch identifier, usually lowercase
|
|
'client': '', # Identifies the application registered on twitch
|
|
'oauth': '', # https://twitchapps.com/tmi/
|
|
}
|
|
|
|
|
|
const TWITCH_OAUTH_FILE_PATH = "user://twitch_chat_auth_config.json"
|
|
|
|
|
|
onready var OAuthEdit = find_node("OAuthLineEdit")
|
|
onready var NickEdit = find_node("NickLineEdit")
|
|
onready var ClientIdEdit = find_node("ClientIdLineEdit")
|
|
onready var ChannelEdit = find_node("ChannelLineEdit")
|
|
|
|
|
|
func _ready():
|
|
read_from_file()
|
|
write_to_ui()
|
|
|
|
|
|
# _____ _ _
|
|
# | ___(_) | ___
|
|
# | |_ | | |/ _ \
|
|
# | _| | | | __/
|
|
# |_| |_|_|\___|
|
|
#
|
|
|
|
|
|
func read_from_file():
|
|
var file = File.new()
|
|
if not file.file_exists(TWITCH_OAUTH_FILE_PATH):
|
|
return Dictionary()
|
|
|
|
file.open(TWITCH_OAUTH_FILE_PATH, File.READ)
|
|
|
|
var json = file.get_as_text()
|
|
var dson = JSON.parse(json)
|
|
|
|
if dson.error:
|
|
printerr("Auth config file exists but is confusing me.")
|
|
return null
|
|
|
|
self.config = dson.result
|
|
file.close()
|
|
|
|
return self.config
|
|
|
|
|
|
func write_to_file():
|
|
var file = File.new()
|
|
file.open(TWITCH_OAUTH_FILE_PATH, File.WRITE)
|
|
file.store_string(JSON.print(self.config, ' '))
|
|
file.close()
|
|
|
|
|
|
# _ _ ___
|
|
# | | | |_ _|
|
|
# | | | || |
|
|
# | |_| || |
|
|
# \___/|___|
|
|
#
|
|
|
|
|
|
func read_from_ui():
|
|
self.config['oauth'] = OAuthEdit.text
|
|
self.config['nick'] = NickEdit.text
|
|
self.config['channel'] = ChannelEdit.text
|
|
self.config['client'] = ClientIdEdit.text
|
|
|
|
|
|
func write_to_ui():
|
|
OAuthEdit.text = self.config['oauth']
|
|
NickEdit.text = self.config['nick']
|
|
ChannelEdit.text = self.config['channel']
|
|
ClientIdEdit.text = self.config['client']
|
|
|
|
|
|
# _____ _
|
|
# | ____|_ _____ _ __ | |_ ___
|
|
# | _| \ \ / / _ \ '_ \| __/ __|
|
|
# | |___ \ V / __/ | | | |_\__ \
|
|
# |_____| \_/ \___|_| |_|\__|___/
|
|
#
|
|
|
|
|
|
func _on_SaveButton_pressed():
|
|
read_from_ui()
|
|
write_to_file()
|
|
App.go_to_main_menu()
|
|
|
|
|
|
func _on_CancelButton_pressed():
|
|
App.go_to_main_menu()
|
|
|
|
|
|
func _on_ClientIdHelpButton_pressed():
|
|
var _done = OS.shell_open("https://dev.twitch.tv/dashboard/apps/create")
|
|
|
|
|
|
func _on_OAuthHelpButton_pressed():
|
|
var _done = OS.shell_open("https://twitchapps.com/tmi/")
|