1
0
mirror of https://github.com/krateng/maloja.git synced 2023-08-10 21:12:55 +03:00

Extension now gives feedback about incorrect configuration

This commit is contained in:
Krateng 2018-12-14 19:52:31 +01:00
parent 5cedde41a1
commit 95e80833cc
4 changed files with 77 additions and 16 deletions

View File

@ -100,6 +100,17 @@ def getTrackID(artists,title):
## HTTP requests ## HTTP requests
#### ####
@route("/test")
def test_server():
apikey = request.query.get("key")
response.set_header("Access-Control-Allow-Origin","*")
if not (checkAPIkey(apikey)):
response.status = 403
return "Wrong or Missing API key"
else:
response.status = 204
return
@route("/scrobbles") @route("/scrobbles")
def get_scrobbles(): def get_scrobbles():

View File

@ -4,13 +4,15 @@
<head> <head>
<title>Wat</title> <title>Wat</title>
<script type="text/javascript" src="settings.js"></script> <script type="text/javascript" src="settings.js"></script>
<meta charset="UTF-8">
</head> </head>
<body> <body style="width:300px">
<div id="wat"> <div id="wat">
<p>Server:</p> <span id="checkmark_url"></span> <span style="line-height:20px">Server:</span><br />
<input type="text" id="serverurl" value="http://localhost:42010" /> <input style="width:270px" type="text" id="serverurl" value="http://localhost:42010" />
<p>API key:</p> <br /><br />
<input type="text" id="apikey" /> <span id="checkmark_key"></span> <span style="line-height:20px">API key:</span><br />
<input style="width:270px" type="text" id="apikey" />
</div> </div>
</body> </body>
</html> </html>

View File

@ -3,14 +3,21 @@ document.addEventListener("DOMContentLoaded",function() {
document.getElementById("serverurl").addEventListener("input",updateServer); document.getElementById("serverurl").addEventListener("input",updateServer);
document.getElementById("apikey").addEventListener("input",updateAPIKey); document.getElementById("apikey").addEventListener("input",updateAPIKey);
document.getElementById("serverurl").addEventListener("change",checkServer);
document.getElementById("apikey").addEventListener("change",checkServer);
chrome.storage.local.get({"serverurl":"http://localhost:42010"},function(result) { chrome.storage.local.get({"serverurl":"http://localhost:42010"},function(result) {
document.getElementById("serverurl").value = result["serverurl"] document.getElementById("serverurl").value = result["serverurl"]
checkServer()
}); });
chrome.storage.local.get({"apikey":"BlackPinkInYourArea"},function(result) { chrome.storage.local.get({"apikey":"BlackPinkInYourArea"},function(result) {
document.getElementById("apikey").value = result["apikey"] document.getElementById("apikey").value = result["apikey"]
checkServer()
}); });
}); });
@ -19,16 +26,52 @@ function updateServer() {
text = document.getElementById("serverurl").value text = document.getElementById("serverurl").value
if (!text.startsWith("http://") & !text.startsWith("https://")) {
document.getElementById("serverurl").style.backgroundColor = "pink"; chrome.storage.local.set({"serverurl":text})
}
else {
document.getElementById("serverurl").style.backgroundColor = "white";
chrome.storage.local.set({"serverurl":text})
}
} }
function updateAPIKey() { function updateAPIKey() {
text = document.getElementById("apikey").value text = document.getElementById("apikey").value
chrome.storage.local.set({"apikey":text}) chrome.storage.local.set({"apikey":text})
} }
function checkServer() {
url = document.getElementById("serverurl").value + "/db/test?key=" + document.getElementById("apikey").value
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = createCheckmarks;
try {
xhttp.open("GET",url,true);
xhttp.send();
}
catch (e) {
//document.getElementById("checkmark_url").innerHTML = "❌"
//document.getElementById("checkmark_key").innerHTML = "❌"
document.getElementById("serverurl").style.backgroundColor = "red"
document.getElementById("apikey").style.backgroundColor = "red"
}
}
function createCheckmarks() {
if (this.readyState == 4) {
if (this.status == 204) {
//document.getElementById("checkmark_url").innerHTML = "✔️"
//document.getElementById("checkmark_key").innerHTML = "✔️"
document.getElementById("serverurl").style.backgroundColor = "lawngreen"
document.getElementById("apikey").style.backgroundColor = "lawngreen"
}
else if (this.status == 403) {
//document.getElementById("checkmark_url").innerHTML = "✔️"
//document.getElementById("checkmark_key").innerHTML = "❌"
document.getElementById("serverurl").style.backgroundColor = "lawngreen"
document.getElementById("apikey").style.backgroundColor = "red"
}
else {
//document.getElementById("checkmark_url").innerHTML = "❌"
//document.getElementById("checkmark_key").innerHTML = "❌"
document.getElementById("serverurl").style.backgroundColor = "red"
document.getElementById("apikey").style.backgroundColor = "red"
}
}
}

View File

@ -31,11 +31,16 @@ def database_get(pth):
keystring = "?" keystring = "?"
for k in keys: for k in keys:
keystring += urllib.parse.quote(k) + "=" + urllib.parse.quote(keys[k]) + "&" keystring += urllib.parse.quote(k) + "=" + urllib.parse.quote(keys[k]) + "&"
contents = urllib.request.urlopen("http://localhost:" + str(DATABASE_PORT) + "/" + pth + keystring).read()
response.content_type = "application/json"
response.set_header("Access-Control-Allow-Origin","*") response.set_header("Access-Control-Allow-Origin","*")
#print("Returning " + "http://localhost:" + str(DATABASE_PORT) + "/" + pth) try:
return contents proxyresponse = urllib.request.urlopen("http://localhost:" + str(DATABASE_PORT) + "/" + pth + keystring)
contents = proxyresponse.read()
response.status = proxyresponse.getcode()
response.content_type = "application/json"
return contents
except HTTPError as e:
response.status = e.code
return
@post("/db/<pth:path>") @post("/db/<pth:path>")
def database_post(pth): def database_post(pth):