the-crypt/addons/github-integration/scripts/WindowDialog.gd
2020-07-17 11:26:02 -05:00

102 lines
2.9 KiB
GDScript

# ----------------------------------------------
# ~{ GitHub Integration }~
# [Author] Nicolò "fenix" Santilio
# [github] fenix-hub/godot-engine.github-integration
# [version] 0.2.9
# [date] 09.13.2019
# -----------------------------------------------
tool
extends Control
onready var gitignore = $VBoxContainer/HBoxContainer5/gitignore
onready var privacy = $VBoxContainer/HBoxContainer3/privacy
onready var readme = $VBoxContainer/HBoxContainer4/readme
onready var license = $VBoxContainer/HBoxContainer6/license
onready var nome = $VBoxContainer/HBoxContainer/nome
onready var descrizione = $VBoxContainer/HBoxContainer2/descrizione
enum REQUESTS { REPOS = 0, GISTS = 1, END = -1 }
var requesting
var new_repo = HTTPRequest.new()
var repo_body
var LICENSES = ["afl-3.0","apache-2.0","artistic-2.0","bsl-1.0","bsd-2-clause","bsd-3-clause","bsd-3-clause-clear","cc","cc0-1.0","cc-by-4.0","cc-by-sa-4.0","wtfpl","ecl-2.0","epl-1.0","eupl-1.1",
"agpl-3.0","gpl","gpl-2.0","gpl-3.0","lgpl","lgpl-2.1","lgpl-3.0","isc","lppl-1.3c","ms-pl","mit","mpl-2.0","osl-3.0","postgresql","ofl-1.1","ncsa","unlicense","zlib"]
#var GITIGNORE = ["Haskell","Godot"]
onready var error = $VBoxContainer/error
func _ready():
call_deferred("add_child",new_repo)
new_repo.connect("request_completed",self,"request_completed")
gitignore.select(0)
license.select(0)
error.hide()
load_metadata()
func load_metadata():
for l in range(0,license.get_item_count()):
license.set_item_metadata(l,LICENSES[l])
# for g in range(0,gitignore.get_item_count()):
# gitignore.set_item_metadata(g,GITIGNORE[g])
func request_completed(result, response_code, headers, body ):
if result == 0:
match requesting:
REQUESTS.REPOS:
if response_code == 201:
hide()
get_parent().print_debug_message("created new repository...")
get_parent().UserPanel.request_repositories(get_parent().UserPanel.REQUESTS.UP_REPOS)
get_parent().loading(false)
elif response_code == 422:
error.text = "Error: "+JSON.parse(body.get_string_from_utf8()).result.errors[0].message
error.show()
REQUESTS.GISTS:
if response_code == 200:
pass
func load_body() -> Dictionary:
var priv
if privacy.get_selected_id() == 0:
priv = true
else:
priv = false
var read
if readme.pressed:
read = true
else:
read = false
var gitignor = gitignore.get_item_text(gitignore.get_selected_id())
var licens = license.get_item_metadata(license.get_selected_id())
repo_body = {
"name": nome.get_text(),
"description": descrizione.get_text(),
"private": priv,
"has_issues": true,
"has_projects": true,
"has_wiki": true,
"auto_init": read,
"gitignore_template": gitignor,
"license_template": licens
}
return repo_body
func _on_NewRepo_confirmed():
get_parent().loading(true)
error.hide()
requesting = REQUESTS.REPOS
new_repo.request("https://api.github.com/user/repos",UserData.header,false,HTTPClient.METHOD_POST,JSON.print(load_body()))