[1.2] Adding a linter and reformat all code

This commit is contained in:
vermillion-dev
2019-05-30 23:11:40 +02:00
parent 527500a438
commit 86f26a4660
15 changed files with 404 additions and 404 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
*.js text eol=lf

3
.gitignore vendored
View File

@@ -1,3 +1,4 @@
*.zip *.zip
.vscode .vscode
Capture Capture
.eslintrc.json

View File

@@ -22,13 +22,13 @@ var defaults = {
storageSchema: 1 // Increment this when data format changes storageSchema: 1 // Increment this when data format changes
}; };
chrome.runtime.onInstalled.addListener(function(details){ chrome.runtime.onInstalled.addListener(function (details) {
if(details.reason === "install"){ if (details.reason === "install") {
chrome.storage.sync.set(defaults); chrome.storage.sync.set(defaults);
chrome.storage.sync.set({ 'categories': defaults.defaultCategories}); chrome.storage.sync.set({ 'categories': defaults.defaultCategories});
chrome.storage.sync.set({ 'searchSort': defaults.defaultSearchSort}); chrome.storage.sync.set({ 'searchSort': defaults.defaultSearchSort});
chrome.storage.sync.set({ 'searchOrder': defaults.defaultSearchOrder}); chrome.storage.sync.set({ 'searchOrder': defaults.defaultSearchOrder});
} else if(details.reason === "update"){ } else if (details.reason === "update") {
migrateData(); migrateData();
} }
}); });

View File

@@ -1,3 +1,3 @@
var downloadButton = document.querySelector('a.butt'); var downloadButton = document.querySelector('a.butt');
downloadButton.onclick = function(){} downloadButton.onclick = function () {};
downloadButton.removeAttribute('onclick'); downloadButton.removeAttribute('onclick');

View File

@@ -2,14 +2,12 @@
injectScript(chrome.extension.getURL('contentScripts/addTorrent/accessAddTorrent.js'), 'head'); injectScript(chrome.extension.getURL('contentScripts/addTorrent/accessAddTorrent.js'), 'head');
injectLink(chrome.extension.getURL("css/style.css"), 'head'); injectLink(chrome.extension.getURL("css/style.css"), 'head');
/********************************************************************/
/********************************************************************/
/********************************************************************/ /********************************************************************/
var path = window.location.pathname; var path = window.location.pathname;
/* Add an info line to the table */ /* Add an info line to the table */
var tableLines = document.querySelectorAll('table.infos-torrent tbody tr') var tableLines = document.querySelectorAll('table.infos-torrent tbody tr');
var downloadLine = tableLines[1]; var downloadLine = tableLines[1];
var torrentInfo = downloadLine.cloneNode(true); var torrentInfo = downloadLine.cloneNode(true);
torrentInfo.style = "display: none"; torrentInfo.style = "display: none";
@@ -17,90 +15,89 @@ downloadLine.insertAdjacentElement('afterend', torrentInfo);
/* Add third party download button */ /* Add third party download button */
var downloadButton = downloadLine.querySelector('a.butt'); var downloadButton = downloadLine.querySelector('a.butt');
flexButton = document.createElement('a'); var flexButton = document.createElement('a');
flexButton.appendChild(document.createTextNode("Télécharger via discord ")); flexButton.appendChild(document.createTextNode("Télécharger via discord "));
var span = document.createElement('span'); var span = document.createElement('span');
span.className = "ico_download"; span.className = "ico_download";
flexButton.appendChild(span); flexButton.appendChild(span);
flexButton.className = "butt discord" flexButton.className = "butt discord";
flexButton.style = "display: none"; flexButton.style = "display: none";
flexButton.addEventListener('click', addToDiscord); flexButton.addEventListener('click', addToDiscord);
downloadButton.parentElement.appendChild(flexButton); downloadButton.parentElement.appendChild(flexButton);
/* Retrieve torrent data from page*/ /* Retrieve torrent data from page*/
var torrentId = (/.*\/torrent\/.*\/.*\/(\d+)\-/g).exec(window.location.pathname); var torrentId = (/.*\/torrent\/.*\/.*\/(\d+)-/g).exec(window.location.pathname);
if(torrentId){ if (torrentId) {
torrentId = torrentId[1] torrentId = torrentId[1];
} }
var torrentTitle = document.querySelector('div#title h1').textContent.trim().split(".").join(" "); var torrentTitle = document.querySelector('div#title h1').textContent.trim().split(".").join(" ");
torrentYear = (/(19\d{2}|2\d{3})/g).exec(torrentTitle) var torrentYear = (/(19\d{2}|2\d{3})/g).exec(torrentTitle);
if(torrentYear){ if (torrentYear) {
torrentYear = torrentYear[1] torrentYear = torrentYear[1];
} }
if(torrentTitle.includes('1080')) var torrentQuality = '';
if (torrentTitle.includes('1080')) {
torrentQuality = '1080p'; torrentQuality = '1080p';
else if(torrentTitle.includes('720')) } else if (torrentTitle.includes('720')) {
torrentQuality = '720p'; torrentQuality = '720p';
else if(torrentTitle.includes('480')) } else if (torrentTitle.includes('480')) {
torrentQuality = '480p'; torrentQuality = '480p';
}
/* Retrieve credentials from Google Storage*/ /* Retrieve credentials from Google Storage*/
var discordWebhookUrl, discordUserName, categories; var discordWebhookUrl, discordUserName, categories;
chrome.storage.sync.get(['yggToken', 'discordWebhookUrl', 'discordUserName', 'displayDiscord', 'displayAddCategories', 'categories', 'defaultCategories'], function(value){ chrome.storage.sync.get(['yggToken', 'discordWebhookUrl', 'discordUserName', 'displayDiscord', 'displayAddCategories', 'categories', 'defaultCategories'], function (value) {
if(value.yggToken){ if (value.yggToken) {
downloadButton.setAttribute('href', "https://www2.yggtorrent.ch/rss/download?id=" + torrentId + "&passkey=" + value.yggToken); downloadButton.setAttribute('href', "https://www2.yggtorrent.ch/rss/download?id=" + torrentId + "&passkey=" + value.yggToken);
} } else {
else{
var alertYggToken = '<div id="error_ygg_button_alert" class="alert alert-danger" role="alert" style="margin-bottom:0;">Une erreur est survenue, Vérifiez que votre token Ygg soit chargé !</div>'; var alertYggToken = '<div id="error_ygg_button_alert" class="alert alert-danger" role="alert" style="margin-bottom:0;">Une erreur est survenue, Vérifiez que votre token Ygg soit chargé !</div>';
if (document.readyState !== "complete"){ if (document.readyState !== "complete") {
document.addEventListener('readystatechange', function onReadyStateChange() { document.addEventListener('readystatechange', function () {
downloadLine.childNodes[3].innerHTML = alertYggToken; downloadLine.childNodes[3].innerHTML = alertYggToken;
}, false); }, false);
} else { } else {
downloadLine.childNodes[3].innerHTML = alertYggToken; downloadLine.childNodes[3].innerHTML = alertYggToken;
} }
} }
if(value.displayDiscord){ if (value.displayDiscord) {
if(value.discordWebhookUrl){ if (value.discordWebhookUrl) {
discordWebhookUrl = value.discordWebhookUrl; discordWebhookUrl = value.discordWebhookUrl;
} else {
showAlert('error_discord_button_alert');
} }
else{ if (value.discordUserName) {
showAlert('error_discord_button_alert')
}
if(value.discordUserName){
discordUserName = value.discordUserName; discordUserName = value.discordUserName;
} } else {
else{ discordUserName = "BetterYGG - Extension";
discordUserName = "BetterYGG - Extension"
} }
if(value.displayAddCategories){ if (value.displayAddCategories) {
if(value.categories){ if (value.categories) {
categories = value.categories; categories = value.categories;
if(categories.length === 0){ if (categories.length === 0) {
showAlert('error_categories_alert') showAlert('error_categories_alert');
} }
} else {
showAlert('error_categories_alert');
} }
else{ } else {
showAlert('error_categories_alert') if (value.defaultCategories) {
}
}
else {
if(value.defaultCategories){
categories = value.defaultCategories; categories = value.defaultCategories;
} }
} }
/* Retrieve torrent data from page*/ /* Retrieve torrent data from page*/
var torrentType = getTypeFromUrl(categories); var torrentType = getTypeFromUrl(categories);
var torrentEpisode = '', torrentSeason = '', torrentQuality = ''; var torrentEpisode = '', torrentSeason = '';
if(torrentType.season){ if (torrentType.season) {
document.querySelectorAll('a.term').forEach(function(element){ document.querySelectorAll('a.term').forEach(function (element) {
var key = element.innerHTML var key = element.innerHTML;
if(key.includes('Saison')) if (key.includes('Saison')) {
torrentSeason = key.replace('Saison ', ''); torrentSeason = key.replace('Saison ', '');
if(key.includes('Episode')) }
if (key.includes('Episode')) {
torrentEpisode = key.replace('Episode ', ''); torrentEpisode = key.replace('Episode ', '');
}
}); });
} }
@@ -111,7 +108,7 @@ chrome.storage.sync.get(['yggToken', 'discordWebhookUrl', 'discordUserName', 'di
left.childNodes[1].className = 'ico_info-circle'; left.childNodes[1].className = 'ico_info-circle';
var right = torrentInfo.childNodes[3]; var right = torrentInfo.childNodes[3];
/* Add alert banners */ /* Add alert banners */
right.innerHTML = '<div id="valid_form_alert" class="alert alert-success" role="alert" style="display: none">C\'est un succes, le torrent a été envoyé !</div>' right.innerHTML = '<div id="valid_form_alert" class="alert alert-success" role="alert" style="display: none">C\'est un succes, le torrent a été envoyé !</div>';
right.innerHTML += '<div id="error_form_alert" class="alert alert-danger" role="alert" style="display: none">Une erreur est survenue, Vérifiez le formulaire çi dessous.!</div>'; right.innerHTML += '<div id="error_form_alert" class="alert alert-danger" role="alert" style="display: none">Une erreur est survenue, Vérifiez le formulaire çi dessous.!</div>';
right.innerHTML += '<div id="error_discord_button_alert" class="alert alert-danger" role="alert" style="display: none">Une erreur est survenue, Vérifiez que votre url Discord Webhook soit correcte !</div>'; right.innerHTML += '<div id="error_discord_button_alert" class="alert alert-danger" role="alert" style="display: none">Une erreur est survenue, Vérifiez que votre url Discord Webhook soit correcte !</div>';
right.innerHTML += '<div id="error_categories_alert" class="alert alert-danger" role="alert" style="display: none">Une erreur est survenue, La liste des catégories est vide !</div>'; right.innerHTML += '<div id="error_categories_alert" class="alert alert-danger" role="alert" style="display: none">Une erreur est survenue, La liste des catégories est vide !</div>';
@@ -126,8 +123,8 @@ chrome.storage.sync.get(['yggToken', 'discordWebhookUrl', 'discordUserName', 'di
row.className = "row"; row.className = "row";
row.appendChild(getInputCol("Titre", "title", ["error"], "text", torrentTitle, row.appendChild(getInputCol("Titre", "title", ["error"], "text", torrentTitle,
{ {
onInput:function() { onInput: function () {
this.classList.remove('error') this.classList.remove('error');
} }
}) })
); );
@@ -137,4 +134,262 @@ chrome.storage.sync.get(['yggToken', 'discordWebhookUrl', 'discordUserName', 'di
torrentInfo.style.display = ""; torrentInfo.style.display = "";
flexButton.style.display = ""; flexButton.style.display = "";
} }
}); });
/*************/
/* FUNCTIONS */
/*************/
function alert(id) {
document.querySelectorAll('.alert').forEach(function (elem) {
elem.style.display = "none";
});
document.getElementById(id).style.display = "block";
}
function showAlert(id) {
if (document.readyState !== "complete") {
document.addEventListener('readystatechange', function () {
alert(id);
}, false);
} else {
alert(id);
}
}
function addToDiscord() {
if (discordWebhookUrl === undefined) {
showAlert('error_discord_button_alert');
return;
}
var inputs = document.forms['form_info'].querySelectorAll('input, select');
var dict = {};
for (var i = 0; i < inputs.length; i++) {
var input = inputs[i];
if (!input) {
continue;
}
if (input.className.includes('error')) {
showAlert('error_form_alert');
return;
}
dict[input.name] = input.value;
}
var data = {
content: JSON.stringify(dict),
username: discordUserName,
};
var xhr = new XMLHttpRequest();
xhr.open('POST', discordWebhookUrl);
xhr.setRequestHeader('Content-Type', 'multipart/form-data');
xhr.onload = function () {
if (xhr.status === 204) {
showAlert('valid_form_alert');
} else {
showAlert('error_discord_button_alert');
}
};
xhr.send(JSON.stringify(data));
}
/*********************/
/* GET HTML ELEMENTS */
/*********************/
function getInput(name, classes, type, value, attrs = {}) {
var inputNode = document.createElement('input');
inputNode.name = name;
inputNode.className = "form-control " + classes.join(" ");
inputNode.setAttribute("type", type);
for (var key in attrs) {
inputNode.setAttribute(key, attrs[key]);
}
inputNode.value = value;
return inputNode;
}
function getSelect(name, classes, options, selected, attrs = {}) {
var selectNode = document.createElement('select');
selectNode.name = name;
selectNode.className = "form-control " + classes.join(" ");
for (var key in attrs) {
selectNode.setAttribute(key, attrs[key]);
}
for (var index in options) {
var type = options[index];
var option = document.createElement("option");
option.value = type;
option.text = type;
if (type === selected) {
option.setAttribute("selected", "selected");
}
selectNode.appendChild(option);
}
return selectNode;
}
function getFormGroup(input, label, name, size) {
var labelNode = document.createElement('label');
labelNode.className = "control-label";
labelNode.setAttribute("for", name);
labelNode.appendChild(document.createTextNode(label));
var div = document.createElement('div');
div.className = "form-group col-" + size;
div.appendChild(labelNode);
div.appendChild(input);
return div;
}
function getInputCol(label, name, classes, type, value, {size = 12, attrs = {}, onInput = false}) {
var input = getInput(name, classes, type, value, attrs);
if (onInput) {
input.addEventListener("input", onInput);
}
return getFormGroup(input, label, name, size);
}
function getSelectCol(label, name, classes, options, selected, {size = 12, attrs = {}, onInput = false}) {
var select = getSelect(name, classes, options, selected, attrs);
if (onInput) {
select.addEventListener("input", onInput);
}
return getFormGroup(select, label, name, size);
}
function getSecondRow(torrentType, torrentSeason, torrentEpisode, torrentId, torrentYear, torrentQuality, categories) {
var size = 3;
var classes = [];
var onInput = false;
var row = document.createElement('div');
row.className = "row";
if (torrentType.season) {
size = 2;
if (torrentSeason === '') {
classes = ['error'];
}
onInput = function () {
torrentSeason = formatEpisodeSeason(this.value);
this.value = torrentSeason;
if (torrentSeason === "") {
this.className += ' error';
} else {
this.classList.remove('error');
}
};
row.appendChild(getInputCol("Saison", "season", classes, "number", torrentSeason, {size: size, attrs: {"min": "0"}, onInput: onInput}));
classes = [];
onInput = false;
if (torrentEpisode === '') {
classes = ['warning'];
}
onInput = function () {
torrentEpisode = formatEpisodeSeason(this.value);
this.value = torrentEpisode;
if (torrentEpisode === "") {
this.className += ' warning';
} else {
this.classList.remove('warning');
}
};
row.appendChild(getInputCol("Episode", "episode", classes, "number", torrentEpisode, {size: size, attrs: {"min": "0"}, onInput: onInput}));
classes = [];
onInput = false;
var space = document.createElement('div');
space.className = 'col-1';
row.appendChild(space);
row.appendChild(getInputCol("ID", "id", [], "text", torrentId, {size: size}));
row.appendChild(space.cloneNode());
} else {
row.appendChild(getInputCol("ID", "id", [], "text", torrentId, {size: size}));
row.appendChild(getInputCol("Year", "year", ['warning'], "text", torrentYear, {size: size,
onInput: function () {
if (this.value.length !== 4) {
this.classList.remove('warning');
this.classList += ' error';
} else {
this.classList.remove('error');
this.classList.remove('warning');
}
}
})
);
}
row.appendChild(getInputCol("Quality", "quality", [], "text", torrentQuality, {size: size}));
onInput = function () {
torrentType = getTypeFromName(categories, this.options[this.selectedIndex].value);
if (torrentType.name === 'unknown') {
this.className += ' error';
} else {
this.classList.remove('error');
row.replaceWith(getSecondRow(torrentType, torrentSeason, torrentEpisode, torrentId, torrentYear, torrentQuality, categories));
}
};
var categoriesNameList = categories.map(x => x.name);
if (torrentType.name === 'unknown') {
classes = ['error'];
categoriesNameList.push('unknown');
}
row.appendChild(getSelectCol('Types', 'type', classes, categoriesNameList, torrentType.name, {size: size, onInput: onInput}));
classes = [];
onInput = false;
return row;
}
/*********/
/* Utils */
/*********/
/* Ensure the episode and season number is nice */
function formatEpisodeSeason(value) {
if (value > 0 && value <= 9) {
if (value.includes("0")) {
value = "" + parseInt(value);
}
value = "0" + value;
} else {
while (value.substring(0, 1) === "0") {
value = value.substring(1, value.length);
}
}
return value;
}
function getTypeFromUrl(categories) {
for (var i in categories) {
var urls = categories[i].urls;
for (var j in urls) {
if (path.indexOf(urls[j]) !== -1) {
return categories[i];
}
}
}
return {
name: "unknown",
season: false,
urls: ["/"]
};
}
function getTypeFromName(categories, name) {
for (var i in categories) {
if (categories[i].name === name) {
return categories[i];
}
}
return {
name: "unknown",
season: false,
urls: ["/"]
};
}

View File

@@ -1,259 +0,0 @@
/*************/
/* FUNCTIONS */
/*************/
function alert(id){
document.querySelectorAll('.alert').forEach(function(elem){
elem.style.display = "none";
});
document.getElementById(id).style.display = "block";
}
function showAlert(id){
if (document.readyState !== "complete"){
document.addEventListener('readystatechange', function onReadyStateChange() {
alert(id);
}, false);
} else {
alert(id);
}
}
function addToDiscord() {
if(discordWebhookUrl === undefined){
showAlert('error_discord_button_alert')
return;
}
var inputs = document.forms['form_info'].querySelectorAll('input, select');
var dict = {}
for(var i = 0; i < inputs.length; i++){
input = inputs[i]
if(!input){
continue;
}
if(input.className.includes('error')){
showAlert('error_form_alert');
return;
}
dict[input.name] = input.value;
}
data = {
content: JSON.stringify(dict),
username: discordUserName,
}
xhr = new XMLHttpRequest();
xhr.open('POST', discordWebhookUrl);
xhr.setRequestHeader('Content-Type', 'multipart/form-data');
xhr.onload = function() {
if (xhr.status === 204) {
showAlert('valid_form_alert');
}
else{
showAlert('error_discord_button_alert');
}
};
xhr.send(JSON.stringify(data));
}
/*********************/
/* GET HTML ELEMENTS */
/*********************/
function getInput(name, classes, type, value, attrs = {}) {
var inputNode = document.createElement('input');
inputNode.name = name;
inputNode.className = "form-control " + classes.join(" ");
inputNode.setAttribute("type", type);
for (var key in attrs) {
inputNode.setAttribute(key, attrs[key]);
}
inputNode.value = value;
return inputNode;
}
function getSelect(name, classes, options, selected, attrs = {}){
var selectNode = document.createElement('select');
selectNode.name = name;
selectNode.className = "form-control " + classes.join(" ");
for (var key in attrs) {
selectNode.setAttribute(key, attrs[key]);
}
for (var index in options){
var type = options[index];
var option = document.createElement("option");
option.value = type;
option.text = type;
if (type === selected)
option.setAttribute("selected", "selected");
selectNode.appendChild(option);
}
return selectNode;
}
function getFormGroup(input, label, name, size) {
var labelNode = document.createElement('label');
labelNode.className = "control-label";
labelNode.setAttribute("for", name);
labelNode.appendChild(document.createTextNode(label));
var div = document.createElement('div');
div.className = "form-group col-" + size;
div.appendChild(labelNode);
div.appendChild(input);
return div;
}
function getInputCol(label, name, classes, type, value, { size = 12, attrs = {}, onInput = false }){
var input = getInput(name, classes, type, value, attrs);
if(onInput){
input.addEventListener("input", onInput);
}
return getFormGroup(input, label, name, size);
}
function getSelectCol(label, name, classes, options, selected, { size = 12, attrs = {}, onInput = false }){
var select = getSelect(name, classes, options, selected, attrs);
if(onInput){
select.addEventListener("input", onInput);
}
return getFormGroup(select, label, name, size);
}
function getSecondRow(torrentType, torrentSeason, torrentEpisode, torrentId, torrentYear, torrentQuality, categories){
var size = 3;
var classes = [];
var onInput = false;
var row = document.createElement('div');
row.className = "row";
if(torrentType.season){
size = 2;
if(torrentSeason == ''){
classes = ['error'];
}
onInput = function() {
torrentSeason = formatEpisodeSeason(this.value);
this.value = torrentSeason;
if(torrentSeason === "")
this.className += ' error';
else
this.classList.remove('error');
}
row.appendChild(getInputCol("Saison", "season", classes, "number", torrentSeason, { size:size, attrs:{"min": "0"}, onInput:onInput }));
classes = [];
onInput = false;
if(torrentEpisode == ''){
classes = ['warning'];
}
onInput = function() {
torrentEpisode = formatEpisodeSeason(this.value);
this.value = torrentEpisode;
if(torrentEpisode === "")
this.className += ' warning';
else
this.classList.remove('warning');
}
row.appendChild(getInputCol("Episode", "episode", classes, "number", torrentEpisode,{ size:size, attrs:{"min": "0"}, onInput:onInput }));
classes = [];
onInput = false;
var space = document.createElement('div');
space.className = 'col-1';
row.appendChild(space);
row.appendChild(getInputCol("ID", "id", [], "text", torrentId, { size:size }));
row.appendChild(space.cloneNode());
}
else{
row.appendChild(getInputCol("ID", "id", [], "text", torrentId, { size:size }));
row.appendChild(getInputCol("Year", "year", ['warning'], "text", torrentYear, { size:size,
onInput:function() {
if(this.value.length != 4){
this.classList.remove('warning')
this.classList += ' error'
}
else{
this.classList.remove('error')
this.classList.remove('warning')
}
}
})
);
}
row.appendChild(getInputCol("Quality", "quality", [], "text", torrentQuality, { size:size }));
onInput = function() {
torrentType = getTypeFromName(categories, this.options[this.selectedIndex].value)
if(torrentType.name === 'unknown'){
this.className += ' error';
}
else{
this.classList.remove('error');
row.replaceWith(getSecondRow(torrentType, torrentSeason, torrentEpisode, torrentId, torrentYear, torrentQuality, categories))
}
}
categoriesNameList = categories.map(x => x.name);
if(torrentType.name === 'unknown'){
classes = ['error'];
categoriesNameList.push('unknown');
}
row.appendChild(getSelectCol('Types', 'type', classes, categoriesNameList, torrentType.name, { size:size, onInput:onInput }));
classes = []
onInput = false;
return row
}
/*********/
/* Utils */
/*********/
/* Ensure the episode and season number is nice */
function formatEpisodeSeason(value){
if(value > 0 && value <= 9){
if(value.includes("0")){
value = "" + parseInt(value);
}
value = "0" + value;
}
else{
while(value.substring(0,1) === "0"){
value = value.substring(1, value.length);
}
}
return value;
}
function getTypeFromUrl(categories) {
for (var i in categories) {
var urls = categories[i].urls
for(var j in urls){
if(path.indexOf(urls[j]) != -1){
return categories[i];
}
}
}
return {
name: "unknown",
season: false,
urls: ["/"]
};
};
function getTypeFromName(categories, name) {
for (var i in categories) {
if (categories[i].name === name){
return categories[i];
}
}
return {
name: "unknown",
season: false,
urls: ["/"]
};
};

View File

@@ -1,6 +1,6 @@
hideSidebar(); hideSidebar();
$(window).on('resize', function(){ $(window).on('resize', function () {
hideSidebar(); hideSidebar();
}); });

View File

@@ -2,17 +2,18 @@
injectScript(chrome.extension.getURL('/contentScripts/allPages/accessAllPages.js'), 'head'); injectScript(chrome.extension.getURL('/contentScripts/allPages/accessAllPages.js'), 'head');
/* disable annoying fuckn popup */ /* disable annoying fuckn popup */
popup = document.querySelector('div.ad-alert-wrapper'); var popup = document.querySelector('div.ad-alert-wrapper');
if(popup && popup.style.display !== "none") if (popup && popup.style.display !== "none") {
document.querySelector('button.ad-alert-message-continue-btn').click() document.querySelector('button.ad-alert-message-continue-btn').click();
}
/* Retrieve credentials from Google Storage*/ /* Retrieve credentials from Google Storage*/
chrome.storage.sync.get(['searchOrder', 'searchSort'], function(value){ chrome.storage.sync.get(['searchOrder', 'searchSort'], function (value) {
/* Update links to order and filter them with our values */ /* Update links to order and filter them with our values */
if(value.searchOrder && value.searchSort){ if (value.searchOrder && value.searchSort) {
var elements = document.querySelectorAll('a[href$="do=search"]'); var elements = document.querySelectorAll('a[href$="do=search"]');
for (var i = 0; i < elements.length; i++) { for (var i = 0; i < elements.length; i++) {
elements[i].href += '&order=' + value.searchOrder +'&sort=' + value.searchSort; elements[i].href += '&order=' + value.searchOrder + '&sort=' + value.searchSort;
} }
} }
}); });

View File

@@ -1,2 +1,2 @@
var iframeYoutube = document.querySelector('iframe[src="https://www.youtube.com/embed/8dmTl4xAefk"]'); var iframeYoutube = document.querySelector('iframe[src="https://www.youtube.com/embed/8dmTl4xAefk"]');
iframeYoutube.remove(); iframeYoutube.remove();

View File

@@ -1,22 +1,22 @@
/* Inject scripts don't forget to add them to web_accessible_resources in manifest */ /* Inject scripts don't forget to add them to web_accessible_resources in manifest */
injectScript(chrome.extension.getURL('contentScripts/search/accessSearch.js'), 'head'); injectScript(chrome.extension.getURL('contentScripts/search/accessSearch.js'), 'head');
function addDlButton(idx, torrentId, yggToken) { /********************************************************************/
var cell = table.rows[idx].cells[2];
var downloadButton = document.createElement('a')
var downloadIcon = document.createElement('img')
downloadIcon.setAttribute('src', chrome.extension.getURL("img/download.png"));
downloadButton.appendChild(downloadIcon);
downloadButton.setAttribute('href', "https://www2.yggtorrent.ch/rss/download?id=" + torrentId + "&passkey=" + yggToken);
cell.appendChild(downloadButton);
}
chrome.storage.sync.get(['yggToken'], function(value){ /* Retrieve credentials from Google Storage*/
if(value.yggToken){ chrome.storage.sync.get(['yggToken'], function (value) {
for (var i = 0; i < table.rows.length; i++) { if (value.yggToken) {
var torrentId = table.rows[i].cells[2].children[0].getAttribute('target') /* Add a download button on each torrent line */
addDlButton(i, torrentId, value.yggToken); var table = document.getElementsByTagName('tbody')[1];
} for (var i = 0; i < table.rows.length; i++) {
var torrentId = table.rows[i].cells[2].children[0].getAttribute('target')
var cell = table.rows[i].cells[2];
var downloadButton = document.createElement('a')
var downloadIcon = document.createElement('img')
downloadIcon.setAttribute('src', chrome.extension.getURL("img/download.png"));
downloadButton.appendChild(downloadIcon);
downloadButton.setAttribute('href', "https://www2.yggtorrent.ch/rss/download?id=" + torrentId + "&passkey=" + value.yggToken);
cell.appendChild(downloadButton);
} }
}); }
} });

View File

@@ -47,4 +47,4 @@ select.warning:focus{
select.form-control { select.form-control {
height: auto !important; height: auto !important;
} }

View File

@@ -1,3 +1,4 @@
/* eslint-disable no-unused-vars */
function injectScript(file, node) { function injectScript(file, node) {
var th = document.getElementsByTagName(node)[0]; var th = document.getElementsByTagName(node)[0];
var s = document.createElement('script'); var s = document.createElement('script');
@@ -13,4 +14,4 @@ function injectLink(file, node) {
link.type = "text/css"; link.type = "text/css";
link.rel = "stylesheet"; link.rel = "stylesheet";
th.appendChild(link); th.appendChild(link);
} }

View File

@@ -30,7 +30,7 @@
{ {
"matches": ["https://*.yggtorrent.ch/torrent/*"], "matches": ["https://*.yggtorrent.ch/torrent/*"],
"run_at": "document_idle", "run_at": "document_idle",
"js": ["js/utilsFunctions.js", "contentScripts/addTorrent/functions.js", "contentScripts/addTorrent/addTorrent.js"] "js": ["js/utilsFunctions.js", "contentScripts/addTorrent/addTorrent.js"]
}, },
{ {
"matches": ["https://*.yggtorrent.ch/"], "matches": ["https://*.yggtorrent.ch/"],

View File

@@ -99,4 +99,4 @@
<script src="options.js"></script> <script src="options.js"></script>
</body> </body>
</html> </html>

View File

@@ -8,7 +8,7 @@ var storedValues = [
'categories', 'categories',
'searchSort', 'searchSort',
'searchOrder' 'searchOrder'
] ];
var yggToken = document.getElementById('yggToken'); var yggToken = document.getElementById('yggToken');
var discordWebhookUrl = document.getElementById('discordWebhookUrl'); var discordWebhookUrl = document.getElementById('discordWebhookUrl');
@@ -21,103 +21,103 @@ var displayAddCategoriesSection = document.getElementById('displayAddCategoriesS
var addCategories = document.getElementById('addCategoriesSection'); var addCategories = document.getElementById('addCategoriesSection');
var categoriesTable = document.getElementById('categoriesTable').children[1]; var categoriesTable = document.getElementById('categoriesTable').children[1];
var buttonSaveCategories = document.getElementById('saveCategories'); var buttonSaveCategories = document.getElementById('saveCategories');
var buttonRestoreCategories = document.getElementById('restoreCategories'); var buttonRestoreCategories = document.getElementById('restoreCategories');
var defaultCategories = []; var defaultCategories = [];
var categories = []; var categories = [];
var searchSort = document.getElementById('searchSort'); var searchSort = document.getElementById('searchSort');
var searchOrder = document.getElementById('searchOrder'); var searchOrder = document.getElementById('searchOrder');
chrome.storage.sync.get(storedValues, function(value){ chrome.storage.sync.get(storedValues, function (value) {
if(value.yggToken) if (value.yggToken) {
yggToken.value = value.yggToken; yggToken.value = value.yggToken;
if(value.discordWebhookUrl) }
if (value.discordWebhookUrl) {
discordWebhookUrl.value = value.discordWebhookUrl; discordWebhookUrl.value = value.discordWebhookUrl;
if(value.discordUserName) }
if (value.discordUserName) {
discordUserName.value = value.discordUserName; discordUserName.value = value.discordUserName;
if(value.displayDiscord){ }
if (value.displayDiscord) {
displayDiscord.checked = value.displayDiscord; displayDiscord.checked = value.displayDiscord;
if (displayDiscord.checked){ if (displayDiscord.checked) {
discordIntegration.style.display = "block"; discordIntegration.style.display = "block";
displayAddCategoriesSection.style.display = "block"; displayAddCategoriesSection.style.display = "block";
if (displayAddCategories.checked){ if (displayAddCategories.checked) {
addCategories.style.display = "block"; addCategories.style.display = "block";
} }
} } else {
else {
discordIntegration.style.display = "none"; discordIntegration.style.display = "none";
displayAddCategoriesSection.style.display = "none"; displayAddCategoriesSection.style.display = "none";
addCategories.style.display = "none"; addCategories.style.display = "none";
} }
if(value.displayAddCategories){ if (value.displayAddCategories) {
displayAddCategories.checked = value.displayAddCategories; displayAddCategories.checked = value.displayAddCategories;
if (displayAddCategories.checked){ if (displayAddCategories.checked) {
addCategories.style.display = "block"; addCategories.style.display = "block";
} } else {
else {
addCategories.style.display = "none"; addCategories.style.display = "none";
} }
} }
} }
if(value.categories){ if (value.categories) {
categories = value.categories; categories = value.categories;
makeCategoriesTable(categories); makeCategoriesTable(categories);
} }
if(value.defaultCategories){ if (value.defaultCategories) {
defaultCategories = value.defaultCategories; defaultCategories = value.defaultCategories;
buttonSaveCategories.addEventListener('click', saveCategories) buttonSaveCategories.addEventListener('click', saveCategories);
buttonRestoreCategories.addEventListener('click', restoreDefaultCategories) buttonRestoreCategories.addEventListener('click', restoreDefaultCategories);
} }
if(value.searchSort){ if (value.searchSort) {
document.querySelector('#searchSort option[value=' + value.searchSort + ']').selected = "selected"; document.querySelector('#searchSort option[value=' + value.searchSort + ']').selected = "selected";
} }
if(value.searchOrder){ if (value.searchOrder) {
document.querySelector('#searchOrder option[value=' + value.searchOrder + ']').selected = "selected"; document.querySelector('#searchOrder option[value=' + value.searchOrder + ']').selected = "selected";
} }
}); });
function addToStorage(name, value) { function addToStorage(name, value) {
chrome.storage.sync.set({ [name]: value }); chrome.storage.sync.set({[name]: value});
} }
document.addEventListener('DOMContentLoaded', function () { document.addEventListener('DOMContentLoaded', function () {
yggToken.addEventListener('input', function(){ yggToken.addEventListener('input', function () {
addToStorage('yggToken', this.value); addToStorage('yggToken', this.value);
}); });
discordWebhookUrl.addEventListener('input', function(){ discordWebhookUrl.addEventListener('input', function () {
addToStorage('discordWebhookUrl', this.value); addToStorage('discordWebhookUrl', this.value);
}); });
discordUserName.addEventListener('input', function(){ discordUserName.addEventListener('input', function () {
addToStorage('discordUserName', this.value); addToStorage('discordUserName', this.value);
}); });
displayDiscord.addEventListener('input', function(){ displayDiscord.addEventListener('input', function () {
addToStorage('displayDiscord', this.checked); addToStorage('displayDiscord', this.checked);
if (this.checked){ if (this.checked) {
discordIntegration.style.display = "block"; discordIntegration.style.display = "block";
displayAddCategoriesSection.style.display = "block"; displayAddCategoriesSection.style.display = "block";
if (displayAddCategories.checked){ if (displayAddCategories.checked) {
addCategories.style.display = "block"; addCategories.style.display = "block";
} }
} } else {
else {
discordIntegration.style.display = "none"; discordIntegration.style.display = "none";
displayAddCategoriesSection.style.display = "none"; displayAddCategoriesSection.style.display = "none";
addCategories.style.display = "none"; addCategories.style.display = "none";
} }
}); });
displayAddCategories.addEventListener('input', function(){ displayAddCategories.addEventListener('input', function () {
addToStorage('displayAddCategories', this.checked); addToStorage('displayAddCategories', this.checked);
if (this.checked) if (this.checked) {
addCategories.style.display = "block"; addCategories.style.display = "block";
else { } else {
addCategories.style.display = "none"; addCategories.style.display = "none";
} }
}); });
searchSort.addEventListener('change', function(){ searchSort.addEventListener('change', function () {
addToStorage('searchSort', this.options[this.selectedIndex].value); addToStorage('searchSort', this.options[this.selectedIndex].value);
}); });
searchOrder.addEventListener('change', function(){ searchOrder.addEventListener('change', function () {
addToStorage('searchOrder', this.options[this.selectedIndex].value); addToStorage('searchOrder', this.options[this.selectedIndex].value);
}); });
}); });
@@ -127,20 +127,20 @@ document.addEventListener('DOMContentLoaded', function () {
/***********************/ /***********************/
function makeCategoriesArray() { function makeCategoriesArray() {
lines = Array.from(categoriesTable.children) var lines = Array.from(categoriesTable.children);
var categoriesArray = [] var categoriesArray = [];
for(var i in lines){ for (var i in lines) {
var line = lines[i]; var line = lines[i];
name = line.getElementsByTagName('input').namedItem('name').value; var name = line.getElementsByTagName('input').namedItem('name').value;
season = line.getElementsByTagName('input').namedItem('season').checked; var season = line.getElementsByTagName('input').namedItem('season').checked;
urls = line.getElementsByTagName('textarea').namedItem('urls').value; var urls = line.getElementsByTagName('textarea').namedItem('urls').value;
urlsArray = urls.split('\n').filter(x => x != '') var urlsArray = urls.split('\n').filter(x => x !== '');
if(name != ''){ if (name !== '') {
categoriesArray.push({ categoriesArray.push({
name: name, name: name,
season: season, season: season,
urls: urlsArray urls: urlsArray
}) });
} }
} }
return categoriesArray; return categoriesArray;
@@ -148,18 +148,18 @@ function makeCategoriesArray() {
function makeCategoriesTable(categories) { function makeCategoriesTable(categories) {
var tbody = document.createElement('tbody'); var tbody = document.createElement('tbody');
for (var i in categories){ for (var i in categories) {
var line = categories[i]; var line = categories[i];
var tr = getTr(line.name, line.season, line.urls, "Supprimer", deleteLine); var tr = getTr(line.name, line.season, line.urls, "Supprimer", deleteLine);
tbody.appendChild(tr) tbody.appendChild(tr);
} }
var tr = getTr('', false, [], "Ajouter", addLine); tr = getTr('', false, [], "Ajouter", addLine);
tbody.appendChild(tr) tbody.appendChild(tr);
categoriesTable.parentNode.replaceChild(tbody, categoriesTable) categoriesTable.parentNode.replaceChild(tbody, categoriesTable);
categoriesTable = tbody; categoriesTable = tbody;
} }
function getTr(name, season, urls, buttonText, buttonOnClick){ function getTr(name, season, urls, buttonText, buttonOnClick) {
var tr = document.createElement('tr'); var tr = document.createElement('tr');
var tdName = document.createElement('td'); var tdName = document.createElement('td');
@@ -181,15 +181,15 @@ function getTr(name, season, urls, buttonText, buttonOnClick){
var tdUrls = document.createElement('td'); var tdUrls = document.createElement('td');
var textareaUrls = document.createElement('textarea'); var textareaUrls = document.createElement('textarea');
textareaUrls.name = "urls"; textareaUrls.name = "urls";
textareaUrls.rows="5"; textareaUrls.rows = "5";
textareaUrls.cols="75"; textareaUrls.cols = "75";
textareaUrls.value = urls.join('\n'); textareaUrls.value = urls.join('\n');
tdUrls.appendChild(textareaUrls); tdUrls.appendChild(textareaUrls);
tr.appendChild(tdUrls); tr.appendChild(tdUrls);
var tdTrash = document.createElement('td'); var tdTrash = document.createElement('td');
var button = document.createElement('button'); var button = document.createElement('button');
button.innerText = buttonText button.innerText = buttonText;
button.addEventListener("click", buttonOnClick); button.addEventListener("click", buttonOnClick);
tdTrash.appendChild(button); tdTrash.appendChild(button);
tr.appendChild(tdTrash); tr.appendChild(tdTrash);
@@ -201,26 +201,26 @@ function getTr(name, season, urls, buttonText, buttonOnClick){
/* Events Handlers */ /* Events Handlers */
/*******************/ /*******************/
function addLine(){ function addLine() {
this.innerText = "Supprimer" this.innerText = "Supprimer";
this.removeEventListener("click", addLine); this.removeEventListener("click", addLine);
this.addEventListener("click", deleteLine); this.addEventListener("click", deleteLine);
var tr = getTr('', false, [], "Ajouter", addLine); var tr = getTr('', false, [], "Ajouter", addLine);
categoriesTable.appendChild(tr) categoriesTable.appendChild(tr);
} }
function deleteLine(){ function deleteLine() {
this.parentElement.parentElement.remove() this.parentElement.parentElement.remove();
} }
function saveCategories(){ function saveCategories() {
categories = makeCategoriesArray(); categories = makeCategoriesArray();
addToStorage('categories', categories); addToStorage('categories', categories);
makeCategoriesTable(categories); makeCategoriesTable(categories);
} }
function restoreDefaultCategories(){ function restoreDefaultCategories() {
categories = defaultCategories categories = defaultCategories;
addToStorage('categories', categories); addToStorage('categories', categories);
makeCategoriesTable(categories); makeCategoriesTable(categories);
} }