diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 72cf1bec..ed277dc8 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -214,10 +214,10 @@ "message": "This is the button that allows you to clear all sponsors on the YouTube player." }, "disableViewTracking": { - "message": "Disable Sponsor View Tracking" + "message": "Disable Sponsor Skip Count Tracking" }, "enableViewTracking": { - "message": "Enable Sponsor View Tracking" + "message": "Enable Sponsor Skip Count Tracking" }, "whatViewTracking": { "message": "This feature tracks which sponsors you have skipped to let users know how much their submission has helped others and\nused as a metric along with upvotes to ensure that spam doesn't get into the database. The extension sends a message\nto the server each time you skip a sponsor. Hopefully most people don't change this setting so that the view numbers are accurate. :)" @@ -290,5 +290,23 @@ }, "autoSkipDescription": { "message": "Auto skip will skip sponsors for you. If disabled, a notice will appear asking if you'd like to skip." + }, + "youHaveSkipped": { + "message": "You have skipped " + }, + "youHaveSaved": { + "message": "You have saved yourself " + }, + "minLower": { + "message": "minute" + }, + "minsLower": { + "message": "minutes" + }, + "hourLower": { + "message": "hour" + }, + "hoursLower": { + "message": "hours" } } diff --git a/content.js b/content.js index 5c90a964..228172de 100644 --- a/content.js +++ b/content.js @@ -10,6 +10,9 @@ var sponsorVideoID = null; //these are sponsors that have been downvoted var hiddenSponsorTimes = []; +/** @type {Array[boolean]} Has the sponsor been skipped */ +var sponsorSkipped = []; + //the video var v; @@ -418,6 +421,9 @@ function sponsorsLookup(id, channelIDPromise) { sponsorTimes = JSON.parse(xmlhttp.responseText).sponsorTimes; UUIDs = JSON.parse(xmlhttp.responseText).UUIDs; + // Reset skip save + sponsorSkipped = []; + //update the preview bar //leave the type blank for now until categories are added if (lastPreviewBarUpdate == id || (lastPreviewBarUpdate == null && !isNaN(v.duration))) { @@ -639,15 +645,31 @@ function skipToTime(v, index, sponsorTimes, openNotice) { } //auto-upvote this sponsor - if (trackViewCount) { + if (trackViewCount && !disableAutoSkip) { vote(1, currentUUID, null); } } } //send telemetry that a this sponsor was skipped happened - if (trackViewCount) { + if (trackViewCount && !sponsorSkipped[index]) { sendRequestToServer("GET", "/api/viewedVideoSponsorTime?UUID=" + currentUUID); + + if (!disableAutoSkip) { + // Count this as a skip + chrome.storage.sync.get(["minutesSaved"], function(result) { + if (result.minutesSaved === undefined) result.minutesSaved = 0; + + chrome.storage.sync.set({"minutesSaved": result.minutesSaved + (sponsorTimes[index][1] - sponsorTimes[index][0]) / 60 }); + }); + chrome.storage.sync.get(["skipCount"], function(result) { + if (result.skipCount === undefined) result.skipCount = 0; + + chrome.storage.sync.set({"skipCount": result.skipCount + 1 }); + }); + + sponsorSkipped[index] = true; + } } } @@ -916,6 +938,30 @@ function vote(type, UUID, skipNotice) { skipNotice.resetNoticeInfoMessage.bind(skipNotice)(); } + let sponsorIndex = UUIDs.indexOf(UUID); + + // See if the local time saved count and skip count should be reverted + if (type == 0 && sponsorSkipped[sponsorIndex] || type == 1 && !sponsorSkipped[sponsorIndex]) { + let factor = 1; + if (type == 0) { + factor = -1; + } + + // Count this as a skip + chrome.storage.sync.get(["minutesSaved"], function(result) { + if (result.minutesSaved === undefined) result.minutesSaved = 0; + + chrome.storage.sync.set({"minutesSaved": result.minutesSaved + factor * (sponsorTimes[sponsorIndex][1] - sponsorTimes[sponsorIndex][0]) / 60 }); + }); + chrome.storage.sync.get(["skipCount"], function(result) { + if (result.skipCount === undefined) result.skipCount = 0; + + chrome.storage.sync.set({"skipCount": result.skipCount + factor * 1 }); + }); + + sponsorSkipped[sponsorIndex] = !sponsorSkipped[sponsorIndex]; + } + chrome.runtime.sendMessage({ message: "submitVote", type: type, diff --git a/popup.html b/popup.html index c09000f0..e673eecb 100644 --- a/popup.html +++ b/popup.html @@ -114,25 +114,39 @@
-