diff --git a/ContentScript.js b/content.js similarity index 59% rename from ContentScript.js rename to content.js index 49b23e97..f4d574d9 100644 --- a/ContentScript.js +++ b/content.js @@ -1,12 +1,15 @@ -if(id = youtube_parser(document.URL)){ // Direct Links - SponsorsLookup(id); +if(id = getYouTubeVideoID(document.URL)){ // Direct Links + sponsorsLookup(id); } +//was sponsor data found when doing SponsorsLookup +var sponsorDataFound = false; + chrome.runtime.onMessage.addListener( // Detect URL Changes function(request, sender, sendResponse) { if (request.message === 'ytvideoid') { // Message from background script - SponsorsLookup(request.id); + sponsorsLookup(request.id); } //messages from popup script @@ -16,35 +19,42 @@ chrome.runtime.onMessage.addListener( // Detect URL Changes if (request.message === 'infoFound') { sendResponse({ - found: true + found: sponsorDataFound }) } }); -function SponsorsLookup(id) { +function sponsorsLookup(id) { v = document.querySelector('video') // Youtube video player var xmlhttp = new XMLHttpRequest(); - xmlhttp.open('GET', 'https://officialnoob.github.io/YTSponsorSkip-Dataset/' + id, true); // Dataset lookup + + //check database for sponsor times + xmlhttp.open('GET', 'http://localhost/api/getVideoSponsorTimes?videoID=' + id, true); + xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { - Sponsors = JSON.parse(xmlhttp.responseText); - v.ontimeupdate = function () { // If exists add event to run on the videos "ontimeupdate" - SponsorCheck(Sponsors); + sponsorDataFound = true; + + sponsors = JSON.parse(xmlhttp.responseText); + + // If the sponsor data exists, add the event to run on the videos "ontimeupdate" + v.ontimeupdate = function () { + sponsorCheck(sponsors); }; } }; xmlhttp.send(null); } -function SponsorCheck(Sponsors) { // Video skipping - Sponsors.forEach(function (el, index) { // Foreach Sponsor in video +function sponsorCheck(sponsors) { // Video skipping + sponsors.forEach(function (el, index) { // Foreach Sponsor in video if ((Math.floor(v.currentTime)) == el[0]) { // Check time has sponsor v.currentTime = el[1]; // Set new time } }); } -function youtube_parser(url) { // Returns with video id else returns false +function getYouTubeVideoID(url) { // Returns with video id else returns false var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/; var match = url.match(regExp); return (match && match[7].length == 11) ? match[7] : false; diff --git a/manifest.json b/manifest.json index b9de834f..f1f04b61 100644 --- a/manifest.json +++ b/manifest.json @@ -8,7 +8,7 @@ "https://*.youtube.com/*" ], "js": [ - "contentScript.js" + "content.js" ] } ],