mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-29 20:32:44 +08:00
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
/**
|
|
* 判断内容是否为 quickcommand 可导入格式
|
|
*/
|
|
|
|
// 是否含有 quickcommand 键值
|
|
let isJsonQc = (obj, strict = true) => {
|
|
var keys = strict
|
|
? ["features", "program", "output"]
|
|
: ["program"];
|
|
if (keys.filter((x) => typeof obj[x] == "undefined").length) return false;
|
|
return true;
|
|
};
|
|
|
|
let payloadParser = async (payload) => {
|
|
let [, format, value] = payload.split("/");
|
|
if (format === "base64") return window.base64Decode(value);
|
|
else if (format === "id") return await window.getSharedQcById(value);
|
|
else throw new Error("不支持的格式");
|
|
};
|
|
|
|
// 判断是否为可导入的快捷命令
|
|
let quickcommandParser = async (payload, strict = true) => {
|
|
try {
|
|
if (payload.slice(0, 3) === "qc/") payload = await payloadParser(payload);
|
|
var qc = JSON.parse(payload);
|
|
} catch (error) {
|
|
return false;
|
|
}
|
|
if (isJsonQc(qc, strict)) return { single: true, qc: qc };
|
|
else if (!Object.values(qc).filter((q) => !isJsonQc(q, strict)).length)
|
|
return { single: false, qc: qc };
|
|
else return false;
|
|
};
|
|
|
|
export default quickcommandParser;
|