From 1cb31c79a573c6013c760bba3ca38ff53e33406e Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Sat, 12 Dec 2015 16:54:33 +0500 Subject: [PATCH] pac-setter hits 0.0.0.2: more transparent code --- .../minimalistic-pac-setter/README.md | 11 ++++ .../minimalistic-pac-setter/archive.org.png | Bin 0 -> 79920 bytes .../extnesion/block-informer.js | 54 ++++++++++++++++++ .../{ => extnesion}/icons/rkn-empty.png | Bin .../{ => extnesion}/icons/rkn-warn.png | Bin .../{ => extnesion}/icons/rkn.png | Bin .../{ => extnesion}/manifest.json | 20 +++---- .../sync-pac-script-with-antizapret.js} | 47 +++++++++++---- .../chromium/minimalistic-pac-setter/proxy.js | 29 ---------- 9 files changed, 109 insertions(+), 52 deletions(-) create mode 100755 extensions/chromium/minimalistic-pac-setter/README.md create mode 100755 extensions/chromium/minimalistic-pac-setter/archive.org.png create mode 100755 extensions/chromium/minimalistic-pac-setter/extnesion/block-informer.js rename extensions/chromium/minimalistic-pac-setter/{ => extnesion}/icons/rkn-empty.png (100%) rename extensions/chromium/minimalistic-pac-setter/{ => extnesion}/icons/rkn-warn.png (100%) rename extensions/chromium/minimalistic-pac-setter/{ => extnesion}/icons/rkn.png (100%) rename extensions/chromium/minimalistic-pac-setter/{ => extnesion}/manifest.json (71%) rename extensions/chromium/minimalistic-pac-setter/{install.js => extnesion/sync-pac-script-with-antizapret.js} (55%) delete mode 100755 extensions/chromium/minimalistic-pac-setter/proxy.js diff --git a/extensions/chromium/minimalistic-pac-setter/README.md b/extensions/chromium/minimalistic-pac-setter/README.md new file mode 100755 index 0000000..39ab043 --- /dev/null +++ b/extensions/chromium/minimalistic-pac-setter/README.md @@ -0,0 +1,11 @@ +Обход Интернет-цензуры в России пока что не является нарушением закона. + +Расширение позволяет обходить блокировки РосКомНадзора, давая вам доступ +к библиотекам, энциклопедиям и сайтам оппоцизионного движения в России. + +Проксирует только заблокированные сайты, оставляя нетронутыми все остальные. + +Известные недостатки: ресурсы с динамичным IP, попадающих под блокировку, некорректно проксируются. Непричастные к блокировкам сайты рушатся. + +Неофициальное расширение на базе antizapret.prostovpn.org +Обновляет PAC-скрипт каждые два часа. diff --git a/extensions/chromium/minimalistic-pac-setter/archive.org.png b/extensions/chromium/minimalistic-pac-setter/archive.org.png new file mode 100755 index 0000000000000000000000000000000000000000..0f31e82d652c9303ebbb88612aab03245600da57 GIT binary patch literal 79920 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

0I#Ok@5%LyrII?X>@EqoJO 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 N002ovPDHLkV1msC=@I|{ literal 0 HcmV?d00001 diff --git a/extensions/chromium/minimalistic-pac-setter/extnesion/block-informer.js b/extensions/chromium/minimalistic-pac-setter/extnesion/block-informer.js new file mode 100755 index 0000000..b421605 --- /dev/null +++ b/extensions/chromium/minimalistic-pac-setter/extnesion/block-informer.js @@ -0,0 +1,54 @@ +'use strict'; + +// Shows user PageAction icon if any part of the current site is being blocked and proxied. + + +function getHostname(url) { + var a = document.createElement('a'); + a.href = url; + return a.hostname; +} + +function blockInform(details) { + if (details.tabId !== -1 && details.ip === antizapret.proxyIp) { + + chrome.pageAction.setIcon({ + path: '/icons/rkn-empty.png', + tabId: details.tabId + }); + + chrome.pageAction.getTitle( + { tabId: details.tabId }, + result => { + + if (!/\n/.test(result)) + result = 'Разблокированы:'; + + var hostname = getHostname(details.url).trim(); + + var ifListed = result.split(/\r?\n/g).some( + line => line.trim() === hostname + ); + + if (!ifListed) + chrome.pageAction.setTitle({ + title: result +'\n'+ hostname, + tabId: details.tabId + }); + } + ); + + chrome.pageAction.show(details.tabId); + + } +} + +chrome.webRequest.onCompleted.addListener( + blockInform, + { urls: [''] } +); + +chrome.webRequest.onErrorOccurred.addListener( + blockInform, + { urls: [''] } +); diff --git a/extensions/chromium/minimalistic-pac-setter/icons/rkn-empty.png b/extensions/chromium/minimalistic-pac-setter/extnesion/icons/rkn-empty.png similarity index 100% rename from extensions/chromium/minimalistic-pac-setter/icons/rkn-empty.png rename to extensions/chromium/minimalistic-pac-setter/extnesion/icons/rkn-empty.png diff --git a/extensions/chromium/minimalistic-pac-setter/icons/rkn-warn.png b/extensions/chromium/minimalistic-pac-setter/extnesion/icons/rkn-warn.png similarity index 100% rename from extensions/chromium/minimalistic-pac-setter/icons/rkn-warn.png rename to extensions/chromium/minimalistic-pac-setter/extnesion/icons/rkn-warn.png diff --git a/extensions/chromium/minimalistic-pac-setter/icons/rkn.png b/extensions/chromium/minimalistic-pac-setter/extnesion/icons/rkn.png similarity index 100% rename from extensions/chromium/minimalistic-pac-setter/icons/rkn.png rename to extensions/chromium/minimalistic-pac-setter/extnesion/icons/rkn.png diff --git a/extensions/chromium/minimalistic-pac-setter/manifest.json b/extensions/chromium/minimalistic-pac-setter/extnesion/manifest.json similarity index 71% rename from extensions/chromium/minimalistic-pac-setter/manifest.json rename to extensions/chromium/minimalistic-pac-setter/extnesion/manifest.json index 307268f..a55a662 100755 --- a/extensions/chromium/minimalistic-pac-setter/manifest.json +++ b/extensions/chromium/minimalistic-pac-setter/extnesion/manifest.json @@ -3,23 +3,21 @@ "name": "Антизапрет", "description": "Безопасный Интернет с возможностью отказаться", - "version": "0.0.0.1", + "version": "0.0.0.2", + "icons": { + "128": "/icons/rkn-empty.png" + }, + "author": "ilyaigpetrov@gmail.com", + "homepage_url": "https://github.com/ilyaigpetrov/anti-censorship-russia", "permissions": [ "proxy", "webRequest", "alarms", - "" + "" ], - "icons": { - "128": "/icons/rkn-empty.png" - }, "background": { - "scripts": ["install.js", "proxy.js"] + "scripts": ["sync-pac-script-with-antizapret.js", "block-informer.js"] }, - "page_action": {}, - - "author": "ilyaigpetrov@gmail.com", - "homepage_url": "https://github.com/ilyaigpetrov/anti-censorship-russia", - "short_name": "Антизапрет" + "page_action": {} } diff --git a/extensions/chromium/minimalistic-pac-setter/install.js b/extensions/chromium/minimalistic-pac-setter/extnesion/sync-pac-script-with-antizapret.js similarity index 55% rename from extensions/chromium/minimalistic-pac-setter/install.js rename to extensions/chromium/minimalistic-pac-setter/extnesion/sync-pac-script-with-antizapret.js index 02180ad..13b6e24 100755 --- a/extensions/chromium/minimalistic-pac-setter/install.js +++ b/extensions/chromium/minimalistic-pac-setter/extnesion/sync-pac-script-with-antizapret.js @@ -1,5 +1,12 @@ 'use strict'; +/* + Task 1. Gets IP for host proxy.antizapret.prostovpn.org with dns-lg.com. + This IP is used in block-informer to inform user when proxy is ON. + Task 2. Downloads PAC proxy script from Antizapret and sets it in Chromium settings. + Task 3. Schedules tasks 1 & 2 for every 2 hours. +*/ + var antizapret = { pacUrl: 'http://antizapret.prostovpn.org/proxy.pac', proxyHost: 'proxy.antizapret.prostovpn.org', @@ -20,16 +27,27 @@ function httpGet(url, cb) { req.send(); } -function UpdatePac() { - - httpGet( - 'http://www.dns-lg.com/google1/'+antizapret.proxyHost+'/A', - (err, res) => { - antizapret.proxyIp = JSON.parse(res).answer[0].rdata; - } +function getIpForHost(host, cb) { + httpGet( + 'http://www.dns-lg.com/google1/'+host+'/A', + cb ); +} - httpGet( +function updateAntizapretProxyIp() { + getIpForHost( + antizapret.proxyHost, + (err, res) => { + if (err) + console.log(err) + else + antizapret.proxyIp = JSON.parse(res).answer[0].rdata; + } + ); +} + +function setPacScriptFromAntizapret() { + httpGet( antizapret.pacUrl, (err, res) => { @@ -47,8 +65,12 @@ function UpdatePac() { }); } - ); + ); +} +function syncWithAntizapret() { + updateAntizapretProxyIp(); + setPacScriptFromAntizapret(); } chrome.runtime.onInstalled.addListener( details => { @@ -56,14 +78,15 @@ chrome.runtime.onInstalled.addListener( details => { case 'install': case 'update': - UpdatePac(); + syncWithAntizapret(); var reason = 'Периодичное обновление PAC-скрипта Антизапрет'; chrome.alarms.onAlarm.addListener( alarm => { - if (alarm.name === reason) - UpdatePac(); + if (alarm.name === reason) { + syncWithAntizapret(); + } } ); diff --git a/extensions/chromium/minimalistic-pac-setter/proxy.js b/extensions/chromium/minimalistic-pac-setter/proxy.js deleted file mode 100755 index b53cfb7..0000000 --- a/extensions/chromium/minimalistic-pac-setter/proxy.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -function blockInform(details) { - if (details.tabId !== -1 && details.ip === antizapret.proxyIp) { - - chrome.pageAction.setIcon({ - path: '/icons/rkn-empty.png', - tabId: details.tabId - }); - - chrome.pageAction.setTitle({ - title: 'Сайт блокирован!', - tabId: details.tabId - }); - - chrome.pageAction.show(details.tabId); - - } -} - -chrome.webRequest.onCompleted.addListener( - blockInform, - { urls: [''] } -); - -chrome.webRequest.onErrorOccurred.addListener( - blockInform, - { urls: [''] } -);