karin-plugin-mys-core 1.0.4 → 1.0.6

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.
Files changed (76) hide show
  1. package/README.md +1045 -79
  2. package/lib/apps/MiHoYoLogin.js +13 -12
  3. package/lib/apps/MysDevice.js +12 -13
  4. package/lib/apps/UIDManage.js +13 -12
  5. package/lib/{array-DuqoS2wx.d.ts → array-CCexQ14j.d.ts} +1 -1
  6. package/lib/{chunk-3BIQN6QA.js → chunk-BWFWWHCT.js} +20 -1
  7. package/lib/{chunk-JKZ5NRPX.js → chunk-BXA3VAQC.js} +3 -2
  8. package/lib/chunk-CZZETPLY.js +281 -0
  9. package/lib/{chunk-WQK5RDUV.js → chunk-DJTJKSNN.js} +157 -164
  10. package/lib/chunk-NUOK4VFP.js +72 -0
  11. package/lib/chunk-UC6INRYV.js +0 -0
  12. package/lib/chunk-UX2BDLJF.js +6 -0
  13. package/lib/exports/config/array.d.ts +1 -1
  14. package/lib/exports/config/config.d.ts +1 -1
  15. package/lib/exports/config/config.js +1 -1
  16. package/lib/exports/config/index.d.ts +1 -1
  17. package/lib/exports/config/index.js +1 -1
  18. package/lib/exports/database/database.js +1 -1
  19. package/lib/exports/database/dbs/base.js +1 -1
  20. package/lib/exports/database/dbs/index.js +1 -1
  21. package/lib/exports/database/dbs/sqlite3.js +1 -1
  22. package/lib/exports/database/dbs/table.js +1 -1
  23. package/lib/exports/database/index.js +8 -9
  24. package/lib/exports/database/tables/index.js +6 -7
  25. package/lib/exports/database/tables/mysAccountInfo.js +1 -1
  26. package/lib/exports/database/tables/mysDeviceInfo.js +2 -3
  27. package/lib/exports/database/tables/mysUserInfo.js +1 -1
  28. package/lib/exports/database/types/index.js +3 -3
  29. package/lib/exports/database/types/tables/index.js +3 -3
  30. package/lib/exports/mys/api/apis.d.ts +2 -2
  31. package/lib/exports/mys/api/apis.js +10 -11
  32. package/lib/exports/mys/api/app.js +3 -4
  33. package/lib/exports/mys/api/define.js +10 -11
  34. package/lib/exports/mys/api/index.js +13 -14
  35. package/lib/exports/mys/index.d.ts +3 -3
  36. package/lib/exports/mys/index.js +15 -17
  37. package/lib/exports/mys/types/index.d.ts +2 -2
  38. package/lib/exports/mys/types/index.js +1 -7
  39. package/lib/exports/mys/types/user/game.d.ts +2 -13
  40. package/lib/exports/mys/types/user/game.js +1 -7
  41. package/lib/exports/mys/types/user/index.d.ts +2 -2
  42. package/lib/exports/mys/types/user/index.js +1 -7
  43. package/lib/exports/mys/types/user/userInfo.d.ts +2 -2
  44. package/lib/exports/mys/user/deviceInfo.js +3 -4
  45. package/lib/exports/mys/user/game.d.ts +15 -4
  46. package/lib/exports/mys/user/game.js +5 -3
  47. package/lib/exports/mys/user/index.d.ts +1 -1
  48. package/lib/exports/mys/user/index.js +16 -15
  49. package/lib/exports/mys/user/userInfo.js +10 -11
  50. package/lib/exports/render/index.d.ts +3 -0
  51. package/lib/exports/render/index.js +13 -0
  52. package/lib/exports/render/render.d.ts +38 -0
  53. package/lib/exports/render/render.js +9 -0
  54. package/lib/exports/utils/common.d.ts +33 -1
  55. package/lib/exports/utils/index.d.ts +1 -3
  56. package/lib/exports/utils/index.js +1 -5
  57. package/package.json +13 -5
  58. package/resources/image/frame-logo.png +0 -0
  59. package/resources/image/mys-core-logo.png +0 -0
  60. package/resources/styles/karin-plugin-mys-core.css +1095 -0
  61. package/lib/apps/MiHoYoLogin.d.ts +0 -7
  62. package/lib/apps/MysDevice.d.ts +0 -5
  63. package/lib/apps/UIDManage.d.ts +0 -10
  64. package/lib/chunk-CDBMB57U.js +0 -52
  65. package/lib/chunk-NC54IKOY.js +0 -179
  66. package/lib/chunk-T6MFN2MO.js +0 -23
  67. package/lib/common-Dw5l6Uud.d.ts +0 -33
  68. package/lib/exports/utils/render.d.ts +0 -27
  69. package/lib/exports/utils/render.js +0 -7
  70. package/resources/template/ShowBindAccount/index.css +0 -1
  71. package/resources/template/ShowBindAccount/index.html +0 -65
  72. package/resources/template/ShowBindDevice/index.html +0 -20
  73. package/resources/template/ShowBindDevice/inex.css +0 -1
  74. package/resources/template/layout/default.css +0 -1
  75. package/resources/template/layout/default.html +0 -27
  76. /package/lib/{chunk-ARLTXJFJ.js → chunk-FOAQZIZ2.js} +0 -0
@@ -1,7 +0,0 @@
1
- import * as node_karin from 'node-karin';
2
-
3
- declare const MiHoYoLoginQRCode: node_karin.Command<keyof node_karin.MessageEventMap>;
4
- declare const BindCookieByMessage: node_karin.Command<keyof node_karin.MessageEventMap>;
5
- declare const BindStokenByMessage: node_karin.Command<keyof node_karin.MessageEventMap>;
6
-
7
- export { BindCookieByMessage, BindStokenByMessage, MiHoYoLoginQRCode };
@@ -1,5 +0,0 @@
1
- import * as node_karin from 'node-karin';
2
-
3
- declare const BindMysDevice: node_karin.Command<keyof node_karin.MessageEventMap>;
4
-
5
- export { BindMysDevice };
@@ -1,10 +0,0 @@
1
- import * as node_karin from 'node-karin';
2
- import { Message } from 'node-karin';
3
-
4
- declare const BindUID: node_karin.Command<keyof node_karin.MessageEventMap>;
5
- declare const UnbindUID: node_karin.Command<keyof node_karin.MessageEventMap>;
6
- declare const ShowBindAccountCmdFunc: (e: Message) => Promise<boolean>;
7
- declare const ShowBindAccount: node_karin.Command<keyof node_karin.MessageEventMap>;
8
- declare const UnbindAccount: node_karin.Command<keyof node_karin.MessageEventMap>;
9
-
10
- export { BindUID, ShowBindAccount, ShowBindAccountCmdFunc, UnbindAccount, UnbindUID };
@@ -1,52 +0,0 @@
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
- #pluginOptions;
7
- /**
8
- * @param pluginOptions 自定义额外plugin参数
9
- */
10
- constructor(cfg, pluginOptions = {}) {
11
- this.#renderCfg = cfg;
12
- this.#pluginOptions = pluginOptions;
13
- }
14
- /** @description 渲染Html路径为:resources/template/${template}/index.html */
15
- async template(template, rendeDdata, options = {}) {
16
- const img = await karin.render({
17
- type: options.type || "jpeg",
18
- omitBackground: options.type === "png",
19
- selector: "container",
20
- setViewport: {
21
- deviceScaleFactor: 2
22
- },
23
- ...options.render || {},
24
- name: `${this.#renderCfg.name}/${template}`,
25
- file: path.join(this.#renderCfg.pluginDir, `resources/template/${template}/index.html`),
26
- data: {
27
- ...rendeDdata,
28
- plugin: {
29
- ...this.#pluginOptions,
30
- ...options.plugin || {},
31
- template,
32
- name: this.#renderCfg.name,
33
- version: this.#renderCfg.version,
34
- resources: {
35
- default: path.join(this.#renderCfg.pluginDir, "resources").replace(/\\/g, "/"),
36
- download: this.#renderCfg.ResourcesDir.replace(/\\/g, "/")
37
- },
38
- defaultLayout: path.join(this.#renderCfg.pluginDir, "resources/template/layout/default.html")
39
- },
40
- karin: {
41
- version: config.pkg().version
42
- }
43
- }
44
- });
45
- if (!img) return null;
46
- return "base64://" + img;
47
- }
48
- };
49
-
50
- export {
51
- RenderTemplate
52
- };
@@ -1,179 +0,0 @@
1
- import {
2
- Render,
3
- UserInfo
4
- } from "./chunk-WQK5RDUV.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
- };
@@ -1,23 +0,0 @@
1
- // src/exports/mys/types/user/game.ts
2
- var RegisterGameBase = class {
3
- game;
4
- columnKey;
5
- /** @description 游戏名称 */
6
- name;
7
- /** @description 指令前缀匹配 */
8
- prefix;
9
- refresh;
10
- UserInfo;
11
- constructor(game, name, prefix, userInfo, refreshFuc) {
12
- this.game = game;
13
- this.columnKey = `${game}-uids`;
14
- this.name = name;
15
- this.prefix = prefix;
16
- this.UserInfo = userInfo;
17
- this.refresh = refreshFuc;
18
- }
19
- };
20
-
21
- export {
22
- RegisterGameBase
23
- };
@@ -1,33 +0,0 @@
1
- /**
2
- * @description 生成随机字符串
3
- * @param length - 字符串长度
4
- */
5
- declare const randomString: (length: number, type: "Lower" | "Upper" | "All") => string;
6
- /**
7
- * @description 生成设备guid
8
- */
9
- declare const getDeviceGuid: () => string;
10
- /**
11
- * @description 将字符串解析为key-value键值对
12
- * @param Str - 字符串
13
- * @param sep - 分隔符
14
- */
15
- declare const StrToObj: <D extends {
16
- [key: string]: string;
17
- }>(Str: string, sep: string | RegExp) => Partial<D>;
18
- /**
19
- * @description 将key-value键值对解析为字符串
20
- * @param obj - key-value键值对
21
- * @param sep - 分隔符
22
- */
23
- declare const ObjToStr: (obj: Record<string, string | number>, sep: string) => string;
24
-
25
- declare const common_ObjToStr: typeof ObjToStr;
26
- declare const common_StrToObj: typeof StrToObj;
27
- declare const common_getDeviceGuid: typeof getDeviceGuid;
28
- declare const common_randomString: typeof randomString;
29
- declare namespace common {
30
- export { common_ObjToStr as ObjToStr, common_StrToObj as StrToObj, common_getDeviceGuid as getDeviceGuid, common_randomString as randomString };
31
- }
32
-
33
- export { ObjToStr as O, StrToObj as S, common as c, getDeviceGuid as g, randomString as r };
@@ -1,27 +0,0 @@
1
- import { Options } from 'node-karin';
2
-
3
- interface RenderCfg {
4
- /** @description 插件名称 package.json 的 name */
5
- name: string;
6
- /** @description 插件版本 package.json 的 version */
7
- version: string;
8
- /** @description 根目录绝对路径 */
9
- pluginDir: string;
10
- /** @description 插件资源目录 `@karinjs/karin-plugin-xxx/resources` */
11
- ResourcesDir: string;
12
- }
13
- declare class RenderTemplate<K extends string> {
14
- #private;
15
- /**
16
- * @param pluginOptions 自定义额外plugin参数
17
- */
18
- constructor(cfg: RenderCfg, pluginOptions?: Omit<Record<string, any>, 'template' | 'name' | 'version' | 'resources' | 'defaultLayout'>);
19
- /** @description 渲染Html路径为:resources/template/${template}/index.html */
20
- template(template: K, rendeDdata: Record<string, any>, options?: {
21
- type?: 'png' | 'jpeg' | 'webp';
22
- plugin?: Record<string, any>;
23
- render?: Omit<Options, 'name' | 'file' | 'data'>;
24
- }): Promise<string | null>;
25
- }
26
-
27
- export { type RenderCfg, RenderTemplate };
@@ -1,7 +0,0 @@
1
- import {
2
- RenderTemplate
3
- } from "../../chunk-CDBMB57U.js";
4
- import "../../chunk-MLKGABMK.js";
5
- export {
6
- RenderTemplate
7
- };
@@ -1 +0,0 @@
1
- #container.container{background-color:#f6f0e6;padding:20px 18px 36px 18px}#container.container .mys-logo-bg{position:absolute;top:-10px;right:0;width:150px;height:72px;background-image:url("../../image/mys-logo.png");background-size:contain;background-repeat:no-repeat;background-position:center;opacity:.5;z-index:5}#container.container .no-accounts{text-align:center;color:#6b6b6b;padding:20px;margin:12px 0;font-weight:600}#container.container .user{display:flex;align-items:center;gap:10px;margin-bottom:12px}#container.container .user .avatar{width:40px;height:40px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex:0 0 auto}#container.container .user .nickname{color:#222;font-size:14px;min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word}#container.container .bind-account{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid rgba(0,0,0,.06);padding:12px;margin-bottom:12px;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,.04)}#container.container .bind-account .title{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px}#container.container .bind-account .title .ltuid{display:flex;color:#3f7dd1;font-size:14px;font-weight:600}#container.container .bind-account .title .perm{display:flex;gap:8px;align-items:center}#container.container .bind-account .title .perm .cookie,#container.container .bind-account .title .perm .stoken{display:inline-block;padding:4px 8px;font-size:12px;border-radius:12px;color:#fff;font-weight:600}#container.container .bind-account .title .perm .cookie{background:linear-gradient(180deg, rgb(52.5469767442, 193.0530232558, 85.6744186047), #2ea94b);box-shadow:0 1px 0 rgba(0,0,0,.06) inset}#container.container .bind-account .title .perm .stoken{background:linear-gradient(180deg, #f6d86a, #f1c40f);color:rgba(0,0,0,.85)}#container.container .bind-account .bind-uid{display:flex;align-items:center;gap:12px;padding:6px 4px;border-radius:6px}#container.container .bind-account .bind-uid .game{border-radius:10px;width:40px;display:flex;align-items:center;justify-content:center}#container.container .bind-account .bind-uid .uids{flex:1 1 auto;display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:8px}#container.container .bind-account .bind-uid .uids .uid-item{display:flex;align-items:center;justify-content:center;padding:6px 8px;border-radius:8px;background:rgba(0,0,0,.06);color:#111;font-weight:600;font-size:13px;position:relative;overflow:visible;word-break:break-all}#container.container .bind-account .bind-uid .uids .uid-item[class~="4"]{color:rgba(0,0,0,.6)}#container.container .bind-account .bind-uid .uids .uid-item[class~="4"]::after{content:"";position:absolute;left:8%;right:8%;top:50%;height:1px;background:#d32f2f;transform:translateY(-50%);border-radius:2px}#container.container .bind-account .bind-uid+.bind-uid{padding-top:8px;position:relative}#container.container .bind-account .bind-uid+.bind-uid::before{content:"";position:absolute;width:90%;left:5%;right:0;top:0;height:1px;background:#3f7dd1;border-radius:1px}/*# sourceMappingURL=index.css.map */
@@ -1,65 +0,0 @@
1
- <!-- default layout -->
2
- {{extend plugin.defaultLayout}}
3
-
4
- <!-- 页面样式资源 -->
5
- {{block 'css'}}
6
- <link rel="stylesheet" type="text/css" href="{{plugin.resources.default}}/template/{{plugin.template}}/index.css" />
7
-
8
- {{/block}}
9
-
10
- <!-- 页面布局内容 -->
11
- {{block 'container'}}
12
- <!-- 右上角装饰 logo -->
13
- <div class="mys-logo-bg"></div>
14
-
15
- <div class="user">
16
- <img class="avatar" src="{{User.avatar}}" />
17
- <span class="nickname">{{@User.nickname}} ({{User.userId}})</span>
18
- </div>
19
-
20
- {{if AccountList && AccountList.length > 0}}
21
- {{each AccountList account idx}}
22
- <div class="bind-account">
23
-
24
- <div class="title">
25
- <span class="ltuid">MYS UID ({{idx + 1}}):{{account.ltuid}}</span>
26
-
27
- <div class="perm">
28
- {{if account.permission >= 1}}
29
- <span class="cookie">cookie</span>
30
- {{/if}}
31
-
32
- {{if account.permission >= 2}}
33
- <span class="stoken">stoken</span>
34
- {{/if}}
35
- </div>
36
-
37
- </div>
38
-
39
- {{each account.bindUids bindUid}}
40
- <div class="bind-uid">
41
- <img class="game" src="{{plugin.resources.default}}/image/launcher-icon/{{bindUid.gameName}}.png" />
42
-
43
- <div class="uids">
44
- {{each bindUid.uids info}}
45
- <span class="uid-item {{info.perm}}">{{info.uid}}</span>
46
- {{/each}}
47
- </div>
48
-
49
- </div>
50
- {{/each}}
51
-
52
- </div>
53
- {{/each}}
54
- {{else}}
55
- <div class="no-accounts">暂未绑定账号</div>
56
- {{/if}}
57
-
58
- {{/block}}
59
-
60
- <!-- 页面脚本资源 -->
61
- {{block 'script'}}
62
- <script>
63
-
64
- </script>
65
- {{/block}}
@@ -1,20 +0,0 @@
1
- <!-- default layout -->
2
- {{extend plugin.defaultLayout}}
3
-
4
- <!-- 页面样式资源 -->
5
- {{block 'css'}}
6
- <link rel="stylesheet" type="text/css" href="{{plugin.resources.default}}/template/{{plugin.template}}/index.css" />
7
-
8
- {{/block}}
9
-
10
- <!-- 页面布局内容 -->
11
- {{block 'container'}}
12
-
13
- {{/block}}
14
-
15
- <!-- 页面脚本资源 -->
16
- {{block 'script'}}
17
- <script>
18
-
19
- </script>
20
- {{/block}}
@@ -1 +0,0 @@
1
- /*# sourceMappingURL=inex.css.map */
@@ -1 +0,0 @@
1
- @font-face{font-family:"HYWenHei-55W";src:url("../../fonts//HYWenHei-55W.ttf")}:root{--width: 600px }*{margin:0;padding:0;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none}body{background:rgba(0,0,0,0);color:#fff;width:var(--width)}.container{font-family:"HYWenHei-55W";padding-bottom:40px;position:relative;display:flex;flex-direction:column;width:100%}.copyright{left:0;bottom:0;display:flex;width:100%;font-size:16px;position:absolute;align-items:center;justify-content:center;padding:10px 0 10px 0;background-color:#000}.copyright strong{padding-top:5px;font-weight:bold;font-size:10px;color:#f2c06f}/*# sourceMappingURL=default.css.map */
@@ -1,27 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
-
4
- <head>
5
- <meta http-equiv="content-type" content="text/html;charset=utf-8" />
6
- <link rel="stylesheet" type="text/css" href="{{plugin.resources.default}}/template/layout/default.css" />
7
-
8
- {{block 'css'}}{{/block}}
9
-
10
- </head>
11
-
12
- <body>
13
- <div class="container" id="container">
14
-
15
- {{block 'container'}}{{/block}}
16
-
17
- <div class="copyright">
18
- Created&nbsp;by&nbsp;Karin<strong>v{{karin.version}}</strong>&nbsp;&&nbsp;{{plugin.name}}<strong>v{{plugin.version}}</strong>
19
- </div>
20
-
21
- </div>
22
-
23
- {{block 'script'}}{{/block}}
24
-
25
- </body>
26
-
27
- </html>
File without changes