/* distorted.org.uk web proxy configuration */ var DEFAULTS = { 'plain': ['PROXY www-cache.distorted.org.uk:3128', 'DIRECT'], 'tor': ['SOCKS tor.distorted.org.uk:9050'], 'privoxy': ['PROXY tor.distorted.org.uk:8118'] } var mode = 'plain'; var PATTERNS = { 'distorted.org.uk': ['DIRECT'], '*.distorted.org.uk': ['DIRECT'], 'localhost': ['DIRECT'], '127.*': ['DIRECT'], '*.i2p': ['PROXY i2p.distorted.org.uk:4444'], 'p.p': DEFAULTS.privoxy, '*.p.p': DEFAULTS.privoxy, 'thepiratebay.org': DEFAULTS.privoxy, '*.thepiratebay.org': DEFAULTS.privoxy, 'piratebay.org': DEFAULTS.privoxy, '*.piratebay.org': DEFAULTS.privoxy, 'eztv.it': DEFAULTS.privoxy } var MAGIC = { /* http://mode.magic/MODE -- MODE is `plain', `tor' or `privoxy' (works * via tor, and is generally recommended over `tor'. */ 'mode': function (arg) { if (DEFAULTS.hasOwnProperty(arg)) mode = arg; } } function FindProxyForURL(url, host) { var proxies = DEFAULTS[mode]; if (shExpMatch(host, '*.magic')) { var rq = host.substring(0, host.length - 6); var tail = url.match(/^[^:]+:\/\/[^\/]+\/(.*)$/)[1]; MAGIC[rq](tail); return 'DIRECT'; } for (pat in PATTERNS) { if (shExpMatch(host, pat)) { var proxy = PATTERNS[pat]; if (proxy != null) proxies = proxy; break; } } return proxies.join('; '); }