From 5d715ce6930caae5ed5dd0b7829fd625849a7eb0 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Fri, 17 Mar 2017 17:29:23 +0000 Subject: [PATCH] Add import-export via copy-paste --- .../pages/choose-pac-provider/index.html | 40 +++++++++++--- .../pages/exceptions/index.html | 25 ++++++--- .../pages/exceptions/index.js | 53 +++++++++++++++++-- 3 files changed, 102 insertions(+), 16 deletions(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/choose-pac-provider/index.html b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/choose-pac-provider/index.html index 94a92a2..0da0e14 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/choose-pac-provider/index.html +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/choose-pac-provider/index.html @@ -2,7 +2,7 @@ - Выбор провайдера PAC + Настройки diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/exceptions/index.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/exceptions/index.js index 11ef6c9..87d8fca 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/exceptions/index.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/exceptions/index.js @@ -5,20 +5,65 @@ chrome.runtime.getBackgroundPage( (backgroundPage) => window, 'EXC', () => { const editor = document.getElementById('editor'); - const mods = backgroundPage.apis.pacKitchen.getPacMods(); - editor.innerText = `# Комментарии начинаются с # и действуют до конца строки. + const loadBtn = document.getElementById('load'); + const saveBtn = document.getElementById('save'); + const status = document.getElementById('status'); + + loadBtn.onclick = function() { + + const mods = backgroundPage.apis.pacKitchen.getPacMods(); + editor.value = `# Комментарии начинаются с # и действуют до конца строки. +# Комментарии НЕ сохраняются! # Сначала идёт список проксируемых сайтов, -# затем ---- на отдельной строке, +# затем ==== на отдельной строке, # затем исключённые сайты. # ПРОКСИРОВАТЬ: ${mods.included.join('\n')} ------------------------------ +=============================== # НЕ ПРОКСИРОВАТЬ: ${mods.excluded.join('\n')}`; + status.innerText = 'Успешно загружено!'; + + }; + loadBtn.click(); + + saveBtn.onclick = function() { + + let [proxyList, dontProxyList] = editor.value + .trim() + .replace(/#.*/g, '') + .split(/=+/g) + .map( (listStr) => listStr + .trim() + .split(/(?:\s*\r?\n\s*)+/g) + .filter((host) => host) + ) + dontProxyList = dontProxyList || []; + + const exceptions = {}; + proxyList.forEach((host) => (exceptions[host] = true)); + dontProxyList.forEach((host) => (exceptions[host] = false)); + const mods = backgroundPage.apis.pacKitchen.getPacMods(); + mods.exceptions = exceptions; + backgroundPage.apis.pacKitchen.keepCookedNowAsync(mods, (err) => { + if (!err) { + status.innerText = 'Успешно сохранено!'; + loadBtn.click(); + } else { + status.innerText = 'ОШИБКА:' + err; + } + }); + + }; + + editor.oninput = () => (status.innerText = 'Вы держитесь там!'); + + document.documentElement.style.display = 'initial'; + }) );