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/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 stopPlayback() { 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 scrobble(artist,title) { artiststring = encodeURIComponent(artist) titlestring = encodeURIComponent(title) var xhttp = new XMLHttpRequest(); xhttp.open("GET","http://localhost:12345/db/newscrobble?artist=" + artiststring + "&title=" + titlestring,true); xhttp.send() }