|
|
|
chrome.runtime.onInstalled.addListener(function() {
|
|
|
|
chrome.storage.sync.set({'switchValue': false}, function() {
|
|
|
|
console.log("Switch is "+false);
|
|
|
|
});
|
|
|
|
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
|
|
|
|
chrome.declarativeContent.onPageChanged.addRules([{
|
|
|
|
conditions: [new chrome.declarativeContent.PageStateMatcher({
|
|
|
|
pageUrl: {hostEquals: 'music.youtube.com'},
|
|
|
|
})
|
|
|
|
],
|
|
|
|
actions: [new chrome.declarativeContent.ShowPageAction()]
|
|
|
|
}]);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
|
|
|
|
chrome.storage.sync.get('switchValue', function(data) {
|
|
|
|
value = data.switchValue;
|
|
|
|
if(value){
|
|
|
|
const code = `(function getUrls(){
|
|
|
|
const songName = document.querySelector('yt-formatted-string[class="title style-scope ytmusic-player-bar"]')
|
|
|
|
? document.querySelector('yt-formatted-string[class="title style-scope ytmusic-player-bar"]').title
|
|
|
|
: undefined;
|
|
|
|
const songInfo = document.querySelector('yt-formatted-string[class="byline style-scope ytmusic-player-bar complex-string"]')
|
|
|
|
? document.querySelector('yt-formatted-string[class="byline style-scope ytmusic-player-bar complex-string"]').title
|
|
|
|
: undefined;
|
|
|
|
return { songName, songInfo };
|
|
|
|
})()`;
|
|
|
|
|
|
|
|
const ytmusicURLs = ['www.music.youtube.com','music.youtube.com'];
|
|
|
|
if(tab.status == 'complete' && ytmusicURLs.some(url => tab.url.includes(url))){
|
|
|
|
setTimeout(() => {
|
|
|
|
chrome.tabs.executeScript(tabId, { code }, function(result) {
|
|
|
|
const { songName, songInfo } = result[0];
|
|
|
|
notHandle = true;
|
|
|
|
chrome.storage.sync.get('oldSongInfo', function(songData) {
|
|
|
|
if(songData.oldSongInfo.localeCompare(`${songName}\n${songInfo}`)===0){
|
|
|
|
notHandle = false;
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
notHandle = true;
|
|
|
|
}
|
|
|
|
if(songName!=undefined && songInfo!=undefined && notHandle){
|
|
|
|
chrome.storage.sync.set({'oldSongInfo': `${songName}\n${songInfo}`});
|
|
|
|
function getNotificationId() {
|
|
|
|
var id = Math.floor(Math.random() * 9007199254740992) + 1;
|
|
|
|
return id.toString();
|
|
|
|
}
|
|
|
|
chrome.notifications.create(getNotificationId(), {
|
|
|
|
title: 'Now Playing',
|
|
|
|
iconUrl: 'icon128.png',
|
|
|
|
type: 'basic',
|
|
|
|
message: `${songName}\n${songInfo}`
|
|
|
|
}, function() {});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}, 2000);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|