diff --git a/backgroundScripts/background.js b/backgroundScripts/background.js index bad30fe..e981036 100644 --- a/backgroundScripts/background.js +++ b/backgroundScripts/background.js @@ -17,8 +17,8 @@ var defaults = { "/filmvideo/animation/" ], }], - }, -]; + defaultSearchSort: 'publish_date', + defaultSearchOrder: 'desc', storageSchema: 1 // Increment this when data format changes }; @@ -26,15 +26,21 @@ chrome.runtime.onInstalled.addListener(function(details){ if(details.reason === "install"){ chrome.storage.sync.set(defaults); chrome.storage.sync.set({ 'categories': defaults.defaultCategories}); + chrome.storage.sync.set({ 'searchSort': defaults.defaultSearchSort}); + chrome.storage.sync.set({ 'searchOrder': defaults.defaultSearchOrder}); } else if(details.reason === "update"){ migrateData(); } }); function migrateData() { - if(details.reason == "install"){ - chrome.storage.sync.set({ 'defaultCategories': categories}); - chrome.storage.sync.set({ 'categories': categories}); + // Handle migration from 1.0-1.1 to 1.2 + chrome.storage.sync.get('storageSchema', function (data) { + if (!data) { + chrome.storage.sync.set({ 'searchSort': defaults.defaultSearchSort}); + chrome.storage.sync.set({ 'searchOrder': defaults.defaultSearchOrder}); + } + }); // This pulls stored values, falling back to defaults, if none chrome.storage.sync.get(defaults, function (data) { var migrated = false; @@ -50,7 +56,7 @@ function migrateData() { default: throw new Error(`Unrecognized storage schema ${data.storageSchema}!`); } - } + } chrome.storage.sync.set(defaults); -}); + }); } diff --git a/contentScripts/allPages/allPages.js b/contentScripts/allPages/allPages.js index 6ee3f4a..917aac9 100644 --- a/contentScripts/allPages/allPages.js +++ b/contentScripts/allPages/allPages.js @@ -4,4 +4,15 @@ injectScript(chrome.extension.getURL('/contentScripts/allPages/accessAllPages.js /* disable annoying fuckn popup */ popup = document.querySelector('div.ad-alert-wrapper'); if(popup && popup.style.display !== "none") - document.querySelector('button.ad-alert-message-continue-btn').click() \ No newline at end of file + document.querySelector('button.ad-alert-message-continue-btn').click() + +/* Retrieve credentials from Google Storage*/ +chrome.storage.sync.get(['searchOrder', 'searchSort'], function(value){ + /* Update links to order and filter them with our values */ + if(value.searchOrder && value.searchSort){ + var elements = document.querySelectorAll('a[href$="do=search"]'); + for (var i = 0; i < elements.length; i++) { + elements[i].href += '&order=' + value.searchOrder +'&sort=' + value.searchSort; + } + } +}); diff --git a/options/options.html b/options/options.html index 9526006..28bc105 100644 --- a/options/options.html +++ b/options/options.html @@ -38,6 +38,25 @@ Ygg token: +
  • + Colonne de tri des recherches et catégories: + +
  • +
  • + Ordre du tri des recherches et catégories: + +
  • Afficher le formulaire discord: diff --git a/options/options.js b/options/options.js index f5c8326..1844957 100644 --- a/options/options.js +++ b/options/options.js @@ -1,3 +1,15 @@ +var storedValues = [ + 'yggToken', + 'discordWebhookUrl', + 'discordUserName', + 'displayDiscord', + 'displayAddCategories', + 'defaultCategories', + 'categories', + 'searchSort', + 'searchOrder' +] + var yggToken = document.getElementById('yggToken'); var discordWebhookUrl = document.getElementById('discordWebhookUrl'); var discordUserName = document.getElementById('discordUserName'); @@ -14,7 +26,10 @@ var buttonRestoreCategories = document.getElementById('restoreCategories'); var defaultCategories = []; var categories = []; -chrome.storage.sync.get(['yggToken', 'discordWebhookUrl', 'discordUserName', 'displayDiscord', 'displayAddCategories', 'categories', 'defaultCategories'], function(value){ +var searchSort = document.getElementById('searchSort'); +var searchOrder = document.getElementById('searchOrder'); + +chrome.storage.sync.get(storedValues, function(value){ if(value.yggToken) yggToken.value = value.yggToken; if(value.discordWebhookUrl) @@ -54,6 +69,12 @@ chrome.storage.sync.get(['yggToken', 'discordWebhookUrl', 'discordUserName', 'di buttonSaveCategories.addEventListener('click', saveCategories) buttonRestoreCategories.addEventListener('click', restoreDefaultCategories) } + if(value.searchSort){ + document.querySelector('#searchSort option[value=' + value.searchSort + ']').selected = "selected"; + } + if(value.searchOrder){ + document.querySelector('#searchOrder option[value=' + value.searchOrder + ']').selected = "selected"; + } }); function addToStorage(name, value) { @@ -93,6 +114,12 @@ document.addEventListener('DOMContentLoaded', function () { addCategories.style.display = "none"; } }); + searchSort.addEventListener('change', function(){ + addToStorage('searchSort', this.options[this.selectedIndex].value); + }); + searchOrder.addEventListener('change', function(){ + addToStorage('searchOrder', this.options[this.selectedIndex].value); + }); }); /***********************/