|
|
|
function Node() {
|
|
|
|
/**
|
|
|
|
* id ( string )
|
|
|
|
* 节点的唯一标识, id 在当前配置文件中是唯一的,浏览器重启后依然有效。
|
|
|
|
*/
|
|
|
|
this.id = "0";
|
|
|
|
/**
|
|
|
|
* 父节点的ID,根节点没有此属性
|
|
|
|
*/
|
|
|
|
this.parentId = undefined;
|
|
|
|
/**
|
|
|
|
* 书签节点创建时的时间戳
|
|
|
|
*/
|
|
|
|
this.dateAdded = 0;
|
|
|
|
/**
|
|
|
|
* 书签文件夹内容的最后更新时间戳,书签节点没有此属性
|
|
|
|
*/
|
|
|
|
this.dateGroupModified = 0;
|
|
|
|
/**
|
|
|
|
* 书签在父节点中的索引,根节点没有此属性
|
|
|
|
*/
|
|
|
|
this.index = 0;
|
|
|
|
/**
|
|
|
|
* 书签标题
|
|
|
|
*/
|
|
|
|
this.title = "";
|
|
|
|
/**
|
|
|
|
* 书签的url,书签文件夹没有此属性
|
|
|
|
*/
|
|
|
|
this.url = undefined;
|
|
|
|
/**
|
|
|
|
* 节点类型
|
|
|
|
* 0 为书签
|
|
|
|
* 1 为书签文件夹
|
|
|
|
*/
|
|
|
|
this.type = 0;
|
|
|
|
/**
|
|
|
|
* 是否为根节点
|
|
|
|
*/
|
|
|
|
this.root = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
let BookmarkTreeNodeList = [];
|
|
|
|
const BOOKMARK = 0;
|
|
|
|
const BOOKEMAR_FOLDER = 1;
|
|
|
|
const PROTO = 'http'
|
|
|
|
const SERVER_ADDRESS = '127.0.0.1'
|
|
|
|
const SERVER_PORT = '3000'
|
|
|
|
const SERVER_URL = `${PROTO}://${SERVER_ADDRESS}:${SERVER_PORT}`
|
|
|
|
|
|
|
|
function addToList(node) {
|
|
|
|
let bookmarkNode = new Node();
|
|
|
|
bookmarkNode.id = node.id;
|
|
|
|
bookmarkNode.parentId = node.parentId;
|
|
|
|
bookmarkNode.dateAdded = node.dateAdded;
|
|
|
|
bookmarkNode.dateGroupModified = node.dateGroupModified;
|
|
|
|
bookmarkNode.index = node.index;
|
|
|
|
bookmarkNode.title = node.title;
|
|
|
|
bookmarkNode.url = node.url;
|
|
|
|
bookmarkNode.type =
|
|
|
|
typeof node.dateGroupNodified === "undefined" ? BOOKMARK : BOOKEMAR_FOLDER;
|
|
|
|
bookmarkNode.root = typeof node.parentId === "undefined";
|
|
|
|
BookmarkTreeNodeList.push(bookmarkNode);
|
|
|
|
|
|
|
|
if (Array.isArray(node.children)) {
|
|
|
|
for (let j = 0; j < node.children.length; j++) {
|
|
|
|
addToList(node.children[j]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function getBookmarkList(callback) {
|
|
|
|
BookmarkTreeNodeList = []
|
|
|
|
chrome.bookmarks.getTree(function(tree) {
|
|
|
|
for (let i = 0; i < tree.length; i++) {
|
|
|
|
let node = tree[i];
|
|
|
|
addToList(node);
|
|
|
|
}
|
|
|
|
callback(null, BookmarkTreeNodeList);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
$("#upload").on("click", function() {
|
|
|
|
getBookmarkList(function(error, bookmarkArray) {
|
|
|
|
$.ajax({
|
|
|
|
type: "POST",
|
|
|
|
url: `${SERVER_URL}/bookmarks`,
|
|
|
|
contentType: 'application/json;charset=utf-8',
|
|
|
|
dataType: 'json',
|
|
|
|
data: JSON.stringify(bookmarkArray),
|
|
|
|
success: function() {
|
|
|
|
console.log('上传了 ' + bookmarkArray.length + ' 条书签')
|
|
|
|
},
|
|
|
|
error: function() {
|
|
|
|
console.error('上传失败')
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#download").on("click", function() {
|
|
|
|
$.ajax({
|
|
|
|
type: "GET",
|
|
|
|
url: `${SERVER_URL}/bookmarks`,
|
|
|
|
success: function(bookmarkArray) {
|
|
|
|
console.log('下载了 ' + bookmarkArray.length + ' 条书签')
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|