mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2024-09-20 04:53:43 +02:00
Merge pull request #126 from ajayyy/experimental-ajay
Translations + Unsubmitted sponsor preview
This commit is contained in:
commit
283e4d053e
10 changed files with 299 additions and 30 deletions
|
@ -123,5 +123,8 @@
|
|||
},
|
||||
"leftTimes": {
|
||||
"message": "You seem to have left some sponsor times unsubmitted. Go back to that page to submit them (they are not deleted)."
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "Are you sure you want to submit this?"
|
||||
}
|
||||
}
|
||||
|
|
129
_locales/fr/messages.json
Normal file
129
_locales/fr/messages.json
Normal file
|
@ -0,0 +1,129 @@
|
|||
{
|
||||
"Name": {
|
||||
"message": "SponsorBlock",
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
"fullName": {
|
||||
"message": "SponsorBlock pour YouTube - Enlève les endossements",
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
|
||||
"Description": {
|
||||
"message": "Enlève les endossements dans les vidéos YouTube. Soummettre les endossements dans les vidéos que vous regardez pour aidez les autres.",
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"helpPage": {
|
||||
"message": "index_en.html"
|
||||
},
|
||||
"400": {
|
||||
"message": "Soumission invalide"
|
||||
},
|
||||
"429": {
|
||||
"message": "Vous avez soummetez trop de endossements, il y a vraiment cette montant?"
|
||||
},
|
||||
"409": {
|
||||
"message": "Déjas soummis"
|
||||
},
|
||||
"502": {
|
||||
"message": "Le serveur ne fonctionne pas. Message le développeur."
|
||||
},
|
||||
"channelWhitelisted": {
|
||||
"message": "Cette channel est sur la liste blanche!"
|
||||
},
|
||||
"Sponsor": {
|
||||
"message": "endossement"
|
||||
},
|
||||
"Sponsors": {
|
||||
"message": "endossements"
|
||||
},
|
||||
"Segment": {
|
||||
"message": "section d'endossement"
|
||||
},
|
||||
"Segments": {
|
||||
"message": "section d'endossements"
|
||||
},
|
||||
"noticeTitle": {
|
||||
"message": "Endossement Passer"
|
||||
},
|
||||
"reportButtonTitle": {
|
||||
"message": "Incorrect"
|
||||
},
|
||||
"reportButtonInfo": {
|
||||
"message": "Informe que cette endossement est incorrect ou n'existe pas."
|
||||
},
|
||||
"Dismiss": {
|
||||
"message": "Ferme"
|
||||
},
|
||||
"Loading": {
|
||||
"message": "Chargement en cours..."
|
||||
},
|
||||
"Mins": {
|
||||
"message": "Minutes"
|
||||
},
|
||||
"Secs": {
|
||||
"message": "Seconds"
|
||||
},
|
||||
"Hide": {
|
||||
"message": "Ne Montre Jaimais"
|
||||
},
|
||||
"hitGoBack": {
|
||||
"message": "Clique retourne pour si vous avez manqué parti."
|
||||
},
|
||||
"unskip": {
|
||||
"message": "Retourne"
|
||||
},
|
||||
"reskip": {
|
||||
"message": "Resaute"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Pause"
|
||||
},
|
||||
"confirmMSG": {
|
||||
"message": "\n\nPour modifier ou enlever des soumissions, clique sur le bouton d'info."
|
||||
},
|
||||
"clearThis": {
|
||||
"message": "Êtes-vous certaines vous voulez enlever vos soumissions?\n\n"
|
||||
},
|
||||
"Unknown": {
|
||||
"message": "Erreur, essayer encore plus tard."
|
||||
},
|
||||
"sponsorFound": {
|
||||
"message": "Cette vidéo est dans le database!"
|
||||
},
|
||||
"sponsor404": {
|
||||
"message": "Rien d'endossements trouvé"
|
||||
},
|
||||
"sponsorStart": {
|
||||
"message": "Endossement Commence Maintenant"
|
||||
},
|
||||
"sponsorEnd": {
|
||||
"message": "Endossement Arête Maintenant"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "Ceci n'est pas une tab de YouTube, ou vous avez cliqué trop tôt. \n Si vous savez que ceci est une tab YouTube, ferme ce menu et essayé encore."
|
||||
},
|
||||
"success": {
|
||||
"message": "Succès!"
|
||||
},
|
||||
"voted": {
|
||||
"message": "Voté!"
|
||||
},
|
||||
"voteFail": {
|
||||
"message": "Vous avez déjà voté la même façon."
|
||||
},
|
||||
"serverDown": {
|
||||
"message": "Le serveur ne fonctionne pas. Message le développeur."
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "Erreur. Code: "
|
||||
},
|
||||
"wantToSubmit": {
|
||||
"message": "Voulez-vous soumettre les endossements sur le vidéo"
|
||||
},
|
||||
"leftTimes": {
|
||||
"message": "Vous avez laissé les endossements qui n'étaient pas soumis. Retournez à la page pour les soumettre (Ils ne sont pas enlevés)."
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "Êtes-vous certaines vous voulez soumettre?"
|
||||
}
|
||||
}
|
127
_locales/pt_BR/messages.json
Normal file
127
_locales/pt_BR/messages.json
Normal file
|
@ -0,0 +1,127 @@
|
|||
{
|
||||
"Name": {
|
||||
"message": "SponsorBlock",
|
||||
"description": "Nome da extensão."
|
||||
},
|
||||
"fullName": {
|
||||
"message": "SponsorBlock para YouTube - Pule patrocínios",
|
||||
"description": "Nome da extensão."
|
||||
},
|
||||
|
||||
"Description": {
|
||||
"message": "Pule patrocinadores em vídeos do YouTube. Reporte patrocinadores em videos que você assiste para salvar o tempo dos outros.",
|
||||
"description": "Descrição da extensão."
|
||||
},
|
||||
"helpPage": {
|
||||
"message": "index_en.html"
|
||||
},
|
||||
"400": {
|
||||
"message": "O servidor disse que esse pedido foi inválido"
|
||||
},
|
||||
"429": {
|
||||
"message": "Você enviou muitos segmentos para esse vídeo, tem certeza que tem tantos assim?"
|
||||
},
|
||||
"409": {
|
||||
"message": "Isso já foi enviado antes"
|
||||
},
|
||||
"502": {
|
||||
"message": "Parece que o servidor caiu. Contate o desenvolvedor para informá-los."
|
||||
},
|
||||
"channelWhitelisted": {
|
||||
"message": "Canal adicionado a lista branca!"
|
||||
},
|
||||
"Sponsor": {
|
||||
"message": "patrocinador"
|
||||
},
|
||||
"Sponsors": {
|
||||
"message": "patrocinadores"
|
||||
},
|
||||
"Segment": {
|
||||
"message": "segmento de patrocinador"
|
||||
},
|
||||
"Segments": {
|
||||
"message": "segmento de patrocinadores"
|
||||
},
|
||||
"noticeTitle": {
|
||||
"message": "Patrocinador pulado"
|
||||
},
|
||||
"reportButtonTitle": {
|
||||
"message": "Reportar"
|
||||
},
|
||||
"reportButtonInfo": {
|
||||
"message": "Reportar essa subimissão como inválida."
|
||||
},
|
||||
"Dismiss": {
|
||||
"message": "Ignorar"
|
||||
},
|
||||
"Loading": {
|
||||
"message": "Carregando..."
|
||||
},
|
||||
"Mins": {
|
||||
"message": "Minutos"
|
||||
},
|
||||
"Secs": {
|
||||
"message": "Segundos"
|
||||
},
|
||||
"Hide": {
|
||||
"message": "Nunca mostrar"
|
||||
},
|
||||
"hitGoBack": {
|
||||
"message": "Aperta reverter pulo para voltar onde estava"
|
||||
},
|
||||
"unskip": {
|
||||
"message": "Reverter pulo"
|
||||
},
|
||||
"reskip": {
|
||||
"message": "Pular novamente"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Pausado"
|
||||
},
|
||||
"confirmMSG": {
|
||||
"message": "\n\nPara editar ou remover linhas individuais, clique com o botão direito ou abra o popup da extensão pelo icone no canto superior direito."
|
||||
},
|
||||
"clearThis": {
|
||||
"message": "Tem certeza que quer limpar isso?\n\n"
|
||||
},
|
||||
"Unknown": {
|
||||
"message": "Teve um erro ao enviar seus segmentos, tente novamente depois"
|
||||
},
|
||||
|
||||
"sponsorFound": {
|
||||
"message": "Os patrocinadores desse vídeo estão no banco de dados!"
|
||||
},
|
||||
"sponsor404": {
|
||||
"message": "Nenhum patrocinador encontrado"
|
||||
},
|
||||
"sponsorStart": {
|
||||
"message": "Patrocínio começa agora"
|
||||
},
|
||||
"sponsorEnd": {
|
||||
"message": "Patrocínio termina agora"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "Isso provavelmente não é uma tab do YouTube, ou você clicou muito cedo. \n Se sabe que é uma tab do YouTube,\n fecha esse popup e abre de novo."
|
||||
},
|
||||
"success": {
|
||||
"message": "Sucesso!"
|
||||
},
|
||||
"voted": {
|
||||
"message": "Votado!"
|
||||
},
|
||||
"voteFail": {
|
||||
"message": "Você já votou antes."
|
||||
},
|
||||
"serverDown": {
|
||||
"message": "Parece que o servidor caiu. Contate o desenvolvedor o quanto antes."
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "Um erro de conexão aconteceu: Código: "
|
||||
},
|
||||
"wantToSubmit": {
|
||||
"message": "Quer enviar os segmentos para o vídeo de ID"
|
||||
},
|
||||
"leftTimes": {
|
||||
"message": "Parece que você esqueceu de enviar alguns segmentos. Volta pra página para enviar eles (não foram deletados)."
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
|
||||
chrome.tabs.sendMessage(tabId, {
|
||||
message: 'update',
|
||||
message: 'update',
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -33,8 +33,8 @@ chrome.runtime.onMessage.addListener(function (request, sender, callback) {
|
|||
case "alertPrevious":
|
||||
chrome.notifications.create("stillThere" + Math.random(), {
|
||||
type: "basic",
|
||||
title: "Do you want to submit the sponsor times for video id " + request.previousVideoID + "?",
|
||||
message: "You seem to have left some sponsor times unsubmitted. Go back to that page to submit them (they are not deleted).",
|
||||
title: chrome.i18n.getMessage("wantToSubmit") + request.previousVideoID + "?",
|
||||
message: chrome.i18n.getMessage("leftTimes"),
|
||||
iconUrl: "./icons/LogoSponsorBlocker256px.png"
|
||||
});
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
}
|
||||
|
||||
.sponsorSkipNotice {
|
||||
min-width: 280px;
|
||||
min-width: 300px;
|
||||
background-color: rgba(28, 28, 28, 0.9);
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
|
|
38
content.js
38
content.js
|
@ -10,9 +10,6 @@ var sponsorVideoID = null;
|
|||
//these are sponsors that have been downvoted
|
||||
var hiddenSponsorTimes = [];
|
||||
|
||||
//the time this video is starting at when first played, if not zero
|
||||
var youtubeVideoStartTime = null;
|
||||
|
||||
//the video
|
||||
var v;
|
||||
|
||||
|
@ -259,9 +256,6 @@ function videoIDChange(id) {
|
|||
|
||||
resetValues();
|
||||
|
||||
//see if there is a video start time
|
||||
youtubeVideoStartTime = getYouTubeVideoStartTime(document.URL);
|
||||
|
||||
sponsorsLookup(id);
|
||||
|
||||
//make sure everything is properly added
|
||||
|
@ -288,6 +282,8 @@ function videoIDChange(id) {
|
|||
//see if this data should be saved in the sponsorTimesSubmitting variable
|
||||
if (sponsorTimes != undefined && sponsorTimes.length > 0) {
|
||||
sponsorTimesSubmitting = sponsorTimes;
|
||||
|
||||
updatePreviewBar();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -383,7 +379,21 @@ function sponsorsLookup(id) {
|
|||
}
|
||||
|
||||
function updatePreviewBar() {
|
||||
previewBar.set(sponsorTimes, [], v.duration);
|
||||
let localSponsorTimes = sponsorTimes;
|
||||
if (localSponsorTimes == null) localSponsorTimes = [];
|
||||
|
||||
let allSponsorTimes = localSponsorTimes.concat(sponsorTimesSubmitting);
|
||||
|
||||
//create an array of the sponsor types
|
||||
let types = [];
|
||||
for (let i = 0; i < localSponsorTimes.length; i++) {
|
||||
types.push("sponsor");
|
||||
}
|
||||
for (let i = 0; i < sponsorTimesSubmitting.length; i++) {
|
||||
types.push("previewSponsor");
|
||||
}
|
||||
|
||||
previewBar.set(allSponsorTimes, types, v.duration);
|
||||
|
||||
//update last video id
|
||||
lastPreviewBarUpdate = getYouTubeVideoID(document.URL);
|
||||
|
@ -468,7 +478,7 @@ function checkSponsorTime(sponsorTimes, index, openNotice) {
|
|||
lastTime = v.currentTime - 0.0001;
|
||||
}
|
||||
|
||||
if (checkIfTimeToSkip(v.currentTime, sponsorTimes[index][0]) && !hiddenSponsorTimes.includes(index)) {
|
||||
if (checkIfTimeToSkip(v.currentTime, sponsorTimes[index][0], sponsorTimes[index][1]) && !hiddenSponsorTimes.includes(index)) {
|
||||
//skip it
|
||||
skipToTime(v, index, sponsorTimes, openNotice);
|
||||
|
||||
|
@ -479,13 +489,13 @@ function checkSponsorTime(sponsorTimes, index, openNotice) {
|
|||
return false;
|
||||
}
|
||||
|
||||
function checkIfTimeToSkip(currentVideoTime, startTime) {
|
||||
function checkIfTimeToSkip(currentVideoTime, startTime, endTime) {
|
||||
//If the sponsor time is in between these times, skip it
|
||||
//Checks if the last time skipped to is not too close to now, to make sure not to get too many
|
||||
// sponsor times in a row (from one troll)
|
||||
//the last term makes 0 second start times possible only if the video is not setup to start at a different time from zero
|
||||
return (Math.abs(currentVideoTime - startTime) < 3 && startTime >= lastTime && startTime <= currentVideoTime) ||
|
||||
(lastTime == -1 && startTime == 0 && youtubeVideoStartTime == null)
|
||||
(lastTime == -1 && startTime == 0 && currentVideoTime < endTime)
|
||||
}
|
||||
|
||||
//skip fromt he start time to the end time for a certain index sponsor time
|
||||
|
@ -615,6 +625,8 @@ function updateSponsorTimesSubmitting() {
|
|||
//see if this data should be saved in the sponsorTimesSubmitting variable
|
||||
if (sponsorTimes != undefined) {
|
||||
sponsorTimesSubmitting = sponsorTimes;
|
||||
|
||||
updatePreviewBar();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -841,6 +853,8 @@ function clearSponsorTimes() {
|
|||
//clear sponsor times submitting
|
||||
sponsorTimesSubmitting = [];
|
||||
|
||||
updatePreviewBar();
|
||||
|
||||
//set buttons to be correct
|
||||
changeStartSponsorButton(true, false);
|
||||
}
|
||||
|
@ -931,8 +945,8 @@ function submitSponsorTimes() {
|
|||
let sponsorTimes = result[sponsorTimeKey];
|
||||
|
||||
if (sponsorTimes != undefined && sponsorTimes.length > 0) {
|
||||
let confirmMessage = "Are you sure you want to submit this?\n\n" + getSponsorTimesMessage(sponsorTimes);
|
||||
confirmMessage += "\n\nTo edit or delete values, click the info button or open the extension popup by clicking the extension icon in the top right corner."
|
||||
let confirmMessage = chrome.i18n.getMessage("submitCheck") + "\n\n" + getSponsorTimesMessage(sponsorTimes);
|
||||
confirmMessage += "\n\n" + chrome.i18n.getMessage("confirmMSG");
|
||||
if(!confirm(confirmMessage)) return;
|
||||
|
||||
sendSubmitMessage();
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "__MSG_fullName__",
|
||||
"short_name": "__MSG_Name__",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.2",
|
||||
"default_locale": "en",
|
||||
"description": "__MSG_Description__",
|
||||
"content_scripts": [
|
||||
|
|
15
utils.js
15
utils.js
|
@ -19,7 +19,7 @@ function getYouTubeVideoID(url) {
|
|||
urlObject = new URL(url);
|
||||
} catch (e) {
|
||||
console.error("[SB] Unable to parse URL: " + url);
|
||||
return false
|
||||
return false;
|
||||
}
|
||||
|
||||
//Check if valid hostname
|
||||
|
@ -37,15 +37,4 @@ function getYouTubeVideoID(url) {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//returns the start time of the video if there was one specified (ex. ?t=5s)
|
||||
function getYouTubeVideoStartTime(url) {
|
||||
let searchParams = new URL(url).searchParams;
|
||||
let startTime = searchParams.get("t");
|
||||
if (startTime == null) {
|
||||
startTime = searchParams.get("time_continue");
|
||||
}
|
||||
|
||||
return startTime;
|
||||
}
|
||||
}
|
|
@ -13,6 +13,10 @@ let barTypes = {
|
|||
"sponsor": {
|
||||
color: "#00d400",
|
||||
opacity: "0.5"
|
||||
},
|
||||
"previewSponsor": {
|
||||
color: "#0000d4",
|
||||
opacity: "0.5"
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -359,6 +359,9 @@ class SkipNotice {
|
|||
if (notice != null) {
|
||||
notice.remove();
|
||||
}
|
||||
|
||||
//remove setInterval
|
||||
if (this.countdownInterval != -1) clearInterval(this.countdownInterval);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue