mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-08 22:51:25 +08:00
99 lines
2.0 KiB
JavaScript
99 lines
2.0 KiB
JavaScript
/**
|
||
* 阉割utools,同时返回一个满血版的UTOOLS
|
||
* 防止输出html输出时,通过script标签调用utools执行危险函数
|
||
*/
|
||
|
||
// 禁用危险函数
|
||
let whole = window.utools;
|
||
|
||
// 数据库前缀
|
||
const DBPRE = {
|
||
QC: "qc_", // 快捷命令
|
||
CFG: "cfg_", // 配置
|
||
PAN: "panel_", // 面板视图
|
||
STATUS: "st_", // 状态变量
|
||
USR: "usr_", // 用户数据
|
||
};
|
||
|
||
// 数据库函数封装
|
||
let getDB = (id) => {
|
||
let db = whole.db.get(id);
|
||
return db ? db.data : {};
|
||
};
|
||
|
||
let putDB = (value, id) => {
|
||
let db = whole.db.get(id);
|
||
return db
|
||
? whole.db.put({
|
||
_id: id,
|
||
data: value,
|
||
_rev: db._rev,
|
||
})
|
||
: whole.db.put({
|
||
_id: id,
|
||
data: value,
|
||
});
|
||
};
|
||
|
||
let delDB = (id) => {
|
||
return whole.db.remove(id);
|
||
};
|
||
|
||
let getAll = (key) => {
|
||
return whole.db.allDocs(key);
|
||
};
|
||
|
||
let delAll = (key) => {
|
||
return getAll(key).forEach((x) => delDB(x._id));
|
||
};
|
||
|
||
let setStorage = whole.dbStorage.setItem;
|
||
let getStorage = whole.dbStorage.getItem;
|
||
|
||
const nativeId = utools.getNativeId();
|
||
|
||
let userData = {
|
||
put: function (value, id, isNative = true) {
|
||
let userData = getDB(DBPRE.USR + id);
|
||
if (isNative) {
|
||
userData[nativeId] = value;
|
||
} else {
|
||
userData.common = value;
|
||
delete userData[nativeId];
|
||
}
|
||
let { ok } = putDB(userData, DBPRE.USR + id);
|
||
return ok;
|
||
},
|
||
get: function (id) {
|
||
let userData = getDB(DBPRE.USR + id);
|
||
let nativeData = userData[nativeId];
|
||
return nativeData ? nativeData : userData.common;
|
||
},
|
||
del: function (id) {
|
||
let { ok } = delDB(DBPRE.USR + id);
|
||
return ok;
|
||
},
|
||
all: function () {
|
||
return getAll(DBPRE.USR).map((item) => {
|
||
let isNative = !!item.data[nativeId];
|
||
return {
|
||
id: item._id.replace(DBPRE.USR, ""),
|
||
value: isNative ? item.data[nativeId] : item.data.common,
|
||
isNative: isNative,
|
||
};
|
||
});
|
||
},
|
||
};
|
||
|
||
export default {
|
||
whole,
|
||
getDB,
|
||
putDB,
|
||
delDB,
|
||
setStorage,
|
||
getStorage,
|
||
userData,
|
||
getAll,
|
||
delAll,
|
||
};
|