karin-plugin-mys-core 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/lib/apps/MiHoYoLogin.d.ts +3 -1
- package/lib/apps/MiHoYoLogin.js +177 -109
- package/lib/apps/MysDevice.d.ts +2 -2
- package/lib/apps/MysDevice.js +65 -23
- package/lib/apps/UIDManage.d.ts +10 -0
- package/lib/apps/UIDManage.js +52 -0
- package/lib/array-CZDr9qst.d.ts +62 -0
- package/lib/chunk-2DHTKQ34.js +0 -0
- package/lib/chunk-3BIQN6QA.js +27 -0
- package/lib/chunk-3CNBOOKY.js +31 -0
- package/lib/chunk-5NA7ZPDS.js +54 -0
- package/lib/chunk-6PIXUPZ6.js +82 -0
- package/lib/chunk-7KEG6SDX.js +0 -0
- package/lib/chunk-7SZX3RBZ.js +0 -0
- package/lib/chunk-7VAWV6ZE.js +0 -0
- package/lib/chunk-7WESXE4X.js +29 -0
- package/lib/chunk-7YZHHLS5.js +130 -0
- package/lib/chunk-ARLTXJFJ.js +0 -0
- package/lib/chunk-CFS2WFOO.js +0 -0
- package/lib/chunk-EMAUATE3.js +217 -0
- package/lib/chunk-FBWSEBAW.js +0 -0
- package/lib/chunk-FOAQZIZ2.js +0 -0
- package/lib/chunk-G547WVGV.js +73 -0
- package/lib/chunk-G5W5WAY5.js +64 -0
- package/lib/chunk-HVYNK5BN.js +45 -0
- package/lib/chunk-I7XZONDN.js +13 -0
- package/lib/chunk-IVZICDGW.js +19 -0
- package/lib/chunk-JBGXPVO2.js +179 -0
- package/lib/chunk-JRH4JC43.js +0 -0
- package/lib/chunk-JVJQKRJ4.js +89 -0
- package/lib/chunk-K5U2O3HH.js +0 -0
- package/lib/chunk-KN5SHBVI.js +30 -0
- package/lib/chunk-LG34FPBI.js +50 -0
- package/lib/chunk-LJSDSOY6.js +0 -0
- package/lib/chunk-LYTNREAI.js +0 -0
- package/lib/chunk-MWYDWDR4.js +0 -0
- package/lib/chunk-QMSYS77M.js +38 -0
- package/lib/chunk-SEWEEPJN.js +0 -0
- package/lib/{chunk-JML6VYXN.js → chunk-SHLPPEAY.js} +13 -17
- package/lib/chunk-SHW6FHIB.js +10 -0
- package/lib/chunk-W4DBT7AD.js +0 -0
- package/lib/chunk-X75DW4KI.js +510 -0
- package/lib/chunk-XQWTJIT4.js +0 -0
- package/lib/chunk-Y3J3J5B2.js +124 -0
- package/lib/chunk-Z5I6A73Y.js +0 -0
- package/lib/common-Dw5l6Uud.d.ts +33 -0
- package/lib/define-BWuQ7acM.d.ts +131 -0
- package/lib/dir.d.ts +11 -13
- package/lib/dir.js +1 -1
- package/lib/exports/config/array.d.ts +1 -0
- package/lib/exports/config/array.js +7 -0
- package/lib/exports/config/config.d.ts +1 -0
- package/lib/exports/config/config.js +8 -0
- package/lib/exports/config/index.d.ts +2 -0
- package/lib/exports/config/index.js +14 -0
- package/lib/exports/config/types/config.d.ts +12 -0
- package/lib/exports/config/types/config.js +1 -0
- package/lib/exports/config/types/index.d.ts +1 -0
- package/lib/exports/config/types/index.js +2 -0
- package/lib/exports/database/database.d.ts +30 -0
- package/lib/exports/database/database.js +18 -0
- package/lib/exports/database/dbs/base.d.ts +23 -0
- package/lib/exports/database/dbs/base.js +15 -0
- package/lib/exports/database/dbs/index.d.ts +4 -0
- package/lib/exports/database/dbs/index.js +23 -0
- package/lib/exports/database/dbs/sqlite3.d.ts +23 -0
- package/lib/exports/database/dbs/sqlite3.js +19 -0
- package/lib/exports/database/dbs/table.d.ts +13 -0
- package/lib/exports/database/dbs/table.js +19 -0
- package/lib/exports/database/index.d.ts +12 -0
- package/lib/exports/database/index.js +62 -0
- package/lib/exports/database/tables/index.d.ts +9 -0
- package/lib/exports/database/tables/index.js +39 -0
- package/lib/exports/database/tables/mysAccountInfo.d.ts +9 -0
- package/lib/exports/database/tables/mysAccountInfo.js +23 -0
- package/lib/exports/database/tables/mysDeviceInfo.d.ts +9 -0
- package/lib/exports/database/tables/mysDeviceInfo.js +26 -0
- package/lib/exports/database/tables/mysUserInfo.d.ts +9 -0
- package/lib/exports/database/tables/mysUserInfo.js +23 -0
- package/lib/exports/database/types/database.d.ts +6 -0
- package/lib/exports/database/types/database.js +1 -0
- package/lib/exports/database/types/dbs/base.d.ts +114 -0
- package/lib/exports/database/types/dbs/base.js +11 -0
- package/lib/exports/database/types/dbs/index.d.ts +2 -0
- package/lib/exports/database/types/dbs/index.js +12 -0
- package/lib/exports/database/types/index.d.ts +6 -0
- package/lib/exports/database/types/index.js +24 -0
- package/lib/exports/database/types/tables/index.d.ts +5 -0
- package/lib/exports/database/types/tables/index.js +13 -0
- package/lib/exports/database/types/tables/mysAccountInfo.d.ts +14 -0
- package/lib/exports/database/types/tables/mysAccountInfo.js +7 -0
- package/lib/exports/database/types/tables/mysDeviceInfo.d.ts +19 -0
- package/lib/exports/database/types/tables/mysDeviceInfo.js +1 -0
- package/lib/exports/database/types/tables/mysUserInfo.d.ts +31 -0
- package/lib/exports/database/types/tables/mysUserInfo.js +7 -0
- package/lib/exports/mys/api/apis.d.ts +82 -0
- package/lib/exports/mys/api/apis.js +57 -0
- package/lib/exports/mys/api/app.d.ts +60 -0
- package/lib/exports/mys/api/app.js +31 -0
- package/lib/exports/mys/api/define.d.ts +6 -0
- package/lib/exports/mys/api/define.js +43 -0
- package/lib/exports/mys/api/index.d.ts +11 -0
- package/lib/exports/mys/api/index.js +64 -0
- package/lib/exports/mys/index.d.ts +13 -0
- package/lib/exports/mys/index.js +77 -0
- package/lib/exports/mys/types/api/define.d.ts +6 -0
- package/lib/exports/mys/types/api/define.js +1 -0
- package/lib/exports/mys/types/api/index.d.ts +6 -0
- package/lib/exports/mys/types/api/index.js +2 -0
- package/lib/exports/mys/types/index.d.ts +10 -0
- package/lib/exports/mys/types/index.js +12 -0
- package/lib/exports/mys/types/user/game.d.ts +10 -0
- package/lib/exports/mys/types/user/game.js +1 -0
- package/lib/exports/mys/types/user/index.d.ts +10 -0
- package/lib/exports/mys/types/user/index.js +9 -0
- package/lib/exports/mys/types/user/userInfo.d.ts +10 -0
- package/lib/exports/mys/types/user/userInfo.js +7 -0
- package/lib/exports/mys/user/deviceInfo.d.ts +11 -0
- package/lib/exports/mys/user/deviceInfo.js +29 -0
- package/lib/exports/mys/user/game.d.ts +20 -0
- package/lib/exports/mys/user/game.js +7 -0
- package/lib/exports/mys/user/index.d.ts +12 -0
- package/lib/exports/mys/user/index.js +51 -0
- package/lib/exports/mys/user/userInfo.d.ts +10 -0
- package/lib/exports/mys/user/userInfo.js +45 -0
- package/lib/exports/utils/common.d.ts +1 -0
- package/lib/exports/utils/common.js +13 -0
- package/lib/exports/utils/index.d.ts +2 -0
- package/lib/exports/utils/index.js +12 -0
- package/lib/exports/utils/render.d.ts +21 -0
- package/lib/exports/utils/render.js +7 -0
- package/lib/index-DEEWbZ0V.d.ts +102 -0
- package/lib/index.js +1 -1
- package/package.json +29 -15
- package/resources/fonts/HYWenHei-55W.ttf +0 -0
- package/resources/image/launcher-icon//345/216/237/347/245/236.png +0 -0
- package/resources/image/launcher-icon//345/264/251/345/235/2173.png +0 -0
- package/resources/image/launcher-icon//345/264/251/345/235/217/345/255/246/345/233/2552.png +0 -0
- package/resources/image/launcher-icon//345/264/251/345/235/217/357/274/232/345/233/240/347/274/230/347/262/276/347/201/265.png +0 -0
- package/resources/image/launcher-icon//345/264/251/345/235/217/357/274/232/346/230/237/347/251/271/351/223/201/351/201/223.png +0 -0
- package/resources/image/launcher-icon//346/230/237/345/270/203/350/260/267/345/234/260.png +0 -0
- package/resources/image/launcher-icon//346/234/252/345/256/232/344/272/213/344/273/266/347/260/277.png +0 -0
- package/resources/image/launcher-icon//347/273/235/345/214/272/351/233/266.png +0 -0
- package/resources/image/mys-logo.png +0 -0
- package/resources/template/ShowBindAccount/index.css +1 -0
- package/resources/template/ShowBindAccount/index.html +65 -0
- package/resources/template/ShowBindDevice/index.html +20 -0
- package/resources/template/ShowBindDevice/inex.css +1 -0
- package/resources/template/layout/default.css +1 -0
- package/resources/template/layout/default.html +27 -0
- package/lib/app.d.ts +0 -2
- package/lib/base-BJv9XnQP.d.ts +0 -120
- package/lib/chunk-CQNW7LJI.js +0 -38
- package/lib/chunk-MV2UE7C7.js +0 -410
- package/lib/chunk-NHUNEZXM.js +0 -371
- package/lib/chunk-WYRIRWT5.js +0 -213
- package/lib/database-byVXw91u.d.ts +0 -5
- package/lib/define-pa_pWNWT.d.ts +0 -182
- package/lib/exports/core.d.ts +0 -249
- package/lib/exports/core.js +0 -45
- package/lib/exports/database.d.ts +0 -48
- package/lib/exports/database.js +0 -20
- package/lib/exports/types.d.ts +0 -5
- package/lib/exports/types.js +0 -13
- package/lib/index.d.ts +0 -2
- package/lib/web.config.d.ts +0 -5
- package/lib/web.config.js +0 -55
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// src/exports/utils/render.ts
|
|
2
|
+
import karin, { config } from "node-karin";
|
|
3
|
+
import path from "path";
|
|
4
|
+
var RenderTemplate = class {
|
|
5
|
+
#renderCfg;
|
|
6
|
+
constructor(cfg) {
|
|
7
|
+
this.#renderCfg = cfg;
|
|
8
|
+
}
|
|
9
|
+
/** @description 渲染Html路径为:resources/template/${template}/index.html */
|
|
10
|
+
async template(template, rendeDdata, options = {}) {
|
|
11
|
+
const img = await karin.render({
|
|
12
|
+
name: `${this.#renderCfg.name}/${template}`,
|
|
13
|
+
data: {
|
|
14
|
+
...rendeDdata,
|
|
15
|
+
plugin: {
|
|
16
|
+
...options.plugin || {},
|
|
17
|
+
template,
|
|
18
|
+
name: this.#renderCfg.name,
|
|
19
|
+
version: this.#renderCfg.version,
|
|
20
|
+
resources: {
|
|
21
|
+
default: path.join(this.#renderCfg.pluginDir, "resources").replace(/\\/g, "/"),
|
|
22
|
+
download: this.#renderCfg.ResourcesDir.replace(/\\/g, "/")
|
|
23
|
+
},
|
|
24
|
+
defaultLayout: path.join(this.#renderCfg.pluginDir, "resources/template/layout/default.html")
|
|
25
|
+
},
|
|
26
|
+
karin: {
|
|
27
|
+
version: config.pkg().version
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
type: options.type || "jpeg",
|
|
31
|
+
omitBackground: options.type === "png",
|
|
32
|
+
selector: "container",
|
|
33
|
+
file: path.join(this.#renderCfg.pluginDir, `resources/template/${template}/index.html`),
|
|
34
|
+
setViewport: {
|
|
35
|
+
deviceScaleFactor: 2
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
if (!img) return null;
|
|
39
|
+
return "base64://" + img;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export {
|
|
44
|
+
RenderTemplate
|
|
45
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// src/exports/database/types/tables/mysUserInfo.ts
|
|
2
|
+
var UidPermission = /* @__PURE__ */ ((UidPermission2) => {
|
|
3
|
+
UidPermission2[UidPermission2["BIND"] = 0] = "BIND";
|
|
4
|
+
UidPermission2[UidPermission2["CK"] = 1] = "CK";
|
|
5
|
+
UidPermission2[UidPermission2["ST"] = 2] = "ST";
|
|
6
|
+
UidPermission2[UidPermission2["CS"] = 3] = "CS";
|
|
7
|
+
UidPermission2[UidPermission2["DEL"] = 4] = "DEL";
|
|
8
|
+
return UidPermission2;
|
|
9
|
+
})(UidPermission || {});
|
|
10
|
+
|
|
11
|
+
export {
|
|
12
|
+
UidPermission
|
|
13
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// src/exports/mys/types/user/userInfo.ts
|
|
2
|
+
var RegisterGameBase = class {
|
|
3
|
+
game;
|
|
4
|
+
columnKey;
|
|
5
|
+
/** @description 游戏名称 */
|
|
6
|
+
name;
|
|
7
|
+
/** @description 指令前缀匹配 */
|
|
8
|
+
prefix;
|
|
9
|
+
constructor(game, name, prefix) {
|
|
10
|
+
this.game = game;
|
|
11
|
+
this.columnKey = `${game}-uids`;
|
|
12
|
+
this.name = name;
|
|
13
|
+
this.prefix = prefix;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export {
|
|
18
|
+
RegisterGameBase
|
|
19
|
+
};
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Render,
|
|
3
|
+
UserInfo
|
|
4
|
+
} from "./chunk-X75DW4KI.js";
|
|
5
|
+
import {
|
|
6
|
+
MysGame
|
|
7
|
+
} from "./chunk-3BIQN6QA.js";
|
|
8
|
+
|
|
9
|
+
// src/apps/UIDManage.ts
|
|
10
|
+
import karin, { handler, segment } from "node-karin";
|
|
11
|
+
var BindUID = karin.command(
|
|
12
|
+
/^#?(.*?)绑定uid(?:\s*(.+))?$/i,
|
|
13
|
+
async (e, next) => {
|
|
14
|
+
const msgMatch = e.msg.match(/^#?(?<prefix>.*?)绑定uid(?:\s*(?<uid>.+))?$/i)?.groups;
|
|
15
|
+
const Game = MysGame.match(msgMatch.prefix?.trim() || "");
|
|
16
|
+
if (!Game) return next();
|
|
17
|
+
const uid = msgMatch.uid?.trim();
|
|
18
|
+
if (!uid) {
|
|
19
|
+
e.reply("\u8BF7\u63D0\u4F9B\u8981\u7ED1\u5B9A\u7684\u6E38\u620FUID\uFF01", { at: true });
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
const userInfo = await Game.UserInfo.create(e.userId);
|
|
23
|
+
const bindUids = userInfo.bind_uids;
|
|
24
|
+
if (!(uid in bindUids)) {
|
|
25
|
+
bindUids[uid] = { perm: 0 /* BIND */, ltuid: "" };
|
|
26
|
+
}
|
|
27
|
+
await userInfo.saveUserInfo({
|
|
28
|
+
[Game.game + "-main"]: uid,
|
|
29
|
+
[Game.game + "-uids"]: bindUids
|
|
30
|
+
});
|
|
31
|
+
await handler.call(`MYS.${Game.game}.ShowUID`, { e });
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
var getMainUid = (uid, mainUid, bindUids) => {
|
|
36
|
+
if (mainUid !== uid) return mainUid;
|
|
37
|
+
const filterUids = Object.entries(bindUids).filter((value) => value[1].perm !== 4 /* DEL */);
|
|
38
|
+
if (filterUids.length > 0) return filterUids[0][0];
|
|
39
|
+
return "";
|
|
40
|
+
};
|
|
41
|
+
var UnbindUID = karin.command(
|
|
42
|
+
/^#?(.*?)(删除|解绑)uid(?:\s*(.+))?$/i,
|
|
43
|
+
async (e, next) => {
|
|
44
|
+
const msgMatch = e.msg.match(/^#?(?<prefix>.*?)(删除|解绑)uid(?:\s*(?<idx>.+))?$/i)?.groups;
|
|
45
|
+
const Game = MysGame.match(msgMatch.prefix?.trim() || "");
|
|
46
|
+
if (!Game) return next();
|
|
47
|
+
const uid = msgMatch.idx?.trim();
|
|
48
|
+
const idx = +uid.split(".")[0];
|
|
49
|
+
if (isNaN(idx)) {
|
|
50
|
+
e.reply("\u8BF7\u6B63\u786E\u63D0\u4F9B\u8981\u89E3\u7ED1\u7684\u6E38\u620FUID\u6216\u5E8F\u53F7\uFF01", { at: true });
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
const userInfo = await Game.UserInfo.create(e.userId);
|
|
54
|
+
const bindUids = userInfo.bind_uids;
|
|
55
|
+
let delUid = uid;
|
|
56
|
+
if (idx <= 1e4) {
|
|
57
|
+
const filterUids = Object.entries(bindUids).filter((value) => value[1].perm !== 4 /* DEL */);
|
|
58
|
+
if (idx > filterUids.length || idx <= 0) {
|
|
59
|
+
e.reply("UID\u5E8F\u53F7\u4E0D\u5B58\u5728\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u65B0\u8F93\u5165\uFF01", { at: true });
|
|
60
|
+
return "break";
|
|
61
|
+
}
|
|
62
|
+
delUid = filterUids[idx - 1][0];
|
|
63
|
+
}
|
|
64
|
+
if (delUid in bindUids) {
|
|
65
|
+
if (bindUids[delUid].perm === 0 /* BIND */) {
|
|
66
|
+
delete bindUids[delUid];
|
|
67
|
+
} else {
|
|
68
|
+
bindUids[delUid].perm = 4 /* DEL */;
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
e.reply("UID\u672A\u7ED1\u5B9A\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u65B0\u8F93\u5165\uFF01", { at: true });
|
|
72
|
+
return "break";
|
|
73
|
+
}
|
|
74
|
+
const mainUid = getMainUid(delUid, userInfo.main_uid, bindUids);
|
|
75
|
+
await userInfo.saveUserInfo({
|
|
76
|
+
[Game.game + "-main"]: mainUid,
|
|
77
|
+
[Game.game + "-uids"]: bindUids
|
|
78
|
+
});
|
|
79
|
+
await handler.call(`MYS.${Game.game}.ShowUID`, { e });
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
var ShowBindAccountCmdFunc = async (e) => {
|
|
84
|
+
const userInfo = await UserInfo.create(e.userId, true);
|
|
85
|
+
const renderData = {
|
|
86
|
+
User: {
|
|
87
|
+
userId: e.userId,
|
|
88
|
+
avatar: e.contact.name,
|
|
89
|
+
nickname: await e.bot.getAvatarUrl(e.userId, 100)
|
|
90
|
+
},
|
|
91
|
+
AccountList: []
|
|
92
|
+
};
|
|
93
|
+
const ltuidInfoList = userInfo.LtuidInfoList;
|
|
94
|
+
if (ltuidInfoList.length > 0) {
|
|
95
|
+
for (const ltuidInfo of ltuidInfoList) {
|
|
96
|
+
const data = {
|
|
97
|
+
ltuid: ltuidInfo.ltuid,
|
|
98
|
+
permission: 0 /* BIND */,
|
|
99
|
+
bindUids: []
|
|
100
|
+
};
|
|
101
|
+
if (ltuidInfo.cookie) {
|
|
102
|
+
data.permission += 1 /* CK */;
|
|
103
|
+
}
|
|
104
|
+
if (ltuidInfo.stoken) {
|
|
105
|
+
data.permission += 2 /* ST */;
|
|
106
|
+
}
|
|
107
|
+
await MysGame.forEachGame(async (Game) => {
|
|
108
|
+
const gameUserInfo = await Game.UserInfo.create(e.userId);
|
|
109
|
+
data.bindUids.push({
|
|
110
|
+
gameName: Game.name,
|
|
111
|
+
uids: Object.entries(gameUserInfo.bind_uids).filter(([, info]) => info.ltuid === ltuidInfo.ltuid).map(([uid, info]) => ({
|
|
112
|
+
uid,
|
|
113
|
+
perm: info.perm
|
|
114
|
+
}))
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
renderData.AccountList.push(data);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const image = await Render.template("ShowBindAccount", renderData);
|
|
121
|
+
image && e.reply(segment.image(image), { at: true });
|
|
122
|
+
return true;
|
|
123
|
+
};
|
|
124
|
+
var ShowBindAccount = karin.command(
|
|
125
|
+
/^#?(米游社|mys)账号(列表)?$/i,
|
|
126
|
+
ShowBindAccountCmdFunc
|
|
127
|
+
);
|
|
128
|
+
var UnbindAccount = karin.command(
|
|
129
|
+
/^#?(删除|解绑)(米游社|mys)账号(?:\s*(.+))?$/i,
|
|
130
|
+
async (e) => {
|
|
131
|
+
const msgMatch = e.msg.match(/^#?(删除|解绑)(米游社|mys)账号(?:\s*(?<idx>.+))?$/i)?.groups;
|
|
132
|
+
const uid = msgMatch.idx?.trim();
|
|
133
|
+
const idx = +uid.split(".")[0];
|
|
134
|
+
if (isNaN(idx)) {
|
|
135
|
+
e.reply("\u8BF7\u6B63\u786E\u63D0\u4F9B\u8981\u89E3\u7ED1\u7684\u7C73\u6E38\u793EUID\u6216\u5E8F\u53F7\uFF01", { at: true });
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
const userInfo = await UserInfo.create(e.userId, true);
|
|
139
|
+
let ltuidInfo;
|
|
140
|
+
const ltuidInfoList = userInfo.LtuidInfoList;
|
|
141
|
+
if (idx < 1e4) {
|
|
142
|
+
if (idx > ltuidInfoList.length || idx <= 0) {
|
|
143
|
+
e.reply("\u7C73\u6E38\u793EUID\u5E8F\u53F7\u4E0D\u5B58\u5728\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u65B0\u8F93\u5165\uFF01", { at: true });
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
ltuidInfo = ltuidInfoList[idx - 1];
|
|
147
|
+
} else {
|
|
148
|
+
ltuidInfo = ltuidInfoList.find((info) => info.ltuid === uid);
|
|
149
|
+
if (!ltuidInfo) {
|
|
150
|
+
e.reply("\u7C73\u6E38\u793EUID\u672A\u7ED1\u5B9A\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u65B0\u8F93\u5165\uFF01", { at: true });
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const ltuid = ltuidInfo.ltuid;
|
|
155
|
+
await ltuidInfo.destroy();
|
|
156
|
+
await userInfo.saveUserInfo({
|
|
157
|
+
ltuids: userInfo.ltuids.remove(ltuid),
|
|
158
|
+
stuids: userInfo.stuids.remove(ltuid)
|
|
159
|
+
});
|
|
160
|
+
await MysGame.forEachGame(async (Game) => {
|
|
161
|
+
const gameUserInfo = await Game.UserInfo.create(e.userId);
|
|
162
|
+
const bindUids = gameUserInfo.bind_uids;
|
|
163
|
+
for (const uid2 in bindUids) {
|
|
164
|
+
if (bindUids[uid2].ltuid === ltuid) {
|
|
165
|
+
bindUids[uid2].perm = 0 /* BIND */;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
return await ShowBindAccountCmdFunc(e);
|
|
170
|
+
}
|
|
171
|
+
);
|
|
172
|
+
|
|
173
|
+
export {
|
|
174
|
+
BindUID,
|
|
175
|
+
UnbindUID,
|
|
176
|
+
ShowBindAccountCmdFunc,
|
|
177
|
+
ShowBindAccount,
|
|
178
|
+
UnbindAccount
|
|
179
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// src/exports/database/types/dbs/base.ts
|
|
2
|
+
import { logger } from "node-karin";
|
|
3
|
+
import lodash from "node-karin/lodash";
|
|
4
|
+
var Dialect = /* @__PURE__ */ ((Dialect2) => {
|
|
5
|
+
Dialect2["Sqlite"] = "sqlite";
|
|
6
|
+
Dialect2["MySQL"] = "mysql";
|
|
7
|
+
Dialect2["MariaDB"] = "mariadb";
|
|
8
|
+
Dialect2["PostgreSQL"] = "postgres";
|
|
9
|
+
Dialect2["MSSQL"] = "mssql";
|
|
10
|
+
Dialect2["Oracle"] = "oracle";
|
|
11
|
+
Dialect2["DB2"] = "db2";
|
|
12
|
+
Dialect2["Snowflake"] = "snowflake";
|
|
13
|
+
return Dialect2;
|
|
14
|
+
})(Dialect || {});
|
|
15
|
+
var DatabaseType = /* @__PURE__ */ ((DatabaseType2) => {
|
|
16
|
+
DatabaseType2["File"] = "file";
|
|
17
|
+
DatabaseType2["Dir"] = "dir";
|
|
18
|
+
DatabaseType2["Db"] = "db";
|
|
19
|
+
return DatabaseType2;
|
|
20
|
+
})(DatabaseType || {});
|
|
21
|
+
var DatabaseArray = class _DatabaseArray extends Array {
|
|
22
|
+
constructor(items) {
|
|
23
|
+
super();
|
|
24
|
+
Object.setPrototypeOf(this, _DatabaseArray.prototype);
|
|
25
|
+
if (Array.isArray(items)) {
|
|
26
|
+
this.push(...items);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @param element - string | number
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
has(element) {
|
|
34
|
+
return new Set(this).has(element);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @param isEqual 是否不添加重复元素
|
|
38
|
+
*/
|
|
39
|
+
add(element, isEqual) {
|
|
40
|
+
if (isEqual) {
|
|
41
|
+
const existingSet = new Set(this.map((item) => JSON.stringify(item)));
|
|
42
|
+
if (existingSet.has(JSON.stringify(element))) return this;
|
|
43
|
+
}
|
|
44
|
+
this.push(element);
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @param isEqual 是否不添加重复元素
|
|
49
|
+
*/
|
|
50
|
+
addSome(elements, isEqual) {
|
|
51
|
+
if (isEqual) {
|
|
52
|
+
const existingSet = new Set(this.map((item) => JSON.stringify(item)));
|
|
53
|
+
elements = elements.filter((element) => !existingSet.has(JSON.stringify(element)));
|
|
54
|
+
if (elements.length === 0) return this;
|
|
55
|
+
}
|
|
56
|
+
this.push(...elements);
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @param isIndex predicate是否为索引
|
|
61
|
+
*/
|
|
62
|
+
remove(predicate, isIndex = false) {
|
|
63
|
+
let newArr = [];
|
|
64
|
+
if (isIndex && lodash.isNumber(predicate)) {
|
|
65
|
+
if (predicate < 0 || predicate >= this.length) {
|
|
66
|
+
logger.error(`DatabaseArray\u7D22\u5F15 ${predicate} \u8D85\u51FA\u8303\u56F4`);
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
newArr = [...this.slice(0, predicate), ...this.slice(predicate + 1)];
|
|
70
|
+
} else if (lodash.isFunction(predicate)) {
|
|
71
|
+
newArr = this.filter((item) => !predicate(item));
|
|
72
|
+
} else {
|
|
73
|
+
newArr = lodash.without(this, predicate);
|
|
74
|
+
}
|
|
75
|
+
this.length = 0;
|
|
76
|
+
this.push(...newArr);
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
clear() {
|
|
80
|
+
this.length = 0;
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export {
|
|
86
|
+
Dialect,
|
|
87
|
+
DatabaseType,
|
|
88
|
+
DatabaseArray
|
|
89
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Table
|
|
3
|
+
} from "./chunk-5NA7ZPDS.js";
|
|
4
|
+
import {
|
|
5
|
+
Database
|
|
6
|
+
} from "./chunk-G547WVGV.js";
|
|
7
|
+
import {
|
|
8
|
+
dir
|
|
9
|
+
} from "./chunk-SHLPPEAY.js";
|
|
10
|
+
|
|
11
|
+
// src/exports/database/tables/mysAccountInfo.ts
|
|
12
|
+
var MysAccountInfoTable = new Table(
|
|
13
|
+
dir.DataDir,
|
|
14
|
+
"mys_account_info_data",
|
|
15
|
+
"db" /* Db */
|
|
16
|
+
);
|
|
17
|
+
var MysAccountInfoDB = await MysAccountInfoTable.init(
|
|
18
|
+
{
|
|
19
|
+
ltuid: Database.PkColumn("STRING"),
|
|
20
|
+
type: Database.Column("STRING", "mihoyo" /* cn */),
|
|
21
|
+
cookie: Database.Column("TEXT", ""),
|
|
22
|
+
stoken: Database.Column("STRING", ""),
|
|
23
|
+
deviceMd5: Database.Column("STRING", "")
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
export {
|
|
28
|
+
MysAccountInfoTable,
|
|
29
|
+
MysAccountInfoDB
|
|
30
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__export
|
|
3
|
+
} from "./chunk-MLKGABMK.js";
|
|
4
|
+
|
|
5
|
+
// src/exports/utils/common.ts
|
|
6
|
+
var common_exports = {};
|
|
7
|
+
__export(common_exports, {
|
|
8
|
+
ObjToStr: () => ObjToStr,
|
|
9
|
+
StrToObj: () => StrToObj,
|
|
10
|
+
getDeviceGuid: () => getDeviceGuid,
|
|
11
|
+
randomString: () => randomString
|
|
12
|
+
});
|
|
13
|
+
import lodash from "node-karin/lodash";
|
|
14
|
+
var randomString = (length, type) => {
|
|
15
|
+
let str = "0123456789";
|
|
16
|
+
if (type === "Lower" || type === "All") {
|
|
17
|
+
str += "abcdefghijklmnopqrstuvwxyz";
|
|
18
|
+
}
|
|
19
|
+
if (type === "Upper" || type === "All") {
|
|
20
|
+
str += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
21
|
+
}
|
|
22
|
+
return lodash.sampleSize(str, length).join("");
|
|
23
|
+
};
|
|
24
|
+
var getDeviceGuid = () => {
|
|
25
|
+
function S4() {
|
|
26
|
+
return ((1 + Math.random()) * 65536 | 0).toString(16).substring(1);
|
|
27
|
+
}
|
|
28
|
+
return S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4();
|
|
29
|
+
};
|
|
30
|
+
var StrToObj = (Str, sep) => {
|
|
31
|
+
const strObj = {};
|
|
32
|
+
Str.split(sep).forEach((item) => {
|
|
33
|
+
const [key, value] = item.split("=");
|
|
34
|
+
if (key) {
|
|
35
|
+
strObj[key] = value || "";
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return strObj;
|
|
39
|
+
};
|
|
40
|
+
var ObjToStr = (obj, sep) => {
|
|
41
|
+
return Object.entries(obj).filter(([k, v]) => v).map(([k, v]) => `${k}=${v}`).join(sep) + sep;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export {
|
|
45
|
+
randomString,
|
|
46
|
+
getDeviceGuid,
|
|
47
|
+
StrToObj,
|
|
48
|
+
ObjToStr,
|
|
49
|
+
common_exports
|
|
50
|
+
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Table
|
|
3
|
+
} from "./chunk-5NA7ZPDS.js";
|
|
4
|
+
import {
|
|
5
|
+
Database
|
|
6
|
+
} from "./chunk-G547WVGV.js";
|
|
7
|
+
import {
|
|
8
|
+
common_exports
|
|
9
|
+
} from "./chunk-LG34FPBI.js";
|
|
10
|
+
import {
|
|
11
|
+
dir
|
|
12
|
+
} from "./chunk-SHLPPEAY.js";
|
|
13
|
+
|
|
14
|
+
// src/exports/database/tables/mysDeviceInfo.ts
|
|
15
|
+
var MysDeviceInfoTable = new Table(
|
|
16
|
+
dir.DataDir,
|
|
17
|
+
"mys_device_info_data",
|
|
18
|
+
"db" /* Db */
|
|
19
|
+
);
|
|
20
|
+
var MysDeviceInfoDB = await MysDeviceInfoTable.init(
|
|
21
|
+
{
|
|
22
|
+
md5: Database.PkColumn("STRING"),
|
|
23
|
+
deviceId: Database.Column("STRING", common_exports.getDeviceGuid),
|
|
24
|
+
deviceFp: Database.Column("STRING", ""),
|
|
25
|
+
name: Database.Column("STRING", ""),
|
|
26
|
+
board: Database.Column("STRING", ""),
|
|
27
|
+
model: Database.Column("STRING", ""),
|
|
28
|
+
oaid: Database.Column("STRING", ""),
|
|
29
|
+
version: Database.Column("INTEGER", 12),
|
|
30
|
+
fingerprint: Database.Column("STRING", ""),
|
|
31
|
+
product: Database.Column("STRING", "")
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
export {
|
|
36
|
+
MysDeviceInfoTable,
|
|
37
|
+
MysDeviceInfoDB
|
|
38
|
+
};
|
|
File without changes
|
|
@@ -6,38 +6,34 @@ var pluginDir = fileURLToPath(new URL("../", import.meta.url));
|
|
|
6
6
|
var pluginName = path.basename(pluginDir);
|
|
7
7
|
var pkg = requireFileSync(path.join(pluginDir, "package.json"));
|
|
8
8
|
var dir = {
|
|
9
|
-
/** 根目录绝对路径 */
|
|
9
|
+
/** @description 根目录绝对路径 */
|
|
10
10
|
pluginDir,
|
|
11
|
-
/** 插件目录名称 */
|
|
11
|
+
/** @description 插件目录名称 */
|
|
12
12
|
pluginName,
|
|
13
|
-
/** package.json */
|
|
13
|
+
/** @description package.json */
|
|
14
14
|
pkg,
|
|
15
|
-
/** 插件版本 package.json 的 version */
|
|
15
|
+
/** @description 插件版本 package.json 的 version */
|
|
16
16
|
get version() {
|
|
17
17
|
return pkg.version;
|
|
18
18
|
},
|
|
19
|
-
/** 插件名称 package.json 的 name */
|
|
19
|
+
/** @description 插件名称 package.json 的 name */
|
|
20
20
|
get name() {
|
|
21
21
|
return pkg.name;
|
|
22
22
|
},
|
|
23
|
-
/**
|
|
24
|
-
get defConfigDir() {
|
|
25
|
-
return path.join(pluginDir, "config");
|
|
26
|
-
},
|
|
27
|
-
/** 在`@karinjs`中的绝对路径 */
|
|
23
|
+
/** @description 在`@karinjs`中的绝对路径 */
|
|
28
24
|
get karinPath() {
|
|
29
25
|
return path.join(karinPathBase, pluginName);
|
|
30
26
|
},
|
|
31
|
-
/**
|
|
32
|
-
get ConfigDir() {
|
|
33
|
-
return path.join(this.karinPath, "config");
|
|
34
|
-
},
|
|
35
|
-
/** 插件数据目录 `@karinjs/karin-plugin-xxx/data` */
|
|
27
|
+
/** @description 插件数据目录 `@karinjs/karin-plugin-xxx/data` */
|
|
36
28
|
get DataDir() {
|
|
37
29
|
return path.join(this.karinPath, "data");
|
|
38
30
|
},
|
|
39
|
-
/**
|
|
40
|
-
get
|
|
31
|
+
/** @description 插件配置目录 `@karinjs/karin-plugin-xxx/config` */
|
|
32
|
+
get ConfigDir() {
|
|
33
|
+
return path.join(this.karinPath, "config");
|
|
34
|
+
},
|
|
35
|
+
/** @description 插件资源目录 `@karinjs/karin-plugin-xxx/resources` */
|
|
36
|
+
get ResourcesDir() {
|
|
41
37
|
return path.join(this.karinPath, "resources");
|
|
42
38
|
}
|
|
43
39
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// src/exports/database/types/tables/mysAccountInfo.ts
|
|
2
|
+
var MysAccountType = /* @__PURE__ */ ((MysAccountType2) => {
|
|
3
|
+
MysAccountType2["cn"] = "mihoyo";
|
|
4
|
+
MysAccountType2["os"] = "hoyolab";
|
|
5
|
+
return MysAccountType2;
|
|
6
|
+
})(MysAccountType || {});
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
MysAccountType
|
|
10
|
+
};
|
|
File without changes
|