-
Notifications
You must be signed in to change notification settings - Fork 2
/
background.js
96 lines (92 loc) · 3.47 KB
/
background.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
function addBookmark(currentBookmark, bookmarkObject) {
if (currentBookmark) {
console.log("bookmark already exists, not adding");
} else {
browser.bookmarks.create(bookmarkObject);
}
}
function installBookmarkURL(bookmarkObject) {
let searchObject = {
title: bookmarkObject.title
};
let searching = browser.bookmarks.search(searchObject);
searching.then(bookmarks => {
addBookmark(bookmarks[0], bookmarkObject);
}, error => {
addBookmark(null, bookmarkObject);
});
}
function installExtensionsFromJson() {
let myRequest = browser.runtime.getURL("bookmarks.json");
fetch(myRequest)
.then(response => {
let text = response.text();
text.then(json => {
let data = JSON.parse(json);
let searching = browser.bookmarks.search({
title: data.Directory
});
searching.then(bookmarks => {
if (bookmarks[0] === undefined) {
let btn = browser.bookmarks.create({
title: data.Directory
});
btn.then(node => {
for (let key in data.bookmarks) {
if (data.bookmarks[key].title !== undefined) {
data.bookmarks[key].parentId = node.id;
installBookmarkURL(data.bookmarks[key]);
}
}
});
} else {
for (let key in data.bookmarks) {
if (data.bookmarks[key].title !== undefined) {
data.bookmarks[key].parentId = bookmarks[0].id;
installBookmarkURL(data.bookmarks[key]);
}
}
}
}, error => {
let btn = browser.bookmarks.create({
title: data.Directory
});
btn.then(node => {
for (let key in data.bookmarks) {
if (data.bookmarks[key].title !== undefined) {
data.bookmarks[key].parentId = node.id;
installBookmarkURL(data.bookmarks[key]);
}
}
});
});
});
});
}
function unInstallExtensionsFromJson() {
let myRequest = browser.runtime.getURL("bookmarks.json");
fetch(myRequest)
.then(response => {
console.log();
let text = response.text();
text.then(json => {
let data = JSON.parse(json);
let searching = browser.bookmarks.search({
title: data.Directory
});
searching.then(bookmarks => {
if (bookmarks[0] !== undefined) {
browser.bookmarks.removeTree(bookmarks[0].id);
}
}, error => {
console.log(error);
});
});
});
}
// update when the extension loads initially
installExtensionsFromJson();
browser.management.onUninstalled.addListener(info => {
console.log("removing extensions installed by", info);
unInstallExtensionsFromJson();
});