Files
I2P_in_Private_Browsing_Mod…/host.js

179 lines
5.1 KiB
JavaScript
Raw Normal View History

2019-11-23 18:41:18 -05:00
function proxyHost(url) {
2021-10-30 10:08:09 -04:00
let hostname = "";
if (url.indexOf("://") > -1) {
hostname = url.split("/")[2];
2019-11-23 18:41:18 -05:00
} else {
2021-10-30 10:08:09 -04:00
hostname = url.split("/")[0];
2019-11-23 18:41:18 -05:00
}
2021-10-30 10:08:09 -04:00
if (hostname == "proxy.i2p") {
2019-11-23 18:41:18 -05:00
return true;
}
if (
2021-10-30 10:08:09 -04:00
hostname == "c6lilt4cr5x7jifxridpkesf2zgfwqfchtp6laihr4pdqomq25iq.b32.i2p"
) {
2020-03-17 22:53:41 -04:00
return true;
}
2019-11-23 18:41:18 -05:00
return false;
}
function localHost(url) {
2021-10-30 10:08:09 -04:00
let hostname = "";
if (url.indexOf("://") > -1) {
hostname = url.split("/")[2];
2019-11-23 18:41:18 -05:00
} else {
2021-10-30 10:08:09 -04:00
hostname = url.split("/")[0];
2019-11-23 18:41:18 -05:00
}
2021-10-30 10:08:09 -04:00
hostname = hostname.split(":")[0];
console.log("(urlcheck) hostname localhost", hostname);
console.log("(urlcheck) url localhost", url);
if (hostname === "127.0.0.1") {
if (url.indexOf(":8084") != -1) return "blog";
if (url.indexOf(":7669") != -1) return "irc";
} else if (hostname === "localhost") {
if (url.indexOf(":8084") != -1) return "blog";
if (url.indexOf(":7669") != -1) return "irc";
2019-11-23 18:41:18 -05:00
}
return false;
}
function extensionHost(url) {
var prefix = browser.runtime
2021-10-30 10:08:09 -04:00
.getURL("")
.replace("moz-extension://", "")
.replace("/", "");
2020-01-14 10:26:35 -05:00
if (url.originUrl !== undefined) {
var originUrl = url.originUrl
2021-10-30 10:08:09 -04:00
.replace("moz-extension://", "")
.replace("/", "");
// console.log("(urlcheck) Extension application path", originUrl);
// console.log("(urlcheck) Extension application path", prefix);
var res = originUrl.startsWith(prefix);
// console.log("(urlcheck) Extension application path", res);
2020-01-14 10:26:35 -05:00
if (res) return res;
}
if (url.documentUrl !== undefined) {
// console.log("(urlcheck) Extension application path", originUrl);
// console.log("(urlcheck) Extension application path", prefix);
var res = originUrl.startsWith(prefix);
// console.log("(urlcheck) Extension application path", res);
2020-01-14 10:26:35 -05:00
if (res) return res;
}
2021-10-30 10:08:09 -04:00
console.log("(urlcheck) Extension application path", url);
}
2019-11-23 18:41:18 -05:00
function i2pHostName(url) {
2021-10-30 10:08:09 -04:00
let hostname = "";
console.log("(hosts)", url);
2020-12-21 18:11:30 -05:00
let u = new URL(url);
2021-10-30 10:08:09 -04:00
if (u.host.endsWith(".i2p")) {
2020-12-21 18:11:30 -05:00
hostname = u.host;
2021-10-30 10:08:09 -04:00
} else if (url.includes("=")) {
if (url.includes(".i2p")) {
lsit = url.split("=");
2020-12-05 23:43:37 -05:00
for (let item in lsit) {
2020-12-05 23:53:24 -05:00
var items = lsit[item].split(`\ % `); //"\%")
for (let p in items) {
2021-10-30 10:08:09 -04:00
if (items[p].includes(".i2p")) {
hostname = items[p].replace("3D", 1);
2020-12-05 23:43:37 -05:00
}
2020-12-05 23:53:24 -05:00
break;
2020-12-05 23:43:37 -05:00
}
2021-10-30 10:08:09 -04:00
if (hostname != "") {
2020-12-05 23:53:24 -05:00
break;
2020-12-05 23:43:37 -05:00
}
}
}
2021-10-30 10:08:09 -04:00
} else if (url.indexOf("://") > -1) {
hostname = url.split("/")[2];
2019-11-23 18:41:18 -05:00
} else {
2021-10-30 10:08:09 -04:00
hostname = url.split("/")[0];
2019-11-23 18:41:18 -05:00
}
2021-10-30 10:08:09 -04:00
console.log("(hosts) scrub", hostname);
2019-11-23 18:41:18 -05:00
return hostname;
}
function i2pHost(url) {
let hostname = i2pHostName(url);
let postname = hostname.split(":")[0]
return postname.endsWith(".i2p");
2019-11-23 18:41:18 -05:00
}
function routerHost(url) {
// console.log("(urlcheck) HOST URL CHECK");
2021-10-30 10:08:09 -04:00
let hostname = "";
let path = "";
2019-11-23 18:41:18 -05:00
function pathcheck(str) {
if (str != undefined) {
2021-10-30 10:08:09 -04:00
let final = str.split("/")[0];
if (final === "i2ptunnelmgr" || final === "i2ptunnel") {
console.log("(urlcheck) Tunnel application path", final);
return "i2ptunnelmgr";
2020-01-13 20:12:09 -05:00
} else if (
2021-10-30 10:08:09 -04:00
final === "i2psnark" ||
final === "torrents" ||
final.startsWith("transmission") ||
final.startsWith("tracker") ||
url.includes(":7662")
2020-01-13 20:12:09 -05:00
) {
2021-10-30 10:08:09 -04:00
console.log("(urlcheck) Torrent application path", final);
return "i2psnark";
} else if (final === "webmail" || final === "susimail") {
if (!url.includes(".css")) {
console.log("(urlcheck) Mail application path", final);
return "webmail";
}
2021-10-30 10:08:09 -04:00
} else if (final.startsWith("MuWire")) {
if (!url.includes(".png")) {
console.log("(urlcheck) MuWire application path", final);
return "muwire";
}
2021-10-30 10:08:09 -04:00
} else if (final.startsWith("i2pbote")) {
if (!url.includes(".png")) {
console.log("(urlcheck) I2PBote application path", final);
return "i2pbote";
2020-03-24 19:46:37 -04:00
}
2019-11-23 18:41:18 -05:00
} else if (
2021-10-30 10:08:09 -04:00
final === "home" ||
final === "console" ||
final === "dns" ||
final === "susidns" ||
final.startsWith("susidns") ||
final === "sitemap" ||
final.startsWith("config")
2019-11-23 18:41:18 -05:00
) {
2021-10-30 10:08:09 -04:00
console.log("(urlcheck) Console application path", final);
return "routerconsole";
2019-11-23 18:41:18 -05:00
}
}
return true;
}
2021-10-30 10:08:09 -04:00
if (url.indexOf("://") > -1) {
hostname = url.split("/")[2];
let prefix = url.substr(0, url.indexOf("://") + 3);
path = url.replace(prefix + hostname + "/", "");
2019-11-23 18:41:18 -05:00
} else if (identifyProtocolHandler(url)) {
let newurl = identifyProtocolHandler(url);
return routerHost(newurl);
2019-11-23 18:41:18 -05:00
} else {
2021-10-30 10:08:09 -04:00
hostname = url.split("/")[0];
path = url.replace(hostname + "/", "");
2019-11-23 18:41:18 -05:00
}
2021-10-30 10:08:09 -04:00
if (hostname === control_host + ":" + control_port) {
return pathcheck(path);
2019-11-23 18:41:18 -05:00
}
2021-10-30 10:08:09 -04:00
if (hostname === "localhost" + ":" + control_port) {
return pathcheck(path);
}
2021-10-30 10:08:09 -04:00
if (hostname === "127.0.0.1" + ":" + control_port) {
return pathcheck(path);
}
2021-10-30 10:08:09 -04:00
if (hostname === "localhost" + ":" + 7070) {
return pathcheck(path);
}
2021-10-30 10:08:09 -04:00
if (hostname === "127.0.0.1" + ":" + 7070) {
return pathcheck(path);
}
2019-11-23 18:41:18 -05:00
return false;
}