mirror of
https://github.com/anticensority/runet-censorship-bypass.git
synced 2024-11-27 20:03:45 +03:00
Add version links to popup, remove ctx from templates, lint
This commit is contained in:
parent
a850648a4d
commit
879667e704
|
@ -12,6 +12,7 @@ const templatePlugin = (context) => through.obj(function(file, encoding, cb) {
|
|||
const tjson = '.tmpl.json';
|
||||
if (file.path.endsWith(tjson)) {
|
||||
|
||||
const originalPath = file.path;
|
||||
file.path = file.path.replace(new RegExp(`${tjson}$`), '.json');
|
||||
|
||||
if (file.isStream()) {
|
||||
|
@ -24,11 +25,19 @@ const templatePlugin = (context) => through.obj(function(file, encoding, cb) {
|
|||
},
|
||||
});
|
||||
|
||||
const {keys, values} = Object.entries(context).reduce( (acc, [key, value]) => {
|
||||
|
||||
acc.keys.push(key);
|
||||
acc.values.push(value);
|
||||
return acc;
|
||||
|
||||
}, { keys: [], values: [] });
|
||||
try {
|
||||
file.contents = new Buffer(
|
||||
(new Function('ctx', 'return `' + String(file.contents) + '`;'))(stringsContext)
|
||||
(new Function(...keys, 'return `' + String(file.contents) + '`;'))(...values)
|
||||
);
|
||||
} catch(e) {
|
||||
e.message += '\nIN FILE: ' + originalPath;
|
||||
return cb(new PluginError(PluginName, e));
|
||||
}
|
||||
}
|
||||
|
@ -46,23 +55,25 @@ gulp.task('clean', function() {
|
|||
|
||||
});
|
||||
|
||||
const commonContext = {
|
||||
const fullContext = {
|
||||
version: '0.19',
|
||||
nameSuffixEn: '',
|
||||
nameSuffixRu: '',
|
||||
};
|
||||
|
||||
const contextMini = Object.assign({
|
||||
const miniContext = Object.assign({}, fullContext, {
|
||||
nameSuffixEn: ' MINI',
|
||||
nameSuffixRu: ' МИНИ',
|
||||
}, commonContext);
|
||||
});
|
||||
|
||||
gulp.task('_cp-common', ['clean'], function() {
|
||||
|
||||
gulp.src(['./src/extension-common/**/*'])
|
||||
.pipe(templatePlugin(contextMini))
|
||||
.pipe(templatePlugin(miniContext))
|
||||
.pipe(gulp.dest('./build/extension-mini'))
|
||||
|
||||
gulp.src(['./src/extension-common/**/*'])
|
||||
.pipe(templatePlugin(commonContext))
|
||||
.pipe(templatePlugin(fullContext))
|
||||
.pipe(gulp.dest('./build/extension-full'));
|
||||
|
||||
});
|
||||
|
@ -70,7 +81,7 @@ gulp.task('_cp-common', ['clean'], function() {
|
|||
gulp.task('_cp-mini', ['_cp-common'], function() {
|
||||
|
||||
gulp.src(['./src/extension-mini/**/*'])
|
||||
.pipe(templatePlugin(contextMini))
|
||||
.pipe(templatePlugin(miniContext))
|
||||
.pipe(gulp.dest('./build/extension-mini'));
|
||||
|
||||
});
|
||||
|
@ -78,7 +89,7 @@ gulp.task('_cp-mini', ['_cp-common'], function() {
|
|||
gulp.task('_cp-full', ['_cp-common'], function() {
|
||||
|
||||
gulp.src(['./src/extension-full/**/*'])
|
||||
.pipe(templatePlugin(commonContext))
|
||||
.pipe(templatePlugin(fullContext))
|
||||
.pipe(gulp.dest('./build/extension-full'));
|
||||
|
||||
});
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"version": "0.0.19",
|
||||
"description": "Development tools for chromium extension",
|
||||
"scripts": {
|
||||
"lint": "./node_modules/.bin/eslint ./runet-censorship-bypass/extension/**/*.js --ignore-pattern vendor"
|
||||
"lint": "./node_modules/.bin/eslint ./src/**/*.js --ignore-pattern vendor"
|
||||
},
|
||||
"author": "Ilya Ig. Petrov",
|
||||
"license": "GPLv3",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
{
|
||||
|
||||
const IF_DEBUG = true;
|
||||
const IF_DEBUG = false;
|
||||
|
||||
if (!IF_DEBUG) {
|
||||
// I believe logging objects precludes them from being GCed.
|
||||
|
@ -162,6 +162,10 @@
|
|||
|
||||
};
|
||||
|
||||
window.apis = {};
|
||||
window.apis = {
|
||||
version: {
|
||||
ifMini: false,
|
||||
},
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
ifUseSecureProxiesOnly: {
|
||||
dflt: false,
|
||||
label: 'только шифрованная связь с прокси',
|
||||
desc: 'Шифровать соединение до прокси от провайдера. Провайдер всё же сможет видеть адреса (но не содержимое) проксируемых ресурсов из протокола DNS. Опция вряд ли может быть вам полезна, т.к. шифруется не весь трафик, а лишь малая его часть.',
|
||||
desc: 'Шифровать соединение до прокси от провайдера. Провайдер всё же сможет видеть адреса (но не содержимое) проксируемых ресурсов из протокола DNS. Опция вряд ли может быть вам полезна, т.к. шифруется не весь трафик, а лишь разблокируемые ресурсы.',
|
||||
index: 1,
|
||||
},
|
||||
ifProhibitDns: {
|
||||
|
@ -42,7 +42,7 @@
|
|||
ifUseLocalTor: {
|
||||
dflt: false,
|
||||
label: 'использовать СВОЙ локальный TOR',
|
||||
desc: 'Установите <a href="https://ru.wikipedia.org/wiki/Tor">TOR</a> на свой компьютер и используйте его как прокси-сервер. <a href="https://rebrand.ly/ac-tor">ВАЖНО</a>',
|
||||
desc: 'Установите <a href="https://rebrand.ly/ac-tor">TOR</a> на свой компьютер и используйте его как прокси-сервер. <a href="https://rebrand.ly/ac-tor">ВАЖНО</a>',
|
||||
index: 4,
|
||||
},
|
||||
exceptions: {
|
||||
|
@ -323,10 +323,6 @@
|
|||
const hosts = par.map( (ps) => ps.split(/\s+/)[1] );
|
||||
window.utils.fireEvent('ip-to-host-replace-all', hosts, throwIfError);
|
||||
cb(null, null, ...warns);
|
||||
/*window.apis.ipToHost.replaceAllAsync(
|
||||
hosts,
|
||||
(...args) => cb(...args, ...warns)
|
||||
);*/
|
||||
|
||||
}
|
||||
);
|
||||
|
|
|
@ -95,7 +95,6 @@
|
|||
);
|
||||
window.utils.fireEvent('ip-to-host-update-all', throwIfError);
|
||||
cb();
|
||||
//window.apis.ipToHost.updateAllAsync(cb);
|
||||
|
||||
};
|
||||
|
||||
|
@ -176,7 +175,7 @@
|
|||
pacUrls: ['https://antizapret.prostovpn.org/proxy.pac'],
|
||||
},
|
||||
Антицензорити: {
|
||||
label: 'Антицензорити',
|
||||
label: 'Антицензорити (тормозит)',
|
||||
desc: 'Основной PAC-скрипт от автора расширения.' +
|
||||
' Блокировка определятся по доменному имени или IP адресу.' +
|
||||
' Работает на switch-ах. <br/>' +
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
() => chrome.contextMenus.create({
|
||||
id: id,
|
||||
title: title,
|
||||
contexts: ['browser_action']
|
||||
contexts: ['browser_action'],
|
||||
}, timeouted(() => {
|
||||
|
||||
const err = chrome.runtime.lastError;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"extName": {
|
||||
"message": "Runet Censorship Bypass${ctx.nameSuffixEn}"
|
||||
"message": "Runet Censorship Bypass${nameSuffixEn}"
|
||||
},
|
||||
"extDesc": {
|
||||
"message": "Circumvent Russian Internet Censorship: https://rebrand.ly/ac-wiki"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"extName": {
|
||||
"message": "Обход блокировок Рунета${ctx.nameSuffixRu}"
|
||||
"message": "Обход блокировок Рунета${nameSuffixRu}"
|
||||
},
|
||||
"extDesc": {
|
||||
"message": "Обход интернет-цензуры в России: https://rebrand.ly/ac-wiki"
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
<style>
|
||||
:root {
|
||||
--ribbon-color: #4169e1;
|
||||
--blue-bg: dodgerblue;
|
||||
--default-grey: #bfbfbf;
|
||||
max-width: 27em;
|
||||
}
|
||||
|
@ -17,8 +18,18 @@
|
|||
div, section, header, ul, ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
header {
|
||||
margin-bottom: 0.3em
|
||||
}
|
||||
ul, ol {
|
||||
list-style-type: none;
|
||||
}
|
||||
:root.if-options-page ul,
|
||||
:root.if-options-page ol,
|
||||
#list-of-handlers {
|
||||
margin-left: 0.4em;
|
||||
}
|
||||
li, footer {
|
||||
display: block;
|
||||
white-space: nowrap;
|
||||
|
@ -65,10 +76,25 @@
|
|||
|
||||
border-bottom: 1px solid var(--default-grey);
|
||||
}
|
||||
:root.if-options-page .if-not-controlled {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.if-not-controlled a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* MINI VS FULL */
|
||||
|
||||
:root:not(.if-version-mini) .only-for-mini-version {
|
||||
display: none;
|
||||
}
|
||||
:root.if-version-mini .only-for-full-version {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* OPTIONS PAGE */
|
||||
|
||||
:root:not(.if-options-page) .only-for-options-page {
|
||||
display: none;
|
||||
}
|
||||
|
@ -83,7 +109,7 @@
|
|||
}
|
||||
|
||||
section[data-for] {
|
||||
padding: 0.6em 0.5em 1em;
|
||||
padding: 0.6em 0 1em;
|
||||
}
|
||||
:root.if-options-page section[data-for] {
|
||||
padding-bottom: 0.6em;
|
||||
|
@ -121,7 +147,6 @@
|
|||
}
|
||||
.nav-labels {
|
||||
text-align: center;
|
||||
--blue-bg: dodgerblue;
|
||||
}
|
||||
.nav-labels li label {
|
||||
display: inline-block;
|
||||
|
@ -293,7 +318,7 @@
|
|||
border: none;
|
||||
width: 100%;
|
||||
background: inherit;
|
||||
// The two below align '.' (dot) vertically.
|
||||
/* The two below align '.' (dot) vertically. */
|
||||
max-height: var(--exc-hieght) !important;
|
||||
min-height: var(--exc-hieght) !important;
|
||||
}
|
||||
|
@ -321,28 +346,34 @@
|
|||
|
||||
/* CONTROL RAW = BUTTON + LINK */
|
||||
|
||||
.control-row {
|
||||
display: table;
|
||||
.hor-flex {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
}
|
||||
.control-row {
|
||||
margin: 1em 0 1em 0;
|
||||
}
|
||||
.control-row > * {
|
||||
display: table-cell;
|
||||
}
|
||||
.control-row a:nth-child(2) {
|
||||
margin-left: 1em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* STATUS */
|
||||
|
||||
#status {
|
||||
#status-row {
|
||||
padding: 0 0.3em 1em;
|
||||
}
|
||||
#status {
|
||||
display: inline-block;
|
||||
}
|
||||
.other-version {
|
||||
font-size: 1.7em;
|
||||
color: var(--ribbon-color);
|
||||
}
|
||||
.other-version:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<section class="if-not-controlled hor-padded" id="which-extension"></section>
|
||||
|
||||
<input type="radio" name="accordion" class="off" id="acc-pac" checked/>
|
||||
|
@ -350,7 +381,7 @@
|
|||
<input type="radio" name="accordion" class="off" id="acc-mods"/>
|
||||
<input type="radio" name="accordion" class="off" id="acc-ntf"/>
|
||||
|
||||
<section class="nav-labels horizontal-list hidden-for-options-page">
|
||||
<nav class="nav-labels horizontal-list hidden-for-options-page">
|
||||
<ul>
|
||||
<li><label for="acc-pac" class="nav-label">PAC-скрипт</label></li>
|
||||
<li><label for="acc-mods" class="nav-label">Модификаторы</label></li>
|
||||
|
@ -358,12 +389,13 @@
|
|||
<li><label for="acc-ntf" class="nav-label">Уведомления</label></li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</section>
|
||||
</nav>
|
||||
|
||||
<nav class="hor-padded main-nav">
|
||||
|
||||
<section data-for="acc-pac">
|
||||
|
||||
<header class="only-for-options-page">PAC-скрипт:</header>
|
||||
<ul id="list-of-providers">
|
||||
<li><input type="radio" name="pacProvider" id="none" checked> <label for="none">Отключить</label></li>
|
||||
</ul>
|
||||
|
@ -394,7 +426,7 @@
|
|||
<section data-for="acc-mods">
|
||||
|
||||
<ul id="pac-mods">
|
||||
<li class="control-row">
|
||||
<li class="control-row hor-flex">
|
||||
<input type="button" value="Применить" id="apply-mods" disabled/>
|
||||
<a href id="reset-mods" class="link-button">К изначальным!</a>
|
||||
</li>
|
||||
|
@ -403,9 +435,8 @@
|
|||
</section>
|
||||
|
||||
<section data-for="acc-ntf">
|
||||
|
||||
<header>Я ❤️ yведомления:</header>
|
||||
<ul id="list-of-handlers" style="margin-left: 0.4em; margin-top: 0.4em;"></ul>
|
||||
<ul id="list-of-handlers"></ul>
|
||||
|
||||
</section>
|
||||
|
||||
|
@ -414,9 +445,13 @@
|
|||
<hr/>
|
||||
|
||||
<div class="hor-padded">
|
||||
<section class="hor-flex" id="status-row">
|
||||
<div id="status" style="will-change: contents">Загрузка...</div>
|
||||
<a class="only-for-mini-version other-version link-button" title="Полная версия" href="https://rebrand.ly/ac-versions">🏋︎</a>
|
||||
<a class="only-for-full-version other-version link-button" title="Версия для слабых машин" href="https://rebrand.ly/ac-versions">🐌︎</a>
|
||||
</section>
|
||||
|
||||
<footer class="control-row">
|
||||
<footer class="control-row hor-flex">
|
||||
<input type="button" value="Готово" class="close-button">
|
||||
<a href="../troubleshoot/index.html" class="link-button">
|
||||
Проблемы?
|
||||
|
|
|
@ -17,7 +17,7 @@ chrome.runtime.getBackgroundPage( (backgroundPage) =>
|
|||
|
||||
const setStatusTo = (msg) => {
|
||||
|
||||
getStatus().innerHTML = msg || 'Хорошего настроения вам!';
|
||||
getStatus().innerHTML = msg || 'Поддержи <a href="https://2018.navalny.com" class="link-button">Навального</a> и <a href="https://fbk.info" class="link-button">ФБК</a>!';
|
||||
|
||||
};
|
||||
|
||||
|
@ -226,6 +226,12 @@ chrome.runtime.getBackgroundPage( (backgroundPage) =>
|
|||
};
|
||||
}
|
||||
|
||||
// IF MINI
|
||||
|
||||
if (backgroundPage.apis.version.ifMini) {
|
||||
document.documentElement.classList.add('if-version-mini');
|
||||
}
|
||||
|
||||
// IF INSIDE OPTIONS TAB
|
||||
|
||||
const currentTab = await new Promise(
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"name": "__MSG_extName__",
|
||||
"default_locale": "ru",
|
||||
"description": "__MSG_extDesc__",
|
||||
"version": "0.0.${ctx.version}",
|
||||
"version": "0.0.${version}",
|
||||
"icons": {
|
||||
"128": "/icons/default-128.png"
|
||||
},
|
||||
|
@ -36,7 +36,7 @@
|
|||
]
|
||||
},
|
||||
"browser_action": {
|
||||
"default_title": "Этот сайт благословлён ${ctx.version}",
|
||||
"default_title": "Этот сайт одобрен РПЦ | Версия ${version}",
|
||||
"default_popup": "/pages/choose-pac-provider/index.html"
|
||||
},
|
||||
"options_ui": {
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
{
|
||||
|
||||
window.apis.version.ifMini = true;
|
||||
chrome.browserAction.setBadgeText({text: 'M'});
|
||||
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"name": "__MSG_extName__",
|
||||
"default_locale": "ru",
|
||||
"description": "__MSG_extDesc__",
|
||||
"version": "0.0.${ctx.version}",
|
||||
"version": "0.0.${version}",
|
||||
"icons": {
|
||||
"128": "/icons/default-128.png"
|
||||
},
|
||||
|
@ -35,7 +35,7 @@
|
|||
]
|
||||
},
|
||||
"browser_action": {
|
||||
"default_title": "Этот сайт благословлён ${ctx.version}-mini",
|
||||
"default_title": "Этот сайт одобрен РПЦ | Версия ${version}-mini",
|
||||
"default_popup": "/pages/choose-pac-provider/index.html"
|
||||
},
|
||||
"options_ui": {
|
||||
|
|
Loading…
Reference in New Issue
Block a user