248 lines
8.7 KiB
JavaScript
248 lines
8.7 KiB
JavaScript
function bookmarksSetup() {
|
|
var gettingInfo = browser.runtime.getPlatformInfo();
|
|
gettingInfo.then((got) => {
|
|
if (got.os != 'android') {
|
|
function bookmarks(bookmarkToolbar) {
|
|
console.log('(bookmarks)', bookmarkToolbar);
|
|
console.log('Setting up bookmark toolbar', bookmarkToolbar);
|
|
function bookHome(bookmarkItems) {
|
|
if (!bookmarkItems.length) {
|
|
function gotProxyInfo(info) {
|
|
let port = info.value.http.split(':')[1];
|
|
if (port == '7644') {
|
|
let createRhizomeBookmark = browser.bookmarks.create({
|
|
url: 'about:I2p',
|
|
title: 'I2P Extension Home Page',
|
|
parentId: bookmarkToolbar[0].id
|
|
});
|
|
createRhizomeBookmark.then(onCreated);
|
|
} else {
|
|
let createBookmark = browser.bookmarks.create({
|
|
url: browser.runtime.getURL('home.html'),
|
|
title: 'I2P Extension Home Page',
|
|
parentId: bookmarkToolbar[0].id
|
|
});
|
|
createBookmark.then(onCreated);
|
|
}
|
|
console.log('(bookmarks) adding home page bookmark');
|
|
}
|
|
console.log(
|
|
"(bookmarks) checking if we're running in an I2P Browser"
|
|
);
|
|
let gettingProxyInfo = browser.proxy.settings.get({});
|
|
gettingProxyInfo.then(gotProxyInfo);
|
|
}
|
|
}
|
|
function bookTorrent(bookmarkItems) {
|
|
if (!bookmarkItems.length) {
|
|
function gotProxyInfo(info) {
|
|
let port = info.value.http.split(':')[1];
|
|
if (port == '7644') {
|
|
let createBookmark = browser.bookmarks.create({
|
|
url: 'http://localhost:7657/i2psnark',
|
|
title: 'Bittorrent',
|
|
parentId: bookmarkToolbar[0].id
|
|
});
|
|
createBookmark.then(onCreated);
|
|
} else {
|
|
let createRhizomeBookmark = browser.bookmarks.create({
|
|
url:
|
|
'http://' + control_host + ':' + control_port + '/i2psnark',
|
|
title: 'Bittorrent',
|
|
parentId: bookmarkToolbar[0].id
|
|
});
|
|
createRhizomeBookmark.then(onCreated);
|
|
}
|
|
}
|
|
console.log(
|
|
"(bookmarks) checking if we're running in an I2P Browser"
|
|
);
|
|
let gettingProxyInfo = browser.proxy.settings.get({});
|
|
gettingProxyInfo.then(gotProxyInfo);
|
|
}
|
|
}
|
|
function bookConsole(bookmarkItems) {
|
|
if (!bookmarkItems.length) {
|
|
function gotProxyInfo(info) {
|
|
let port = info.value.http.split(':')[1];
|
|
if (port == '7644') {
|
|
let createBookmark = browser.bookmarks.create({
|
|
url: 'http://localhost:7657/home',
|
|
title: 'I2P Console',
|
|
parentId: bookmarkToolbar[0].id
|
|
});
|
|
createBookmark.then(onCreated);
|
|
} else {
|
|
let createRhizomeBookmark = browser.bookmarks.create({
|
|
url: 'http://' + control_host + ':' + control_port + '/home',
|
|
title: 'I2P Console',
|
|
parentId: bookmarkToolbar[0].id
|
|
});
|
|
createRhizomeBookmark.then(onCreated);
|
|
}
|
|
}
|
|
console.log(
|
|
"(bookmarks) checking if we're running in an I2P Browser"
|
|
);
|
|
let gettingProxyInfo = browser.proxy.settings.get({});
|
|
gettingProxyInfo.then(gotProxyInfo);
|
|
}
|
|
}
|
|
function bookMail(bookmarkItems) {
|
|
if (!bookmarkItems.length) {
|
|
function gotProxyInfo(info) {
|
|
let port = info.value.http.split(':')[1];
|
|
if (port == '7644') {
|
|
let createBookmark = browser.bookmarks.create({
|
|
url: 'http://localhost:7657/webmail',
|
|
title: 'Web Mail',
|
|
parentId: bookmarkToolbar[0].id
|
|
});
|
|
createBookmark.then(onCreated);
|
|
} else {
|
|
let createRhizomeBookmark = browser.bookmarks.create({
|
|
url:
|
|
'http://' + control_host + ':' + control_port + '/webmail',
|
|
title: 'Web Mail',
|
|
parentId: bookmarkToolbar[0].id
|
|
});
|
|
createRhizomeBookmark.then(onCreated);
|
|
}
|
|
console.log('(bookmarks) adding webmail bookmark');
|
|
}
|
|
console.log(
|
|
"(bookmarks) checking if we're running in an I2P Browser"
|
|
);
|
|
let gettingProxyInfo = browser.proxy.settings.get({});
|
|
gettingProxyInfo.then(gotProxyInfo);
|
|
}
|
|
}
|
|
function bookI2PTunnel(bookmarkItems) {
|
|
if (!bookmarkItems.length) {
|
|
function gotProxyInfo(info) {
|
|
let port = info.value.http.split(':')[1];
|
|
if (port == '7644') {
|
|
var createBookmark = browser.bookmarks.create({
|
|
url: 'http://localhost:7657/i2ptunnel',
|
|
title: 'Hidden Services Manager',
|
|
parentId: bookmarkToolbar[0].id
|
|
});
|
|
createBookmark.then(onCreated);
|
|
} else {
|
|
var createRhizomeBookmark = browser.bookmarks.create({
|
|
url:
|
|
'http://' +
|
|
control_host +
|
|
':' +
|
|
control_port +
|
|
'/i2ptunnel',
|
|
title: 'Hidden Services Manager',
|
|
parentId: bookmarkToolbar[0].id
|
|
});
|
|
createRhizomeBookmark.then(onCreated);
|
|
}
|
|
console.log('(bookmarks) adding i2ptunnel bookmark');
|
|
}
|
|
console.log(
|
|
"(bookmarks) checking if we're running in an I2P Browser"
|
|
);
|
|
var gettingProxyInfo = browser.proxy.settings.get({});
|
|
gettingProxyInfo.then(gotProxyInfo);
|
|
}
|
|
}
|
|
|
|
function onRejected(error) {
|
|
console.log(`An error : ${error}`);
|
|
}
|
|
function onCreated(node) {
|
|
console.log('Bookmarked', node);
|
|
}
|
|
|
|
var b0 = browser.bookmarks.search({
|
|
title: 'I2P Extension Home Page'
|
|
});
|
|
b0.then(bookHome, onRejected);
|
|
|
|
var b1 = browser.bookmarks.search({
|
|
title: 'Bittorrent'
|
|
});
|
|
b1.then(bookTorrent, onRejected);
|
|
|
|
var b2 = browser.bookmarks.search({
|
|
title: 'Hidden Services Manager'
|
|
});
|
|
b2.then(bookI2PTunnel, onRejected);
|
|
|
|
var b3 = browser.bookmarks.search({
|
|
title: 'Web Mail'
|
|
});
|
|
b3.then(bookMail, onRejected);
|
|
|
|
var b4 = browser.bookmarks.search({
|
|
title: 'I2P Console'
|
|
});
|
|
b4.then(bookConsole, onRejected);
|
|
defaultSettings['bookmarks_state'] = true;
|
|
}
|
|
|
|
var bt = browser.bookmarks.search({
|
|
query: 'Toolbar'
|
|
});
|
|
|
|
function toolDir(bookmarkToolbar) {
|
|
let defaultSettings = {};
|
|
chrome.storage.local.set(defaultSettings);
|
|
console.log('(bookmarks) created');
|
|
var ibbt = browser.bookmarks.search('I2P Toolbar');
|
|
function setupDir(ibbt) {
|
|
function onToolbarCreated(node) {
|
|
var ibt = browser.bookmarks.search('I2P Toolbar');
|
|
ibt.then(bookmarks);
|
|
}
|
|
if (ibbt[0] == null) {
|
|
let createBookmark = browser.bookmarks.create({
|
|
title: 'I2P Toolbar',
|
|
parentId: bookmarkToolbar[0].id
|
|
});
|
|
createBookmark.then(onToolbarCreated);
|
|
}
|
|
}
|
|
ibbt.then(setupDir);
|
|
}
|
|
bt.then(toolDir);
|
|
|
|
function handleCreated(id, bookmarkInfo) {
|
|
//var propValue;
|
|
for (var propName in bookmarkInfo) {
|
|
let propValue = bookmarkInfo[propName];
|
|
console.log(propName, propValue);
|
|
}
|
|
}
|
|
|
|
browser.bookmarks.onCreated.addListener(handleCreated);
|
|
}
|
|
});
|
|
}
|
|
|
|
function conditionalBookmarksSetup(obj) {
|
|
console.log('(bookmarks) state', obj.bookmarks_state);
|
|
if (obj.bookmarks_state == false) {
|
|
bookmarksSetup();
|
|
}
|
|
if (obj.bookmarks_state == undefined) {
|
|
bookmarksSetup();
|
|
}
|
|
}
|
|
|
|
if (browser != null) {
|
|
if (browser.windows != undefined) {
|
|
let gettingStorage = browser.storage.local.get('bookmarks_state');
|
|
gettingStorage.then(conditionalBookmarksSetup, bookmarksSetup);
|
|
}
|
|
}
|
|
|
|
const bookmarksButton = document.getElementById('bookmarksButton');
|
|
if (bookmarksButton != null) {
|
|
bookmarksButton.addEventListener('click', bookmarksSetup);
|
|
}
|