Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into typescript

# Conflicts:
#	src/config.ts
This commit is contained in:
Ajay Ramachandran
2020-02-08 19:31:18 -05:00
7 changed files with 90 additions and 7 deletions

View File

@@ -1,5 +1,5 @@
<p align="center"> <p align="center">
<a href="https://sponsor.ajay.app"><img src="icons/LogoSponsorBlocker256px.png" alt="Logo"></img></a> <a href="https://sponsor.ajay.app"><img src="public/icons/LogoSponsorBlocker256px.png" alt="Logo"></img></a>
<br/> <br/>
<sub>Logo by <a href="https://github.com/munadikieh">@munadikieh</a></sub> <sub>Logo by <a href="https://github.com/munadikieh">@munadikieh</a></sub>
@@ -60,7 +60,11 @@ Run `npm run dev` to run the extension using a clean browser profile with hot re
## Packing ## Packing
Run `npm run build` to generate a packed extension. Run `npm run build` to generate a packed Chrome extension.
Use `npm run build:firefox` to generate a Firefox extension.
The result is in `dist`.
# Credit # Credit

View File

@@ -386,5 +386,14 @@
}, },
"invidiousInfo2": { "invidiousInfo2": {
"message": "You MUST enable it in the options for it to work." "message": "You MUST enable it in the options for it to work."
},
"minDuration": {
"message": "Minimum duration (seconds):"
},
"minDurationDescription": {
"message": "Sponsor segments shorter than the set value will not be skipeed or show in the player."
},
"shortCheck": {
"message": "The following submission is shorter than your minimum duration option. This could mean that this is already submitted, and just being ignored due to this option. Are you sure you would like to submit?"
} }
} }

View File

@@ -309,4 +309,13 @@ h1,h2,h3,h4,h5,h6 {
svg { svg {
text-decoration: none; text-decoration: none;
}
.number-container:before {
content: attr(label-name);
padding-right: 4px;
width: max-content;
font-size: 14px;
color: white;
} }

View File

@@ -76,7 +76,7 @@
<br/> <br/>
<br/> <br/>
<div option-type="toggle" toggle-type="reverse" sync-option="disableAutoSkip"> <div option-type="toggle" toggle-type="reverse" sync-option="disableAutoSkip">
<label class="switch-container" label-name="__MSG_autoSkip__"> <label class="switch-container" label-name="__MSG_autoSkip__">
<label class="switch"> <label class="switch">
@@ -93,7 +93,7 @@
<br/> <br/>
<br/> <br/>
<div option-type="keybind-change" sync-option="startSponsorKeybind"> <div option-type="keybind-change" sync-option="startSponsorKeybind">
<div class="option-button trigger-button"> <div class="option-button trigger-button">
__MSG_setStartSponsorShortcut__ __MSG_setStartSponsorShortcut__
@@ -132,6 +132,20 @@
</span> </span>
</div> </div>
</div> </div>
<br/>
<br/>
<div option-type="number-change" sync-option="minDuration">
<label class="number-container" label-name="__MSG_minDuration__">
<input type="number" step="0.1" min="0">
</label>
<br/>
<br/>
<div class="small-description">__MSG_minDurationDescription__</div>
</div>
<br/> <br/>
<br/> <br/>

View File

@@ -19,7 +19,8 @@ interface SBConfig {
invidiousInstances: string[], invidiousInstances: string[],
invidiousUpdateInfoShowCount: number, invidiousUpdateInfoShowCount: number,
autoUpvote: boolean, autoUpvote: boolean,
supportInvidious: boolean supportInvidious: boolean,
minDuration: number
} }
interface SBObject { interface SBObject {
@@ -111,7 +112,8 @@ var Config: SBObject = {
invidiousInstances: ["invidio.us", "invidiou.sh", "invidious.snopyta.org"], invidiousInstances: ["invidio.us", "invidiou.sh", "invidious.snopyta.org"],
invidiousUpdateInfoShowCount: 0, invidiousUpdateInfoShowCount: 0,
autoUpvote: true, autoUpvote: true,
supportInvidious: false supportInvidious: false,
minDuration: 0
}, },
localConfig: null, localConfig: null,
config: null config: null

View File

@@ -369,6 +369,22 @@ function sponsorsLookup(id: string, channelIDPromise?) {
sponsorTimes = JSON.parse(xmlhttp.responseText).sponsorTimes; sponsorTimes = JSON.parse(xmlhttp.responseText).sponsorTimes;
UUIDs = JSON.parse(xmlhttp.responseText).UUIDs; UUIDs = JSON.parse(xmlhttp.responseText).UUIDs;
// Remove all submissions smaller than the minimum duration
if (Config.config.minDuration !== 0) {
let smallSponsors = [];
let smallUUIDs = [];
for (let i = 0; i < sponsorTimes.length; i++) {
if (sponsorTimes[i][1] - sponsorTimes[i][0] >= Config.config.minDuration) {
smallSponsors.push(sponsorTimes[i]);
smallUUIDs.push(UUIDs[i]);
}
}
sponsorTimes = smallSponsors;
UUIDs = smallUUIDs;
}
// Reset skip save // Reset skip save
sponsorSkipped = []; sponsorSkipped = [];
@@ -1008,6 +1024,17 @@ function submitSponsorTimes() {
//update sponsorTimesSubmitting //update sponsorTimesSubmitting
sponsorTimesSubmitting = sponsorTimes; sponsorTimesSubmitting = sponsorTimes;
// Check to see if any of the submissions are below the minimum duration set
if (Config.config.minDuration > 0) {
for (let i = 0; i < sponsorTimes.length; i++) {
if (sponsorTimes[i][1] - sponsorTimes[i][0] < Config.config.minDuration) {
let confirmShort = chrome.i18n.getMessage("shortCheck") + "\n\n" + getSponsorTimesMessage(sponsorTimes);
if(!confirm(confirmShort)) return;
}
}
}
let confirmMessage = chrome.i18n.getMessage("submitCheck") + "\n\n" + getSponsorTimesMessage(sponsorTimes) let confirmMessage = chrome.i18n.getMessage("submitCheck") + "\n\n" + getSponsorTimesMessage(sponsorTimes)
+ "\n\n" + chrome.i18n.getMessage("confirmMSG") + "\n\n" + chrome.i18n.getMessage("guildlinesSummary"); + "\n\n" + chrome.i18n.getMessage("confirmMSG") + "\n\n" + chrome.i18n.getMessage("guildlinesSummary");
if(!confirm(confirmMessage)) return; if(!confirm(confirmMessage)) return;

View File

@@ -73,6 +73,24 @@ async function init() {
break; break;
case "display": case "display":
updateDisplayElement(<HTMLElement> optionsElements[i]) updateDisplayElement(<HTMLElement> optionsElements[i])
break;
case "number-change":
let numberChangeOption = optionsElements[i].getAttribute("sync-option");
let configValue = Config.config[numberChangeOption];
let numberInput = optionsElements[i].querySelector("input");
if (isNaN(configValue) || configValue < 0) {
numberInput.value = Config.defaults[numberChangeOption];
} else {
numberInput.value = configValue;
}
numberInput.addEventListener("input", () => {
Config.config[numberChangeOption] = numberInput.value;
});
break;
} }
} }
@@ -293,4 +311,4 @@ function activateTextChange(element: HTMLElement) {
}); });
element.querySelector(".option-hidden-section").classList.remove("hidden"); element.querySelector(".option-hidden-section").classList.remove("hidden");
} }