From 3c6cfc81c5535ec8585692820330c619f5d05082 Mon Sep 17 00:00:00 2001 From: Krateng Date: Tue, 14 May 2019 14:43:46 +0200 Subject: [PATCH] Removed outdated scrobblers --- .../chromium-plex-unmaintained/background.js | 232 ----------------- .../contentScript.js | 38 --- .../chromium-plex-unmaintained/icon128.png | Bin 12712 -> 0 bytes .../chromium-plex-unmaintained/icon256.png | Bin 39046 -> 0 bytes .../chromium-plex-unmaintained/icon48.png | Bin 2782 -> 0 bytes .../chromium-plex-unmaintained/manifest.json | 31 --- .../chromium-plex-unmaintained/settings.html | 18 -- .../chromium-plex-unmaintained/settings.js | 77 ------ .../background.js | 233 ------------------ .../contentScript.js | 40 --- .../icon128.png | Bin 7491 -> 0 bytes .../icon256.png | Bin 15707 -> 0 bytes .../icon48.png | Bin 2650 -> 0 bytes .../manifest.json | 31 --- .../settings.html | 18 -- .../settings.js | 77 ------ 16 files changed, 795 deletions(-) delete mode 100644 scrobblers/chromium-plex-unmaintained/background.js delete mode 100644 scrobblers/chromium-plex-unmaintained/contentScript.js delete mode 100644 scrobblers/chromium-plex-unmaintained/icon128.png delete mode 100644 scrobblers/chromium-plex-unmaintained/icon256.png delete mode 100644 scrobblers/chromium-plex-unmaintained/icon48.png delete mode 100644 scrobblers/chromium-plex-unmaintained/manifest.json delete mode 100644 scrobblers/chromium-plex-unmaintained/settings.html delete mode 100644 scrobblers/chromium-plex-unmaintained/settings.js delete mode 100644 scrobblers/chromium-youtubemusic-unmaintained/background.js delete mode 100644 scrobblers/chromium-youtubemusic-unmaintained/contentScript.js delete mode 100644 scrobblers/chromium-youtubemusic-unmaintained/icon128.png delete mode 100644 scrobblers/chromium-youtubemusic-unmaintained/icon256.png delete mode 100644 scrobblers/chromium-youtubemusic-unmaintained/icon48.png delete mode 100644 scrobblers/chromium-youtubemusic-unmaintained/manifest.json delete mode 100644 scrobblers/chromium-youtubemusic-unmaintained/settings.html delete mode 100644 scrobblers/chromium-youtubemusic-unmaintained/settings.js diff --git a/scrobblers/chromium-plex-unmaintained/background.js b/scrobblers/chromium-plex-unmaintained/background.js deleted file mode 100644 index 7ba5bf1..0000000 --- a/scrobblers/chromium-plex-unmaintained/background.js +++ /dev/null @@ -1,232 +0,0 @@ - - -chrome.tabs.onUpdated.addListener(onTabUpdated); -chrome.tabs.onRemoved.addListener(onTabRemoved); -chrome.tabs.onActivated.addListener(onTabChanged); -chrome.runtime.onMessage.addListener(onPlaybackUpdate); - -function onTabUpdated(tabId, changeInfo, tab) { - chrome.tabs.get(tabId,party) -} - -function onTabRemoved() { - -} - -function onTabChanged(activeInfo) { -} - - -function party(tab) { - - var patterns = [ - "https://app.plex.tv", - "http://app.plex.tv", - "https://plex.", - "http://plex." - ]; - - importantPage = false - - for (var i=0;i currentLength) { - alreadyPlayed = alreadyPlayed - currentLength - scrobble(currentArtist,currentTitle,currentLength) - } - - setUpdate() - currentlyPlaying = true - - } - - // CASE 2: New track is being played - else if (artist != currentArtist || title != currentTitle) { - - //first inform ourselves that the previous track has now been stopped for good - stopPlayback(artist,title) - //then initialize new playback - console.log("New track") - setUpdate() - alreadyPlayed = 0 - currentTitle = title - currentArtist = artist - currentLength = seconds - console.log(artist + " - " + title + " is playing!") - currentlyPlaying = true - } -} - -// the artist and title arguments are not attributes of the track being stopped, but of the track active now -// they are here to recognize whether the playback has been paused or completely ended / replaced -function stopPlayback(artist,title) { - - //CASE 1: Playback just paused OR CASE 2: Playback ended - if (currentlyPlaying) { - d = setUpdate() - alreadyPlayed = alreadyPlayed + d - console.log(d + " seconds played since last update, " + alreadyPlayed + " seconds played overall") - } - - - // Already played full song - while (alreadyPlayed > currentLength) { - alreadyPlayed = alreadyPlayed - currentLength - scrobble(currentArtist,currentTitle,currentLength) - } - - currentlyPlaying = false - - - - //ONLY CASE 2: Playback ended - if (artist != currentArtist || title != currentTitle) { - if (alreadyPlayed > currentLength / 2) { - scrobble(currentArtist,currentTitle,alreadyPlayed) - alreadyPlayed = 0 - } - } -} - - -// One problem here: Closing the player while it's paused does not cause an event, so the track will only be scrobbled the next time we play something. -// Also potentially problematic: Pausing a track and just leaving it should probably trigger a scrobble after some time because we can assume the user just stopped listening but didn't bother to press the X -// We could simply check for scrobblability when the track is paused, but this would remove the ability to send listening time with the scrobble - - -function ostopPlayback(artist,title) { - currentlyPlaying = false - console.log("Playback stopped!") - d = new Date() - t = Math.floor(d.getTime()/1000) - delta = t - lastUpdate - console.log("Since the last update, " + delta + " seconds of music have been played") - alreadyPlayed = alreadyPlayed + delta - console.log(alreadyPlayed + " seconds of this track have been played overall") - if ((alreadyPlayed > currentLength/2) && !alreadyScrobbled) { - console.log("Enough to scrobble: " + currentArtist + " - " + currentTitle) - scrobble(currentArtist,currentTitle) - alreadyScrobbled = true - } -} - -function ostartPlayback(artist,title,seconds) { - - console.log("Playback started!") - if (artist == currentArtist && title == currentTitle && !currentlyPlaying) { - console.log("Still previous track!") - while (alreadyPlayed > currentLength) { - console.log("This song is being played several times in a row!") - if (!alreadyScrobbled) { - scrobble(currentArtist,currentTitle) - //alreadyScrobbled = true - } - alreadyPlayed = alreadyPlayed - currentLength - alreadyScrobbled = false - - } - d = new Date() - t = Math.floor(d.getTime()/1000) - lastUpdate = t - currentlyPlaying = true - } - else if (artist != currentArtist || title != currentTitle) { - console.log("New track!") - if (currentlyPlaying) { - console.log("We were playing another track before, so let's check if we should scrobble that.") - d = new Date() - t = Math.floor(d.getTime()/1000) - delta = t - lastUpdate - console.log("Since the last update, " + delta + " seconds of music have been played") - alreadyPlayed = alreadyPlayed + delta - - } - - console.log("The previous track was played for " + alreadyPlayed + " seconds, that's " + Math.floor(alreadyPlayed/currentLength * 100) + "% of its length.") - if (alreadyPlayed > currentLength/2 && !alreadyScrobbled) { - console.log("Enough to scrobble: " + currentArtist + " - " + currentTitle) - scrobble(currentArtist,currentTitle) - - } - else if (alreadyScrobbled) { - console.log("We already scrobbled this track tho.") - alreadyScrobbled = false - } - - - console.log("But now, new track!") - d = new Date() - t = Math.floor(d.getTime()/1000) - lastUpdate = t - alreadyPlayed = 0 - currentTitle = title - currentArtist = artist - currentLength = seconds - console.log(artist + " - " + title + " is playing!") - currentlyPlaying = true - } -} - - - -function scrobble(artist,title,seconds) { - console.log("Scrobbling " + artist + " - " + title + "; " + seconds + " seconds playtime") - artiststring = encodeURIComponent(artist) - titlestring = encodeURIComponent(title) - chrome.storage.local.get("apikey",function(result) { - APIKEY = result["apikey"] - chrome.storage.local.get("serverurl",function(result) { - URL = result["serverurl"] - var xhttp = new XMLHttpRequest(); - xhttp.open("POST",URL + "/db/newscrobble",true); - xhttp.send("artist=" + artiststring + "&title=" + titlestring + "&duration=" + seconds + "&key=" + APIKEY) - }); - }); - - -} - -function setUpdate() { - d = new Date() - t = Math.floor(d.getTime()/1000) - delta = t - lastUpdate - lastUpdate = t - return delta -} diff --git a/scrobblers/chromium-plex-unmaintained/contentScript.js b/scrobblers/chromium-plex-unmaintained/contentScript.js deleted file mode 100644 index d4fcfd1..0000000 --- a/scrobblers/chromium-plex-unmaintained/contentScript.js +++ /dev/null @@ -1,38 +0,0 @@ -bar = document.querySelector("div[class*=PlayerControls]") -if (bar == null) { - console.log("Nothing playing right now!") - chrome.runtime.sendMessage({type:"stopPlayback",artist:"",title:""}) - exit() -} - -metadata = bar.querySelector("div[class*=PlayerControlsMetadata-container]") - -title = metadata.querySelector("a[class*=MetadataPosterTitle-singleLineTitle]").getAttribute("title") -artist = metadata.querySelector("span[class*=MetadataPosterTitle-title] > a:nth-child(1)").getAttribute("title") -duration = metadata.querySelector("[data-qa-id=mediaDuration]").innerHTML.split("/")[1] -if (duration.split(":").length == 2) { - durationSeconds = parseInt(duration.split(":")[0]) * 60 + parseInt(duration.split(":")[1]) -} -else { - durationSeconds = parseInt(duration.split(":")[0]) * 60 * 60 + parseInt(duration.split(":")[1]) * 60 + parseInt(duration.split(":")[2]) -} - - -control = bar.querySelector("div[class*=PlayerControls-buttonGroupCenter] > button:nth-child(2)").getAttribute("title") -if (control == "Play") { - console.log("Not playing right now") - chrome.runtime.sendMessage({type:"stopPlayback",artist:artist,title:title}) - //stopPlayback() -} -else if (control == "Pause") { - console.log("Playing " + artist + " - " + title) - chrome.runtime.sendMessage({type:"startPlayback",artist:artist,title:title,duration:durationSeconds}) - //startPlayback(artist,title,durationSeconds) -} - - - - - - - diff --git a/scrobblers/chromium-plex-unmaintained/icon128.png b/scrobblers/chromium-plex-unmaintained/icon128.png deleted file mode 100644 index 23abc0b8f9ad82a5831746ba1f538b6c56fc183c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12712 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 D39AD% diff --git a/scrobblers/chromium-plex-unmaintained/icon256.png b/scrobblers/chromium-plex-unmaintained/icon256.png deleted file mode 100644 index 754a0c13ef1322734b0b598f6319e2c908f2addd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39046 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 diff --git a/scrobblers/chromium-plex-unmaintained/icon48.png b/scrobblers/chromium-plex-unmaintained/icon48.png deleted file mode 100644 index 5cb2120718a16eb166b7ee4fa368ebf8b4810f19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2782 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F`kW@u4ar35bFHl$o#RpZNUR}rB_@l zzMC-Tp@oOrSq@xryT&5kDK>dqwrT7htrZ;%O<5~iJd&oIcqHblsoZhRg)9HiX_ax^t4Xja%>~h)mYJ62lu7DELeBpiBNOQV^DTeu--Y(q&hNd6X(M0sT^8Lp$Ek_M^F0N%hlz! zOt|;$CCO=03QKZpl2c?ot0!!0IxX};lQTj$OCWa>^DU1>Q=SL7s)Q`6d$oo&(tUQ+ zxzDYW?yJo^a$@zl=(~Bjnc=yt3zt=e)vgXHoOSIg|ARkY?e709knDG3-cxeu(d=rY zDSO$ROqI0z__zL$)?RUzH(N~E`_1KK`PD0XH|g9k&-!?wZgy)|fW~#Z;?%^?T@Bsl zzb48EEz{5y_i;Ne;P;rOePMmm`VR+In+YHN!Y2`ZknhK* zr`#zzj;@DevIX;I6zQiGu~=@KS-Mm3-qt*h>bi_fE)J>6nNbfeh=m9V-jmo~k+Q!v zxph|Lwzl~`4Rd*aJXGh>%rfha^egO``c!w$_B7S``wu2xU$@xi!vn#6TZ-o_xUipv zbUuxOq|MQ=V2ZES zX*TRiWuM{mBiEYI@7nXr(?uf9UtC{Q;v~qhEB(gz81r@7JJt!XJbc{B`f!u%=NC@l z%dG=c3zQmHv9I&$NcVLKKJdAvdVaaVw4_K!4rTX^a~d{Z+ZFSFVWpT>=PreZiGSW@ z#?|iZZe^YPs8ry^OaZu}d$DRSv{^MtHZk8aw3|Fm6v*NLvX6ZDRkOPl9iX^Zvv z@xRT)-TAG{<2{!DZu2Lc)|!7m&b+yhNk_e-?BMZ;g+}6UWfB)&dNHABsc6h!!S>YC zO!F#NP5;O_d(k;VaS;xq;)EIoK3Ohpqt(BX>g)gKX3D8wO3a+9=Hj))=yE}{ySh=z zkqwyN89I0;Vx#O+U!; z@zdqYm+$+zKT@+1%bb?FjNNlriPNdrADfwTqzf&qR{qIb@9*Dl6mD=voM-AH_xkTP z;c-<>o87eb6kg#A|B(A9$lOuY`>582Rrfbkxym;)*OokQvA2ErfPeo@g{Hf+jszaN zY4pM4P4B83#+#kjoZu-qU4H!Lp2{vCw~e_+Hy!wXXwQk#*2l+W@KnIZ4zsmyyDYZz9~Ic{j?rQ0xnUNWP|8f(mcs{)11KZvXu;#yMc)jh(C6y?O4&zPvb%HGl8C!x3>A>@Q{P zyn`HGZ}U%PjESqYoc-yeBg6aJ_=(|t-#?y;KK+j~c9`R6y+muS!4 zK1EXQTk`s67N;Ipe>x*ld!@|UVZs)_XDX3%w%l%A^&!ykX}M^{rrqStZLu zvtv_YPwf<1aFZ$DulM8C=<5ZaTAa;R^UhhZOycfc#^hu%>-`(1sehkZxcitGd*6XG zJ&cc!?!M2V=(*)v$n5Epd}SS1teZaj(O1v@Y&*+CqSL3}*tqz_w6)w4);iXqQ<>R| zZ1ydmzPGwK!Vh^J6PAVUU;ZjH z>&*IZU9b38Z@sK>!^~!#1kVQ>si5AZiyNMAw5hApNqo{bYjsxGCBX@i5^D8-wrg_W1HY|yqn)RmIw9roZEQ_z4 z*A|P3{`+(djYRFu54ZGuy7~Ir$0x#-G2t`jY^iwg&*t;Z$^ZXpUaNm~>sIYm$#vS> zV?P}{w0x80(~0iC^XyJF+y9&&$nap!z12C_Q)j1cTxb6Necit=@_WOQ|8vgYG2J6H T?0^LW0|SGntDnm{r-UW|4vkz` diff --git a/scrobblers/chromium-plex-unmaintained/manifest.json b/scrobblers/chromium-plex-unmaintained/manifest.json deleted file mode 100644 index 9e8cebe..0000000 --- a/scrobblers/chromium-plex-unmaintained/manifest.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "Plexoja", - "version": "0.1", - "description": "Scrobbles tracks from Plex Web to your Maloja server", - "manifest_version": 2, - "permissions": ["activeTab", "declarativeContent","tabs","storage","http://app.plex.tv/*","https://app.plex.tv/*",""], - "background": - { - "scripts": - [ - "background.js" - ] - }, - - - "browser_action": - { - "default_icon": - { - "128":"icon128.png", - "48":"icon48.png" - }, - "default_popup": "settings.html", - "default_title": "Settings" - }, - "icons": - { - "128":"icon128.png", - "48":"icon48.png" - } -} diff --git a/scrobblers/chromium-plex-unmaintained/settings.html b/scrobblers/chromium-plex-unmaintained/settings.html deleted file mode 100644 index b9d83b2..0000000 --- a/scrobblers/chromium-plex-unmaintained/settings.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - Wat - - - - -

- - diff --git a/scrobblers/chromium-plex-unmaintained/settings.js b/scrobblers/chromium-plex-unmaintained/settings.js deleted file mode 100644 index ac403e2..0000000 --- a/scrobblers/chromium-plex-unmaintained/settings.js +++ /dev/null @@ -1,77 +0,0 @@ - -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); - - - chrome.storage.local.get({"serverurl":"http://localhost:42010"},function(result) { - document.getElementById("serverurl").value = result["serverurl"] - checkServer() - }); - chrome.storage.local.get({"apikey":"BlackPinkInYourArea"},function(result) { - document.getElementById("apikey").value = result["apikey"] - checkServer() - }); - - - -}); - - - -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 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) || (this.status == 205)) { - //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" - } - } -} diff --git a/scrobblers/chromium-youtubemusic-unmaintained/background.js b/scrobblers/chromium-youtubemusic-unmaintained/background.js deleted file mode 100644 index c9aa12b..0000000 --- a/scrobblers/chromium-youtubemusic-unmaintained/background.js +++ /dev/null @@ -1,233 +0,0 @@ - - -chrome.tabs.onUpdated.addListener(onTabUpdated); -chrome.tabs.onRemoved.addListener(onTabRemoved); -chrome.runtime.onMessage.addListener(onPlaybackUpdate); - - -var patterns = [ - "https://music.youtube.com", - "http://music.youtube.com" -]; - -function onTabUpdated(tabId, changeInfo, tab) { - if (changeInfo.status !== "complete") { - return; - } - console.log("Update") - chrome.tabs.get(tabId,party) -} - -function onTabRemoved() { - -} - - - -function party(tab) { - - importantPage = false - - for (var i=0;i currentLength) { - alreadyPlayed = alreadyPlayed - currentLength - scrobble(currentArtist,currentTitle,currentLength) - } - - setUpdate() - currentlyPlaying = true - - } - - // CASE 2: New track is being played - else if (artist != currentArtist || title != currentTitle) { - - //first inform ourselves that the previous track has now been stopped for good - stopPlayback(artist,title) - //then initialize new playback - console.log("New track") - setUpdate() - alreadyPlayed = 0 - currentTitle = title - currentArtist = artist - currentLength = seconds - console.log(artist + " - " + title + " is playing!") - currentlyPlaying = true - } -} - -// the artist and title arguments are not attributes of the track being stopped, but of the track active now -// they are here to recognize whether the playback has been paused or completely ended / replaced -function stopPlayback(artist,title) { - - //CASE 1: Playback just paused OR CASE 2: Playback ended - if (currentlyPlaying) { - d = setUpdate() - alreadyPlayed = alreadyPlayed + d - console.log(d + " seconds played since last update, " + alreadyPlayed + " seconds played overall") - } - - - // Already played full song - while (alreadyPlayed > currentLength) { - alreadyPlayed = alreadyPlayed - currentLength - scrobble(currentArtist,currentTitle,currentLength) - } - - currentlyPlaying = false - - - - //ONLY CASE 2: Playback ended - if (artist != currentArtist || title != currentTitle) { - if (alreadyPlayed > currentLength / 2) { - scrobble(currentArtist,currentTitle,alreadyPlayed) - alreadyPlayed = 0 - } - } -} - - -// One problem here: Closing the player while it's paused does not cause an event, so the track will only be scrobbled the next time we play something. -// Also potentially problematic: Pausing a track and just leaving it should probably trigger a scrobble after some time because we can assume the user just stopped listening but didn't bother to press the X -// We could simply check for scrobblability when the track is paused, but this would remove the ability to send listening time with the scrobble - - -function ostopPlayback(artist,title) { - currentlyPlaying = false - console.log("Playback stopped!") - d = new Date() - t = Math.floor(d.getTime()/1000) - delta = t - lastUpdate - console.log("Since the last update, " + delta + " seconds of music have been played") - alreadyPlayed = alreadyPlayed + delta - console.log(alreadyPlayed + " seconds of this track have been played overall") - if ((alreadyPlayed > currentLength/2) && !alreadyScrobbled) { - console.log("Enough to scrobble: " + currentArtist + " - " + currentTitle) - scrobble(currentArtist,currentTitle) - alreadyScrobbled = true - } -} - -function ostartPlayback(artist,title,seconds) { - - console.log("Playback started!") - if (artist == currentArtist && title == currentTitle && !currentlyPlaying) { - console.log("Still previous track!") - while (alreadyPlayed > currentLength) { - console.log("This song is being played several times in a row!") - if (!alreadyScrobbled) { - scrobble(currentArtist,currentTitle) - //alreadyScrobbled = true - } - alreadyPlayed = alreadyPlayed - currentLength - alreadyScrobbled = false - - } - d = new Date() - t = Math.floor(d.getTime()/1000) - lastUpdate = t - currentlyPlaying = true - } - else if (artist != currentArtist || title != currentTitle) { - console.log("New track!") - if (currentlyPlaying) { - console.log("We were playing another track before, so let's check if we should scrobble that.") - d = new Date() - t = Math.floor(d.getTime()/1000) - delta = t - lastUpdate - console.log("Since the last update, " + delta + " seconds of music have been played") - alreadyPlayed = alreadyPlayed + delta - - } - - console.log("The previous track was played for " + alreadyPlayed + " seconds, that's " + Math.floor(alreadyPlayed/currentLength * 100) + "% of its length.") - if (alreadyPlayed > currentLength/2 && !alreadyScrobbled) { - console.log("Enough to scrobble: " + currentArtist + " - " + currentTitle) - scrobble(currentArtist,currentTitle) - - } - else if (alreadyScrobbled) { - console.log("We already scrobbled this track tho.") - alreadyScrobbled = false - } - - - console.log("But now, new track!") - d = new Date() - t = Math.floor(d.getTime()/1000) - lastUpdate = t - alreadyPlayed = 0 - currentTitle = title - currentArtist = artist - currentLength = seconds - console.log(artist + " - " + title + " is playing!") - currentlyPlaying = true - } -} - - - -function scrobble(artist,title,seconds) { - console.log("Scrobbling " + artist + " - " + title + "; " + seconds + " seconds playtime") - artiststring = encodeURIComponent(artist) - titlestring = encodeURIComponent(title) - chrome.storage.local.get("apikey",function(result) { - APIKEY = result["apikey"] - chrome.storage.local.get("serverurl",function(result) { - URL = result["serverurl"] - var xhttp = new XMLHttpRequest(); - xhttp.open("POST",URL + "/db/newscrobble",true); - xhttp.send("artist=" + artiststring + "&title=" + titlestring + "&duration=" + seconds + "&key=" + APIKEY) - }); - }); - - -} - -function setUpdate() { - d = new Date() - t = Math.floor(d.getTime()/1000) - delta = t - lastUpdate - lastUpdate = t - return delta -} diff --git a/scrobblers/chromium-youtubemusic-unmaintained/contentScript.js b/scrobblers/chromium-youtubemusic-unmaintained/contentScript.js deleted file mode 100644 index b4e9a68..0000000 --- a/scrobblers/chromium-youtubemusic-unmaintained/contentScript.js +++ /dev/null @@ -1,40 +0,0 @@ -bar = document.querySelector("ytmusic-player-bar") -if (bar == null) { - console.log("Nothing playing right now!") - chrome.runtime.sendMessage({type:"stopPlayback",artist:"",title:""}) - exit() -} - -metadata = bar.querySelector("div[class*=middle-controls] > div[class*=content-info-wrapper]") - -ctrl = bar.querySelector("div[class*=left-controls]") - -title = metadata.querySelector("yt-formatted-string[class*=title]").getAttribute("title") -artist = metadata.querySelector("span > span[class*=subtitle] > yt-formatted-string > a:nth-child(1)").innerHTML -duration = ctrl.querySelector("[class*=time-info]").innerHTML.split("/")[1] -if (duration.split(":").length == 2) { - durationSeconds = parseInt(duration.split(":")[0]) * 60 + parseInt(duration.split(":")[1]) -} -else { - durationSeconds = parseInt(duration.split(":")[0]) * 60 * 60 + parseInt(duration.split(":")[1]) * 60 + parseInt(duration.split(":")[2]) -} - - -control = ctrl.querySelector("div > paper-icon-button[class*=play-pause-button]").getAttribute("title") -if (control == "Play") { - console.log("Not playing right now") - chrome.runtime.sendMessage({type:"stopPlayback",artist:artist,title:title}) - //stopPlayback() -} -else if (control == "Pause") { - console.log("Playing " + artist + " - " + title) - chrome.runtime.sendMessage({type:"startPlayback",artist:artist,title:title,duration:durationSeconds}) - //startPlayback(artist,title,durationSeconds) -} - - - - - - - diff --git a/scrobblers/chromium-youtubemusic-unmaintained/icon128.png b/scrobblers/chromium-youtubemusic-unmaintained/icon128.png deleted file mode 100644 index df0435d5d8fb0ddf58f081423bfc17949d795818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7491 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 diff --git a/scrobblers/chromium-youtubemusic-unmaintained/icon256.png b/scrobblers/chromium-youtubemusic-unmaintained/icon256.png deleted file mode 100644 index 0462c28725ef291923c8c6be9a563a93eaa17c15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15707 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 a*+rK}8pteB&ShX=VDNPHb6Mw<&;$Uc*4`xm diff --git a/scrobblers/chromium-youtubemusic-unmaintained/icon48.png b/scrobblers/chromium-youtubemusic-unmaintained/icon48.png deleted file mode 100644 index e8749e32346428c4e1f6f4f70d5003fc94761822..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2650 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 diff --git a/scrobblers/chromium-youtubemusic-unmaintained/manifest.json b/scrobblers/chromium-youtubemusic-unmaintained/manifest.json deleted file mode 100644 index 075b54c..0000000 --- a/scrobblers/chromium-youtubemusic-unmaintained/manifest.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "Youtoja", - "version": "0.1", - "description": "Scrobbles tracks from YouTube Music to your Maloja server", - "manifest_version": 2, - "permissions": ["activeTab", "declarativeContent","tabs","storage","http://music.youtube.com/*","https://music.youtube.com/*"], - "background": - { - "scripts": - [ - "background.js" - ] - }, - - - "browser_action": - { - "default_icon": - { - "128":"icon128.png", - "48":"icon48.png" - }, - "default_popup": "settings.html", - "default_title": "Settings" - }, - "icons": - { - "128":"icon128.png", - "48":"icon48.png" - } -} diff --git a/scrobblers/chromium-youtubemusic-unmaintained/settings.html b/scrobblers/chromium-youtubemusic-unmaintained/settings.html deleted file mode 100644 index b9d83b2..0000000 --- a/scrobblers/chromium-youtubemusic-unmaintained/settings.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - Wat - - - - -
- Server:
- -

- API key:
- -
- - diff --git a/scrobblers/chromium-youtubemusic-unmaintained/settings.js b/scrobblers/chromium-youtubemusic-unmaintained/settings.js deleted file mode 100644 index ac403e2..0000000 --- a/scrobblers/chromium-youtubemusic-unmaintained/settings.js +++ /dev/null @@ -1,77 +0,0 @@ - -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); - - - chrome.storage.local.get({"serverurl":"http://localhost:42010"},function(result) { - document.getElementById("serverurl").value = result["serverurl"] - checkServer() - }); - chrome.storage.local.get({"apikey":"BlackPinkInYourArea"},function(result) { - document.getElementById("apikey").value = result["apikey"] - checkServer() - }); - - - -}); - - - -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 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) || (this.status == 205)) { - //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" - } - } -}