mirror of
https://github.com/anticensority/runet-censorship-bypass.git
synced 2024-11-27 03:43:44 +03:00
Add import-export via copy-paste
This commit is contained in:
parent
89e92c28d2
commit
5d715ce693
|
@ -2,7 +2,7 @@
|
|||
<html style="display: none; will-change: contents, display">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Выбор провайдера PAC</title>
|
||||
<title>Настройки</title>
|
||||
<style>
|
||||
:root {
|
||||
--ribbon-color: #4169e1;
|
||||
|
@ -316,13 +316,22 @@
|
|||
}
|
||||
|
||||
/* TAB_3 EXCEPTIONS */
|
||||
#exc-address-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
#exc-address-container > a {
|
||||
border-bottom: 1px solid transparent;
|
||||
margin-left: 0.2em;
|
||||
}
|
||||
#exc-address {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
width: 100%;
|
||||
--exc-hieght: 1.6em;
|
||||
border-bottom: 1px solid var(--ribbon-color) !important;
|
||||
font-size: 1em;
|
||||
border-bottom: 1px solid var(--ribbon-color) !important;
|
||||
}
|
||||
input#exc-editor {
|
||||
border: none;
|
||||
|
@ -454,9 +463,15 @@
|
|||
</section>
|
||||
<section data-for="acc-exc" class="hidden-for-options-page">
|
||||
|
||||
<div>Проксировать указанный сайт?
|
||||
<div id="exc-address">
|
||||
<span>*.</span><input placeholder="navalny.com" list="exc-list" name="browser" id="exc-editor" style=""/><a href="../exceptions/index.html">☰</a></div>
|
||||
<div>Проксировать указанный сайт?</div>
|
||||
<div id="exc-address-container">
|
||||
<div id="exc-address">
|
||||
<span>*.</span><input placeholder="navalny.com" list="exc-list" name="browser" id="exc-editor" style=""/>
|
||||
</div>
|
||||
<a href="../exceptions/index.html" title="импорт-экспорт"><svg
|
||||
class="icon"
|
||||
><use xlink:href="#icon-import-export"></use></svg>
|
||||
</a>
|
||||
</div>
|
||||
<datalist id="exc-list"></datalist>
|
||||
<ol class="horizontal-list" id="exc-radio">
|
||||
|
@ -519,6 +534,19 @@
|
|||
<path d="M27.802 5.197c-2.925-3.194-7.13-5.197-11.803-5.197-8.837 0-16 7.163-16 16h3c0-7.18 5.82-13 13-13 3.844 0 7.298 1.669 9.678 4.322l-4.678 4.678h11v-11l-4.198 4.197z"/>
|
||||
<path d="M29 16c0 7.18-5.82 13-13 13-3.844 0-7.298-1.669-9.678-4.322l4.678-4.678h-11v11l4.197-4.197c2.925 3.194 7.13 5.197 11.803 5.197 8.837 0 16-7.163 16-16h-3z"/>
|
||||
</symbol>
|
||||
<symbol id="icon-import-export" viewBox="0 0 32 32">
|
||||
<title>import-export</title>
|
||||
<g transform="rotate(0 16 16)">
|
||||
<path d="M7 22 h 25 v 4 h -25 v 5 l -7-7 7-7 v5 z"/>
|
||||
<path d="M25 10 h-25 v-4 h 25 v -5 l 7 7 -7 7 z"/>
|
||||
</g>
|
||||
|
||||
<!-- With bars on peaks.
|
||||
<path d="M30 0h2v16h-2v-16z"></path>
|
||||
<path d="M0 16h2v16h-2v-16z"></path>
|
||||
<path d="M10 22 h 22 v 4 h -22 v 5 l -7-7 7-7 v5 z"></path>
|
||||
<path d="M22 10 h-22 v-4 h 22 v -5 l 7 7 -7 7 z"></path-->
|
||||
</symbol>
|
||||
</svg>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,9 +1,19 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<!DOCTYPE html>
|
||||
<html style="display: none; will-change: contents, display">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Исключения</title>
|
||||
<title>Импорт-экспорт исключений</title>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "emoji";
|
||||
src:url("../lib/fonts/emoji.woff") format("woff");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
.emoji {
|
||||
font-family: "emoji";
|
||||
}
|
||||
|
||||
html, body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
@ -15,7 +25,6 @@
|
|||
flex-direction: column;
|
||||
}
|
||||
textarea {
|
||||
display: block;
|
||||
border-width: 1px 0 0 0;
|
||||
padding: 1em;
|
||||
height: 100%;
|
||||
|
@ -24,12 +33,16 @@
|
|||
nav {
|
||||
padding: 0.2em;
|
||||
}
|
||||
#status {
|
||||
padding-left: 1em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<nav>
|
||||
<button>Сохранить в памяти</button>
|
||||
<button>Считать из памяти</button>
|
||||
<button id="load">Загрузить <span class="emoji">⬇</span></button>
|
||||
<button id="save">Сохранить <span class="emoji">⬆</span></button>
|
||||
<span id="status"></span>
|
||||
</nav>
|
||||
<textarea id="editor"></textarea>
|
||||
<script src="./index.js"></script>
|
||||
|
|
|
@ -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 = '<em>ОШИБКА:</em>' + err;
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
editor.oninput = () => (status.innerText = 'Вы держитесь там!');
|
||||
|
||||
document.documentElement.style.display = 'initial';
|
||||
|
||||
})
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue
Block a user