mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2024-11-13 10:17:39 +01:00
Merge branch 'master' into add-invidious
This commit is contained in:
commit
f25aeefe83
8 changed files with 86 additions and 21 deletions
|
@ -82,10 +82,10 @@
|
||||||
"message": "Bist du sicher, dass du Folgendes löschen möchtest?\n\n"
|
"message": "Bist du sicher, dass du Folgendes löschen möchtest?\n\n"
|
||||||
},
|
},
|
||||||
"Unknown": {
|
"Unknown": {
|
||||||
"message": "Deine Segmente konnte nicht gesendet werden, bitte versuche es später erneut."
|
"message": "Deine Segmente konnten nicht gesendet werden, bitte versuche es später erneut."
|
||||||
},
|
},
|
||||||
"sponsorFound": {
|
"sponsorFound": {
|
||||||
"message": "Die gesponsorten Inhalte dieses Videos befindet sich bereits in der Datenbank!"
|
"message": "Die gesponsorten Inhalte dieses Videos befinden sich bereits in der Datenbank!"
|
||||||
},
|
},
|
||||||
"sponsor404": {
|
"sponsor404": {
|
||||||
"message": "Keine Sponsoren gefunden"
|
"message": "Keine Sponsoren gefunden"
|
||||||
|
@ -214,10 +214,10 @@
|
||||||
"message": "Dieser Knopf entfernt sämtlich Segmente in der Youtube-Zeitleiste."
|
"message": "Dieser Knopf entfernt sämtlich Segmente in der Youtube-Zeitleiste."
|
||||||
},
|
},
|
||||||
"disableViewTracking": {
|
"disableViewTracking": {
|
||||||
"message": "Deaktiviere mitzählen übersprungener Sponsoren"
|
"message": "Deaktiviere das Mitzählen übersprungener Sponsoren"
|
||||||
},
|
},
|
||||||
"enableViewTracking": {
|
"enableViewTracking": {
|
||||||
"message": "Aktiviere mitzählen übersprungener Sponsoren"
|
"message": "Aktiviere das Mitzählen übersprungener Sponsoren"
|
||||||
},
|
},
|
||||||
"whatViewTracking": {
|
"whatViewTracking": {
|
||||||
"message": "Diese Funktion hält fest, welche Sponsoren von dir übersprungen wurden und hilft anderen zu erfahren, was ihre Einsendungen bewirkt haben.\n Außerdem dienen die Werte zusammen mit positiven Rückmeldungen als Anti-Spam-Schutz. \n Wenn ein gesponsorter Inhalt übersprungen wird, sendet die Erweiterung eine Nachricht an den Server. \n Hoffentlich wird diese Funktion auch weiterhin genutzt, damit der Algorithmus funktioniert. :)"
|
"message": "Diese Funktion hält fest, welche Sponsoren von dir übersprungen wurden und hilft anderen zu erfahren, was ihre Einsendungen bewirkt haben.\n Außerdem dienen die Werte zusammen mit positiven Rückmeldungen als Anti-Spam-Schutz. \n Wenn ein gesponsorter Inhalt übersprungen wird, sendet die Erweiterung eine Nachricht an den Server. \n Hoffentlich wird diese Funktion auch weiterhin genutzt, damit der Algorithmus funktioniert. :)"
|
||||||
|
@ -292,10 +292,10 @@
|
||||||
"message": "Auto-Überspringen überspringt gesponsorte Inhalte für dich. Wenn deaktiviert, fragt die Benachrichtigung, ob übersprungen werden soll."
|
"message": "Auto-Überspringen überspringt gesponsorte Inhalte für dich. Wenn deaktiviert, fragt die Benachrichtigung, ob übersprungen werden soll."
|
||||||
},
|
},
|
||||||
"youHaveSkipped": {
|
"youHaveSkipped": {
|
||||||
"message": "Du hast übersprungen "
|
"message": "Du übersprangst "
|
||||||
},
|
},
|
||||||
"youHaveSaved": {
|
"youHaveSaved": {
|
||||||
"message": "Du hast dir erspart "
|
"message": "Du erspartest dir "
|
||||||
},
|
},
|
||||||
"minLower": {
|
"minLower": {
|
||||||
"message": "Minute"
|
"message": "Minute"
|
||||||
|
|
|
@ -320,5 +320,17 @@
|
||||||
},
|
},
|
||||||
"statusReminder": {
|
"statusReminder": {
|
||||||
"message": "Check status.sponsor.ajay.app for server status."
|
"message": "Check status.sponsor.ajay.app for server status."
|
||||||
|
},
|
||||||
|
"changeUserID": {
|
||||||
|
"message": "Import/Export Your UserID"
|
||||||
|
},
|
||||||
|
"whatChangeUserID": {
|
||||||
|
"message": "This should be kept private. This is like a password and should not be shared with anyone. If someone has this, they can impersonate you."
|
||||||
|
},
|
||||||
|
"setUserID": {
|
||||||
|
"message": "Set UserID"
|
||||||
|
},
|
||||||
|
"userIDChangeWarning": {
|
||||||
|
"message": "Warning: Changing the UserID is permanent. Are you sure you would like to do this? Make sure to backup your old one just in case."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,7 +109,7 @@ function submitVote(type, UUID, callback) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//publish this vote
|
//publish this vote
|
||||||
sendRequestToServer("GET", "/api/voteOnSponsorTime?UUID=" + UUID + "&userID=" + userID + "&type=" + type, function(xmlhttp, error) {
|
sendRequestToServer("POST", "/api/voteOnSponsorTime?UUID=" + UUID + "&userID=" + userID + "&type=" + type, function(xmlhttp, error) {
|
||||||
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
|
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
|
||||||
callback({
|
callback({
|
||||||
successType: 1
|
successType: 1
|
||||||
|
|
17
content.js
17
content.js
|
@ -514,12 +514,11 @@ function updatePreviewBar() {
|
||||||
|
|
||||||
function getChannelID() {
|
function getChannelID() {
|
||||||
//get channel id
|
//get channel id
|
||||||
let channelNameContainer = document.getElementById("channel-name");
|
|
||||||
|
|
||||||
let channelURLContainer = null;
|
let channelURLContainer = null;
|
||||||
|
|
||||||
if (channelNameContainer !== null) {
|
channelURLContainer = document.querySelector("#channel-name > #container > #text-container > #text");
|
||||||
channelURLContainer = channelNameContainer.querySelector("#container").querySelector("#text-container").querySelector("#text").firstElementChild;
|
if (channelURLContainer !== null) {
|
||||||
|
channelURLContainer = channelURLContainer.firstElementChild;
|
||||||
} else if (onInvidious) {
|
} else if (onInvidious) {
|
||||||
// Unfortunately, the Invidious HTML doesn't have much in the way of element identifiers...
|
// Unfortunately, the Invidious HTML doesn't have much in the way of element identifiers...
|
||||||
channelContainers = document.querySelector("body > div > div.pure-u-1.pure-u-md-20-24 div.pure-u-1.pure-u-lg-3-5 > div > a");
|
channelContainers = document.querySelector("body > div > div.pure-u-1.pure-u-md-20-24 div.pure-u-1.pure-u-lg-3-5 > div > a");
|
||||||
|
@ -677,9 +676,9 @@ function skipToTime(v, index, sponsorTimes, openNotice) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//send telemetry that a this sponsor was skipped happened
|
//send telemetry that a this sponsor was skipped
|
||||||
if (trackViewCount && !sponsorSkipped[index]) {
|
if (trackViewCount && !sponsorSkipped[index]) {
|
||||||
sendRequestToServer("GET", "/api/viewedVideoSponsorTime?UUID=" + currentUUID);
|
sendRequestToServer("POST", "/api/viewedVideoSponsorTime?UUID=" + currentUUID);
|
||||||
|
|
||||||
if (!disableAutoSkip) {
|
if (!disableAutoSkip) {
|
||||||
// Count this as a skip
|
// Count this as a skip
|
||||||
|
@ -973,11 +972,13 @@ function vote(type, UUID, skipNotice) {
|
||||||
|
|
||||||
let sponsorIndex = UUIDs.indexOf(UUID);
|
let sponsorIndex = UUIDs.indexOf(UUID);
|
||||||
|
|
||||||
// See if the local time saved count and skip count should be reverted
|
// See if the local time saved count and skip count should be saved
|
||||||
if (type == 0 && sponsorSkipped[sponsorIndex] || type == 1 && !sponsorSkipped[sponsorIndex]) {
|
if (type == 0 && sponsorSkipped[sponsorIndex] || type == 1 && !sponsorSkipped[sponsorIndex]) {
|
||||||
let factor = 1;
|
let factor = 1;
|
||||||
if (type == 0) {
|
if (type == 0) {
|
||||||
factor = -1;
|
factor = -1;
|
||||||
|
|
||||||
|
sponsorSkipped[sponsorIndex] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Count this as a skip
|
// Count this as a skip
|
||||||
|
@ -991,8 +992,6 @@ function vote(type, UUID, skipNotice) {
|
||||||
|
|
||||||
chrome.storage.sync.set({"skipCount": result.skipCount + factor * 1 });
|
chrome.storage.sync.set({"skipCount": result.skipCount + factor * 1 });
|
||||||
});
|
});
|
||||||
|
|
||||||
sponsorSkipped[sponsorIndex] = !sponsorSkipped[sponsorIndex];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
chrome.runtime.sendMessage({
|
chrome.runtime.sendMessage({
|
||||||
|
|
9
crowdin.yml
Normal file
9
crowdin.yml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
files:
|
||||||
|
- source: /_locales/en/*
|
||||||
|
translation: /_locales/%two_letters_code%/%original_file_name%
|
||||||
|
languages_mapping:
|
||||||
|
two_letters_code:
|
||||||
|
pr-BR: "pt_BR"
|
||||||
|
pr-PT: "pt_PT"
|
||||||
|
zh-CN: "zh_CH"
|
||||||
|
zh-TW: "zh_TW"
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "__MSG_fullName__",
|
"name": "__MSG_fullName__",
|
||||||
"short_name": "__MSG_Name__",
|
"short_name": "__MSG_Name__",
|
||||||
"version": "1.2.0",
|
"version": "1.2.2",
|
||||||
"default_locale": "en",
|
"default_locale": "en",
|
||||||
"description": "__MSG_Description__",
|
"description": "__MSG_Description__",
|
||||||
"content_scripts": [
|
"content_scripts": [
|
||||||
|
|
22
popup.html
22
popup.html
|
@ -253,6 +253,28 @@
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
<button id="changeUserIDButton" class="warningButton popupElement">__MSG_changeUserID__</button>
|
||||||
|
<br/>
|
||||||
|
<sub class="popupElement">
|
||||||
|
__MSG_whatChangeUserID__
|
||||||
|
</sub>
|
||||||
|
|
||||||
|
<div id="changeUserID" class="popupElement" style="display: none">
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<input id="userIDInput" hint="userID"></input>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<button id="setUserID" class="warningButton popupElement">__MSG_setUserID__</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
<button id="disableSponsorViewTracking" class="warningButton popupElement">__MSG_disableViewTracking__</button>
|
<button id="disableSponsorViewTracking" class="warningButton popupElement">__MSG_disableViewTracking__</button>
|
||||||
<button id="enableSponsorViewTracking" style="display: none" class="warningButton popupElement">__MSG_enableViewTracking__</button>
|
<button id="enableSponsorViewTracking" style="display: none" class="warningButton popupElement">__MSG_enableViewTracking__</button>
|
||||||
<br/>
|
<br/>
|
||||||
|
|
31
popup.js
31
popup.js
|
@ -82,6 +82,11 @@ function runThePopup() {
|
||||||
"setUsername",
|
"setUsername",
|
||||||
"usernameInput",
|
"usernameInput",
|
||||||
"submitUsername",
|
"submitUsername",
|
||||||
|
// UserID
|
||||||
|
"changeUserID",
|
||||||
|
"changeUserIDButton",
|
||||||
|
"userIDInput",
|
||||||
|
"setUserID",
|
||||||
// More
|
// More
|
||||||
"submissionSection",
|
"submissionSection",
|
||||||
"mainControls",
|
"mainControls",
|
||||||
|
@ -118,6 +123,8 @@ function runThePopup() {
|
||||||
SB.enableSponsorViewTracking.addEventListener("click", enableSponsorViewTracking);
|
SB.enableSponsorViewTracking.addEventListener("click", enableSponsorViewTracking);
|
||||||
SB.setUsernameButton.addEventListener("click", setUsernameButton);
|
SB.setUsernameButton.addEventListener("click", setUsernameButton);
|
||||||
SB.submitUsername.addEventListener("click", submitUsername);
|
SB.submitUsername.addEventListener("click", submitUsername);
|
||||||
|
SB.changeUserIDButton.addEventListener("click", changeUserIDButton);
|
||||||
|
SB.setUserID.addEventListener("click", setUserID);
|
||||||
SB.optionsButton.addEventListener("click", openOptions);
|
SB.optionsButton.addEventListener("click", openOptions);
|
||||||
SB.reportAnIssue.addEventListener("click", reportAnIssue);
|
SB.reportAnIssue.addEventListener("click", reportAnIssue);
|
||||||
SB.hideDiscordButton.addEventListener("click", hideDiscordButton);
|
SB.hideDiscordButton.addEventListener("click", hideDiscordButton);
|
||||||
|
@ -740,8 +747,8 @@ function runThePopup() {
|
||||||
tabs[0].id,
|
tabs[0].id,
|
||||||
{message: "getCurrentTime"},
|
{message: "getCurrentTime"},
|
||||||
function (response) {
|
function (response) {
|
||||||
let minutes = document.getElementById(idStartName + chrome.i18n.getMessage("Mins") + index);
|
let minutes = document.getElementById(idStartName + "Minutes" + index);
|
||||||
let seconds = document.getElementById(idStartName + chrome.i18n.getMessage("Secs") + index);
|
let seconds = document.getElementById(idStartName + "Seconds" + index);
|
||||||
|
|
||||||
minutes.value = getTimeInMinutes(response.currentTime);
|
minutes.value = getTimeInMinutes(response.currentTime);
|
||||||
seconds.value = getTimeInFormattedSeconds(response.currentTime);
|
seconds.value = getTimeInFormattedSeconds(response.currentTime);
|
||||||
|
@ -752,8 +759,8 @@ function runThePopup() {
|
||||||
//id start name is whether it is the startTime or endTime
|
//id start name is whether it is the startTime or endTime
|
||||||
//gives back the time in seconds
|
//gives back the time in seconds
|
||||||
function getSponsorTimeEditTimes(idStartName, index) {
|
function getSponsorTimeEditTimes(idStartName, index) {
|
||||||
let minutes = document.getElementById(idStartName + chrome.i18n.getMessage("Mins") + index);
|
let minutes = document.getElementById(idStartName + "Minutes" + index);
|
||||||
let seconds = document.getElementById(idStartName + chrome.i18n.getMessage("Secs") + index);
|
let seconds = document.getElementById(idStartName + "Seconds" + index);
|
||||||
|
|
||||||
return parseInt(minutes.value) * 60 + parseFloat(seconds.value);
|
return parseInt(minutes.value) * 60 + parseFloat(seconds.value);
|
||||||
}
|
}
|
||||||
|
@ -1158,6 +1165,22 @@ function runThePopup() {
|
||||||
SB.setUsernameContainer.style.display = "none";
|
SB.setUsernameContainer.style.display = "none";
|
||||||
SB.setUsername.style.display = "unset";
|
SB.setUsername.style.display = "unset";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function changeUserIDButton() {
|
||||||
|
//get the user ID
|
||||||
|
chrome.storage.sync.get(["userID"], function(result) {
|
||||||
|
SB.userIDInput.value = result.userID;
|
||||||
|
SB.setUserID.style.display = "unset";
|
||||||
|
SB.userIDInput.style.display = "unset";
|
||||||
|
SB.changeUserID.style.display = "unset";
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function setUserID() {
|
||||||
|
if (!confirm(chrome.i18n.getMessage("userIDChangeWarning"))) return;
|
||||||
|
|
||||||
|
chrome.storage.sync.set({"userID": SB.userIDInput.value});
|
||||||
|
}
|
||||||
|
|
||||||
//this is not a YouTube video page
|
//this is not a YouTube video page
|
||||||
function displayNoVideo() {
|
function displayNoVideo() {
|
||||||
|
|
Loading…
Reference in a new issue