From 19c928773d16eb85329b5d330895ddce787115d0 Mon Sep 17 00:00:00 2001 From: Krateng Date: Fri, 4 Sep 2020 04:45:38 +0200 Subject: [PATCH] Improved scrobbler slightly --- scrobblers/chromium/background.js | 24 +++++++-------- scrobblers/chromium/settings.html | 4 +-- scrobblers/chromium/settings.js | 49 ++++++++++--------------------- 3 files changed, 30 insertions(+), 47 deletions(-) diff --git a/scrobblers/chromium/background.js b/scrobblers/chromium/background.js index 32d4571..11d297b 100644 --- a/scrobblers/chromium/background.js +++ b/scrobblers/chromium/background.js @@ -207,6 +207,14 @@ class Controller { } } + backlog_scrobble() { + while (this.alreadyPlayed > this.currentLength) { + this.alreadyPlayed = this.alreadyPlayed - this.currentLength + var secondsago = this.alreadyPlayed + scrobble(this.currentArtist,this.currentTitle,this.currentLength,secondsago) + } + } + @@ -216,12 +224,8 @@ class Controller { if (artist == this.currentArtist && title == this.currentTitle && !this.currentlyPlaying) { console.log("Resuming playback of " + this.currentTitle) - // Already played full song - while (this.alreadyPlayed > this.currentLength) { - this.alreadyPlayed = this.alreadyPlayed - this.currentLength - var secondsago = this.alreadyPlayed - scrobble(this.currentArtist,this.currentTitle,this.currentLength,secondsago) - } + // Already played full song? + this.backlog_scrobble() this.setUpdate() this.currentlyPlaying = true @@ -263,12 +267,8 @@ class Controller { } - // Already played full song - while (this.alreadyPlayed > this.currentLength) { - this.alreadyPlayed = this.alreadyPlayed - this.currentLength - var secondsago = this.alreadyPlayed - scrobble(this.currentArtist,this.currentTitle,this.currentLength,secondsago) - } + // Already played full song? + this.backlog_scrobble() this.currentlyPlaying = false diff --git a/scrobblers/chromium/settings.html b/scrobblers/chromium/settings.html index 6c8995b..115255c 100644 --- a/scrobblers/chromium/settings.html +++ b/scrobblers/chromium/settings.html @@ -29,10 +29,10 @@
Server:
- +

API key:
- +

Tabs: diff --git a/scrobblers/chromium/settings.js b/scrobblers/chromium/settings.js index fbbceed..8b2f8d2 100644 --- a/scrobblers/chromium/settings.js +++ b/scrobblers/chromium/settings.js @@ -1,7 +1,10 @@ +var config_defaults = { + serverurl:"http://localhost:42010", + apikey:"BlackPinkInYourArea" +} + document.addEventListener("DOMContentLoaded",function() { - document.getElementById("serverurl").addEventListener("input",updateServer); - document.getElementById("apikey").addEventListener("input",updateAPIKey); document.getElementById("serverurl").addEventListener("change",checkServer); document.getElementById("apikey").addEventListener("change",checkServer); @@ -12,15 +15,12 @@ document.addEventListener("DOMContentLoaded",function() { chrome.runtime.onMessage.addListener(onInternalMessage); - - chrome.storage.local.get({"serverurl":"http://localhost:42010"},function(result) { - document.getElementById("serverurl").value = result["serverurl"] - checkServerMaybe() - }); - chrome.storage.local.get({"apikey":"BlackPinkInYourArea"},function(result) { - document.getElementById("apikey").value = result["apikey"] - checkServerMaybe() - }); + chrome.storage.local.get(config_defaults,function(result){ + for (var key in result) { + document.getElementById(key).value = result[key]; + } + checkServer(); + }) chrome.runtime.sendMessage({"type":"query"}) @@ -29,17 +29,6 @@ document.addEventListener("DOMContentLoaded",function() { }); -//this makes sure only the second call actually makes a request (the first request is pointless -//when the other element isn't filled yet and might actually overwrite the correct result because -//of a race condition) -var done = 0 -function checkServerMaybe() { - done++; - if (done == 2) { - checkServer() - } -} - function onInternalMessage(request,sender) { if (request.type == "response") { players = request.content @@ -58,17 +47,11 @@ function onInternalMessage(request,sender) { -function updateServer() { - - text = document.getElementById("serverurl").value - - - chrome.storage.local.set({"serverurl":text}) -} - -function updateAPIKey() { - text = document.getElementById("apikey").value - chrome.storage.local.set({"apikey":text}) +function saveConfig() { + for (var key in config_defaults) { + var value = document.getElementById(key).value; + chrome.storage.local.set({ [key]: value }); + } } function checkServer() {