add/correct defaults for all options

This commit is contained in:
idk
2020-01-14 21:40:02 -05:00
parent c4b320e8f4
commit 4f7a226574
5 changed files with 402 additions and 84 deletions

View File

@@ -1,4 +1,3 @@
var password = "itoopie";
var hello = "hello i2pcontrol";
function makeid(length) {
@@ -12,7 +11,12 @@ function makeid(length) {
return result;
}
function send(message, control_host = "127.0.0.1", control_port = "7657") {
function send(
message,
control_host = "127.0.0.1",
control_port = "7657",
control_path = "jsonrpc"
) {
async function postData(url = "", data = {}) {
// Default options are marked with *
let requestBody = JSON.stringify(data);
@@ -34,30 +38,40 @@ function send(message, control_host = "127.0.0.1", control_port = "7657") {
}
return postData(
"http://" + control_host + ":" + control_port + "/jsonrpc/",
"http://" + control_host + ":" + control_port + "/" + control_path,
message
);
}
function authenticate(
password,
password = "itoopie",
control_host = "127.0.0.1",
control_port = "7657"
control_port = "7657",
control_path = "jsonrpc"
) {
var json = new Object();
json["id"] = makeid(6);
json["jsonrpc"] = "2.0";
json["method"] = "Authenticate";
json["params"] = new Object();
json["params"]["API"] = 1;
json["params"]["Password"] = password;
return send(json);
let store = browser.storage.local.get("rpc_pass");
if (store != undefined) {
console.log("Stored password found");
password = store;
}
function auth(got) {
var json = new Object();
json["id"] = makeid(6);
json["jsonrpc"] = "2.0";
json["method"] = "Authenticate";
json["params"] = new Object();
json["params"]["API"] = 1;
json["params"]["Password"] = password;
return send(json);
}
store.then(auth);
}
async function GetToken(
password,
control_host = "127.0.0.1",
control_port = "7657"
control_port = "7657",
control_path = "jsonrpc"
) {
let me = authenticate(password);
return await me.then(gettoken);
@@ -72,7 +86,12 @@ function Done(output) {
return output;
}
function Echo(message, control_host = "127.0.0.1", control_port = "7657") {
function Echo(
message,
control_host = "127.0.0.1",
control_port = "7657",
control_path = "jsonrpc"
) {
function echo(token) {
var json = new Object();
json["id"] = makeid(6);
@@ -92,17 +111,23 @@ function UpdateEchoElementByID(
Query,
ID,
control_host = "127.0.0.1",
control_port = "7657"
control_port = "7657",
control_path = "jsonrpc"
) {
function updateelement(update) {
//console.log("(i2pcontrol)", update);
document.getElementById(ID).innerText = update;
}
let net = Echo(Query, control_host, control_port);
let net = Echo(Query, control_host, control_port, control_path);
net.then(updateleement);
}
function GetRate(Query, control_host = "127.0.0.1", control_port = "7657") {
function GetRate(
Query,
control_host = "127.0.0.1",
control_port = "7657",
control_path = "jsonrpc"
) {
function getrate(token) {
var json = new Object();
json["id"] = makeid(6);
@@ -123,17 +148,23 @@ function UpdateGetRateElementByID(
Query,
ID,
control_host = "127.0.0.1",
control_port = "7657"
control_port = "7657",
control_path = "jsonrpc"
) {
function updateelement(update) {
//console.log("(i2pcontrol)", update);
document.getElementById(ID).innerText = update;
}
let net = GetRate(Query, control_host, control_port);
let net = GetRate(Query, control_host, control_port, control_path);
net.then(updateleement);
}
function I2PControl(Query, control_host = "127.0.0.1", control_port = "7657") {
function I2PControl(
Query,
control_host = "127.0.0.1",
control_port = "7657",
control_path = "jsonrpc"
) {
function i2pcontrol(token) {
var json = new Object();
json["id"] = makeid(6);
@@ -153,17 +184,23 @@ function UpdateI2PControlElementByID(
Query,
ID,
control_host = "127.0.0.1",
control_port = "7657"
control_port = "7657",
control_path = "jsonrpc"
) {
function updateelement(update) {
//console.log("(i2pcontrol)", update);
document.getElementById(ID).innerText = update;
}
let net = I2PControl(Query, control_host, control_port);
let net = I2PControl(Query, control_host, control_port, control_path);
net.then(updateleement);
}
function RouterInfo(Query, control_host = "127.0.0.1", control_port = "7657") {
function RouterInfo(
Query,
control_host = "127.0.0.1",
control_port = "7657",
control_path = "jsonrpc"
) {
function routerinfo(token) {
var json = new Object();
json["id"] = makeid(6);
@@ -183,7 +220,8 @@ function UpdateRouterInfoElementByID(
Query,
ID,
control_host = "127.0.0.1",
control_port = "7657"
control_port = "7657",
control_path = "jsonrpc"
) {
function updateelement(update) {
/*console.log(
@@ -194,14 +232,15 @@ function UpdateRouterInfoElementByID(
);*/
document.getElementById(ID).innerText = update.result[Query];
}
let net = RouterInfo(Query, control_host, control_port);
let net = RouterInfo(Query, control_host, control_port, control_path);
net.then(updateelement);
}
function RouterManager(
Query,
control_host = "127.0.0.1",
control_port = "7657"
control_port = "7657",
control_path = "jsonrpc"
) {
function routermanager(token) {
var json = new Object();
@@ -222,20 +261,22 @@ function UpdateRouterManagerElementByID(
Query,
ID,
control_host = "127.0.0.1",
control_port = "7657"
control_port = "7657",
control_path = "jsonrpc"
) {
function updateelement(update) {
//console.log("(i2pcontrol)", update);
document.getElementById(ID).innerText = update;
}
let net = RouterManage(Query, control_host, control_port);
let net = RouterManage(Query, control_host, control_port, control_path);
net.then(updateleement);
}
function NetworkSetting(
Query,
control_host = "127.0.0.1",
control_port = "7657"
control_port = "7657",
control_path = "jsonrpc"
) {
function networksetting(token) {
var json = new Object();
@@ -256,13 +297,14 @@ function UpdateNetworkSettingElementByID(
Query,
ID,
control_host = "127.0.0.1",
control_port = "7657"
control_port = "7657",
control_path = "jsonrpc"
) {
function updateelement(update) {
//console.log("(i2pcontrol)", update);
document.getElementById(ID).innerText = update;
}
let net = NetworkSetting(Query, control_host, control_port);
let net = NetworkSetting(Query, control_host, control_port, control_path);
net.then(updateleement);
}

View File

@@ -37,27 +37,33 @@
</section>-->
<section class="scheme-options control-options">
<div class="title">
Router Console Options
</div>
<div>
<div class="title">
Router Console Options
</div>
<p id="controlHelpText">Configure your router console options here.</p>
<label id="controlPortText">Console Host:</label> <input data="controlhost" id="controlhost" type="text" value="127.0.0.1">
<br>
<label id="controlHostText">Console Port:</label> <input data="controlport" id="controlport" type="text" value="7657">
<p id="controlHelpText">Configure your router console options here.</p>
<label id="controlPortText">Console Host:</label> <input data="controlhost" id="controlhost" type="text" value="127.0.0.1">
<br>
<label id="controlHostText">Console Port:</label> <input data="controlport" id="controlport" type="text" value="7657">
</div>
</section>
<section class="scheme-options control-options">
<div class="title">
I2PControl RPC Client Options
</div>
<div>
<div class="title">
I2PControl RPC Client Options
</div>
<p id="rpcHelpText">Configure your I2PControl options here.</p>
<label id="rpcPortText">Control Host:</label> <input data="rpchost" id="rpchost" type="text" value="127.0.0.1">
<br>
<label id="rpcHostText">Control Port:</label> <input data="rpcport" id="rpcport" type="text" value="7657">
<br>
<label id="rpcPathText">Control Path:</label> <input data="rpcpath" id="rpcpath" type="text" value="jsonrpc">
<p id="rpcHelpText">Configure your I2PControl options here.</p>
<label id="rpcPortText">Control Host:</label> <input data="rpchost" id="rpchost" type="text" value="127.0.0.1">
<br>
<label id="rpcHostText">Control Port:</label> <input data="rpcport" id="rpcport" type="text" value="7657">
<br>
<label id="rpcPathText">Control Path:</label> <input data="rpcpath" id="rpcpath" type="text" value="jsonrpc">
<br>
<label id="rpcPassText">Control Password:</label> <input data="rpcpass" id="rpcpass" type="text" value="itoopie">
</div>
</section>
<section class="scheme-options control-options">
@@ -72,6 +78,8 @@
<label id="btRpcHostText">Torrent RPC Port:</label> <input data="btrpcport" id="btrpcport" type="text" value="7657">
<br>
<label id="btRpcPathText">Torrent RPC Path:</label> <input data="btrpcpath" id="btrpcpath" type="text" value="transmission/rpc">
<br>
<label id="rpcPassText">Torrent RPC Password:</label> <input data="btrpcpass" id="btrpcpass" type="text" value="itoopie">
</div>
</section>
<input id="save-button" type="button" value="Save preferences">

View File

@@ -78,6 +78,78 @@ function getControlPort() {
return control_port;
}
function getRPCHost() {
rpc_host = document.getElementById("rpchost").value;
console.log("(options)Got i2pcontrol rpc host:", rpc_host);
if (rpc_host == undefined) {
return "127.0.0.1";
}
return rpc_host;
}
function getRPCPort() {
rpc_port = document.getElementById("rpcport").value;
console.log("(options)Got i2pcontrol rpc port:", rpc_port);
if (rpc_port == undefined) {
return "7657";
}
return rpc_port;
}
function getRPCPath() {
rpc_path = document.getElementById("rpcpath").value;
console.log("(options)Got i2pcontrol rpc path:", rpc_path);
if (rpc_path == undefined) {
return "jsonrpc";
}
return rpc_path;
}
function getRPCPass() {
rpc_pass = document.getElementById("rpcpass").value;
console.log("(options)Got i2pcontrol rpc password:");
if (rpc_pass == undefined) {
return "itoopie";
}
return rpc_pass;
}
function getBTRPCHost() {
bt_rpc_host = document.getElementById("btrpchost").value;
console.log("(options)Got torrent rpc host:", bt_rpc_host);
if (bt_rpc_host == undefined) {
return "127.0.0.1";
}
return bt_rpc_host;
}
function getBTRPCPort() {
bt_rpc_port = document.getElementById("btrpcport").value;
console.log("(options)Got torrent rpc port:", bt_rpc_port);
if (bt_rpc_port == undefined) {
return "7657";
}
return bt_rpc_port;
}
function getBTRPCPath() {
bt_rpc_path = document.getElementById("btrpcpath").value;
console.log("(options)Got torrent rpc path:", bt_rpc_path);
if (bt_rpc_path == undefined) {
return "transmission/rpc";
}
return bt_rpc_path;
}
function getBTRPCPass() {
bt_rpc_pass = document.getElementById("btrpcpass").value;
console.log("(options)Got torrent rpc password:");
if (bt_rpc_pass == undefined) {
return "itoopie";
}
return bt_rpc_pass;
}
function checkStoredSettings(storedSettings) {
function gotProxyInfo(info) {
let defaultSettings = {};
@@ -93,27 +165,57 @@ function checkStoredSettings(storedSettings) {
if (!storedSettings["proxy_host"]) {
if (host == "") defaultSettings["proxy_host"] = "127.0.0.1";
else defaultSettings["proxy_host"] = host;
} else {
defaultSettings["proxy_host"] = storedSettings["proxy_host"];
}
} else defaultSettings["proxy_host"] = storedSettings["proxy_host"];
if (!storedSettings["proxy_port"]) {
if (port == undefined) defaultSettings["proxy_port"] = 4444;
else if (port == 7644) defaultSettings["proxy_port"] = port;
else defaultSettings["proxy_port"] = 4444;
} else {
defaultSettings["proxy_port"] = storedSettings.proxy_port;
}
} else defaultSettings["proxy_port"] = storedSettings.proxy_port;
if (!storedSettings["control_host"]) {
if (host == "") defaultSettings["control_host"] = "127.0.0.1";
else defaultSettings["control_host"] = host;
} else {
defaultSettings["control_host"] = storedSettings.control_host;
}
} else defaultSettings["control_host"] = storedSettings.control_host;
if (!storedSettings["control_port"]) {
defaultSettings["control_port"] = 7657;
} else {
defaultSettings["control_port"] = storedSettings.control_port;
}
} else defaultSettings["control_port"] = storedSettings.control_port;
if (!storedSettings["rpc_host"]) {
if (host == "") defaultSettings["rpc_host"] = "127.0.0.1";
else defaultSettings["rpc_host"] = host;
} else defaultSettings["rpc_host"] = storedSettings.rpc_host;
if (!storedSettings["rpc_port"]) {
defaultSettings["rpc_port"] = 7657;
} else defaultSettings["rpc_port"] = storedSettings.rpc_port;
if (!storedSettings["rpc_path"]) {
defaultSettings["rpc_path"] = "jsonrpc";
} else defaultSettings["rpc_path"] = storedSettings.rpc_path;
if (!storedSettings["rpc_pass"]) {
defaultSettings["rpc_pass"] = "itoopie";
} else defaultSettings["rpc_pass"] = storedSettings.rpc_pass;
if (!storedSettings["bt_rpc_host"]) {
if (host == "") defaultSettings["bt_rpc_host"] = "127.0.0.1";
else defaultSettings["bt_rpc_host"] = host;
} else defaultSettings["bt_rpc_host"] = storedSettings.bt_rpc_host;
if (!storedSettings["bt_rpc_port"]) {
defaultSettings["bt_rpc_port"] = 7657;
} else defaultSettings["bt_rpc_port"] = storedSettings.bt_rpc_port;
if (!storedSettings["bt_rpc_path"]) {
defaultSettings["bt_rpc_path"] = "transmission/rpc";
} else defaultSettings["bt_rpc_path"] = storedSettings.bt_rpc_path;
if (!storedSettings["bt_rpc_pass"]) {
defaultSettings["bt_rpc_pass"] = "transmission";
} else defaultSettings["bt_rpc_pass"] = storedSettings.bt_rpc_pass;
console.log("(options)(browserinfo) NATIVE PROXYSETTINGS", info.value);
console.log(
"(options)",
@@ -139,27 +241,57 @@ function checkAndroidStoredSettings(storedSettings) {
if (!storedSettings["proxy_host"]) {
if (host == "") defaultSettings["proxy_host"] = "127.0.0.1";
else defaultSettings["proxy_host"] = host;
} else {
defaultSettings["proxy_host"] = storedSettings["proxy_host"];
}
} else defaultSettings["proxy_host"] = storedSettings["proxy_host"];
if (!storedSettings["proxy_port"]) {
if (port == undefined) defaultSettings["proxy_port"] = 4444;
else if (port == 7644) defaultSettings["proxy_port"] = port;
else defaultSettings["proxy_port"] = 4444;
} else {
defaultSettings["proxy_port"] = storedSettings.proxy_port;
}
} else defaultSettings["proxy_port"] = storedSettings.proxy_port;
if (!storedSettings["control_host"]) {
if (host == "") defaultSettings["control_host"] = "127.0.0.1";
else defaultSettings["control_host"] = host;
} else {
defaultSettings["control_host"] = storedSettings.control_host;
}
} else defaultSettings["control_host"] = storedSettings.control_host;
if (!storedSettings["control_port"]) {
defaultSettings["control_port"] = 7657;
} else {
defaultSettings["control_port"] = storedSettings.control_port;
}
} else defaultSettings["control_port"] = storedSettings.control_port;
if (!storedSettings["rpc_host"]) {
if (host == "") defaultSettings["rpc_host"] = "127.0.0.1";
else defaultSettings["rpc_host"] = host;
} else defaultSettings["rpc_host"] = storedSettings.rpc_host;
if (!storedSettings["rpc_port"]) {
defaultSettings["rpc_port"] = 7657;
} else defaultSettings["rpc_port"] = storedSettings.rpc_port;
if (!storedSettings["rpc_path"]) {
defaultSettings["rpc_path"] = "jsonrpc";
} else defaultSettings["rpc_path"] = storedSettings.rpc_path;
if (!storedSettings["rpc_pass"]) {
defaultSettings["rpc_pass"] = "itoopie";
} else defaultSettings["rpc_pass"] = storedSettings.rpc_pass;
if (!storedSettings["bt_rpc_host"]) {
if (host == "") defaultSettings["bt_rpc_host"] = "127.0.0.1";
else defaultSettings["bt_rpc_host"] = host;
} else defaultSettings["bt_rpc_host"] = storedSettings.bt_rpc_host;
if (!storedSettings["bt_rpc_port"]) {
defaultSettings["bt_rpc_port"] = 7657;
} else defaultSettings["bt_rpc_port"] = storedSettings.bt_rpc_port;
if (!storedSettings["bt_rpc_path"]) {
defaultSettings["bt_rpc_path"] = "transmission/rpc";
} else defaultSettings["bt_rpc_path"] = storedSettings.bt_rpc_path;
if (!storedSettings["bt_rpc_pass"]) {
defaultSettings["bt_rpc_pass"] = "transmission";
} else defaultSettings["bt_rpc_pass"] = storedSettings.bt_rpc_pass;
console.log("(options)(browserinfo) NATIVE PROXYSETTINGS", info.value);
console.log(
"(options)",
@@ -183,35 +315,89 @@ function storeSettings() {
let proxy_port = getPort();
let control_host = getControlHost();
let control_port = getControlPort();
let rpc_host = getRPCHost();
let rpc_port = getRPCPort();
let rpc_path = getRPCPath();
let rpc_pass = getRPCPass();
let bt_rpc_host = getBTRPCHost();
let bt_rpc_port = getBTRPCPort();
let bt_rpc_path = getBTRPCPath();
let bt_rpc_pass = getBTRPCPass();
chrome.storage.local.set({
proxy_scheme,
proxy_host,
proxy_port,
control_host,
control_port
control_port,
rpc_host,
rpc_port,
rpc_path,
rpc_pass,
bt_rpc_host,
bt_rpc_port,
bt_rpc_path,
bt_rpc_pass
});
}
function updateUI(restoredSettings) {
const selectList = document.querySelector("#proxy_scheme");
selectList.value = restoredSettings.proxy_scheme;
console.log("(options)showing proxy scheme:", selectList.value);
if (selectList == undefined) selectList.value = restoredSettings.proxy_scheme;
//console.log("(options)showing proxy scheme:", selectList.value);
const hostitem = document.getElementById("host");
hostitem.value = restoredSettings.proxy_host;
console.log("(options)showing proxy host:", hostitem.value);
if (hostitem == undefined) hostitem.value = restoredSettings.proxy_host;
//console.log("(options)showing proxy host:", hostitem.value);
const portitem = document.getElementById("port");
portitem.value = restoredSettings.proxy_port;
console.log("(options)showing proxy port:", portitem.value);
if (portitem == undefined) portitem.value = restoredSettings.proxy_port;
//console.log("(options)showing proxy port:", portitem.value);
const controlhostitem = document.getElementById("controlhost");
controlhostitem.value = restoredSettings.control_host;
console.log("(options)showing control host:", controlhostitem.value);
if (controlhostitem == undefined)
controlhostitem.value = restoredSettings.control_host;
//console.log("(options)showing control host:", controlhostitem.value);
const controlportitem = document.getElementById("controlport");
controlportitem.value = restoredSettings.control_port;
console.log("(options)showing control port:", controlportitem.value);
if (controlportitem == undefined)
controlportitem.value = restoredSettings.control_port;
//console.log("(options)showing control port:", controlportitem.value);
const rpchostitem = document.getElementById("rpchost");
if (rpchostitem == undefined) rpchostitem.value = restoredSettings.rpc_host;
//console.log("(options)showing rpc host:", rpchostitem.value);
const rpcportitem = document.getElementById("rpcport");
if (rpcportitem == undefined) rpcportitem.value = restoredSettings.rpc_port;
//console.log("(options)showing rpc port:", rpcportitem.value);
const rpcpathitem = document.getElementById("rpcpath");
if (rpcpathitem == undefined) rpcpathitem.value = restoredSettings.rpc_path;
//console.log("(options)showing rpc path:", rpcpathitem.value);
const rpcpassitem = document.getElementById("rpcpass");
if (rpcpassitem == undefined) rpcpassitem.value = restoredSettings.rpc_pass;
//console.log("(options)showing rpc pass:");
const btrpchostitem = document.getElementById("btrpchost");
if (btrpchostitem == undefined)
btrpchostitem.value = restoredSettings.rpc_host;
//console.log("(options)showing bt rpc host:", btrpchostitem.value);
const btrpcportitem = document.getElementById("btrpcport");
if (btrpcportitem == undefined)
btrpcportitem.value = restoredSettings.rpc_port;
//console.log("(options)showing rbt pc port:", rpcportitem.value);
const btrpcpathitem = document.getElementById("btrpcpath");
if (btrpcpathitem == undefined)
btrpcpathitem.value = restoredSettings.rpc_path;
//console.log("(options)showing bt rpc path:", btrpcpathitem.value);
const btrpcpassitem = document.getElementById("btrpcpass");
if (btrpcpassitem == undefined)
btrpcpassitem.value = restoredSettings.rpc_pass;
//console.log("(options)showing bt rpc pass:");
SetHostText();
SetPortText();

View File

@@ -0,0 +1,82 @@
var hello = "hello bittorrent";
function makeid(length) {
var result = "";
var characters =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var charactersLength = characters.length;
for (var i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
function send(
message,
control_host = "127.0.0.1",
control_port = "7657",
control_path = "transmission/rpc"
) {
async function postData(url = "", data = {}) {
// Default options are marked with *
let requestBody = JSON.stringify(data);
//console.log("(i2pcontrol)", requestBody, data);
let opts = {
method: "POST", // *GET, POST, PUT, DELETE, etc.
mode: "cors", // no-cors, *cors, same-origin
cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
credentials: "same-origin", // include, *same-origin, omit
headers: {
"Content-Type": "application/json"
},
redirect: "follow", // manual, *follow, error
referrerPolicy: "no-referrer", // no-referrer, *client
body: requestBody // body data type must match "Content-Type" header
};
const response = await fetch(url, opts);
return await response.json(); // parses JSON response into native JavaScript objects
}
return postData(
"http://" + control_host + ":" + control_port + "/" + control_path,
message
);
}
function authenticate(
password = "transmission",
control_host = "127.0.0.1",
control_port = "7657",
control_path = "jsonrpc"
) {
let store = browser.storage.local.get("rpc_pass");
if (store != undefined) {
console.log("Stored password found");
password = store;
}
function auth(got) {
var json = new Object();
json["id"] = makeid(6);
json["jsonrpc"] = "2.0";
json["method"] = "Authenticate";
json["params"] = new Object();
json["params"]["API"] = 1;
json["params"]["Password"] = password;
return send(json);
}
store.then(auth);
}
async function GetToken(
password,
control_host = "127.0.0.1",
control_port = "7657",
control_path = "jsonrpc"
) {
let me = authenticate(password);
return await me.then(gettoken);
}
function gettoken(authtoken) {
return authtoken.result.Token;
}

View File

@@ -130,7 +130,7 @@
<script src="privacy.js"></script>
<script src="info.js"></script>
<script crossorigin="anonymous" src="content.js"></script>
<script src="i2pcontrol/i2pcontrol.js"></script>
<script src="i2pcontrol/i2pcontrol.js"></script>
</div>
</body>
</html>