koishi-plugin-maibot 1.7.65 → 1.7.67
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/lib/binding-verify.d.ts +15 -1
- package/lib/binding-verify.d.ts.map +1 -1
- package/lib/binding-verify.js +71 -5
- package/lib/binding-verify.js.map +1 -1
- package/lib/database.d.ts +12 -0
- package/lib/database.d.ts.map +1 -1
- package/lib/database.js +10 -0
- package/lib/database.js.map +1 -1
- package/lib/index.d.ts +6 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +551 -116
- package/lib/index.js.map +1 -1
- package/lib/priority-cooldown.d.ts +49 -1
- package/lib/priority-cooldown.d.ts.map +1 -1
- package/lib/priority-cooldown.js +365 -5
- package/lib/priority-cooldown.js.map +1 -1
- package/package.json +1 -1
package/lib/binding-verify.d.ts
CHANGED
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
import type { UserBinding } from './database';
|
|
2
2
|
export declare function normalizePreviewUserId(userId: string | number): string;
|
|
3
|
+
/** 与插件配置 bindingPlayerNameMatch 对应 */
|
|
4
|
+
export interface BindingPlayerNameMatchConfig {
|
|
5
|
+
/** 0–100:规范化后玩家名相似度下限(编辑距离比值×100)。100 须完全一致 */
|
|
6
|
+
minSimilarityPercent?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface BindingNameMatchOptions {
|
|
9
|
+
minSimilarityPercent: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function resolveBindingNameMatchOptions(cfg?: BindingPlayerNameMatchConfig): BindingNameMatchOptions;
|
|
12
|
+
/** 玩家名规范化:去首尾空白 + Unicode NFKC(全角英数、兼容字符等与半角统一) */
|
|
13
|
+
export declare function normalizePlayerNameForMatch(name: string): string;
|
|
14
|
+
/** 0–1,分母为 max(len);用于短玩家名 */
|
|
15
|
+
export declare function playerNameSimilarityRatio(a: string, b: string): number;
|
|
3
16
|
/**
|
|
4
17
|
* 校验 preview 与绑定是否为同一街机账号(加密 UserID + 可选绑定时的玩家名)
|
|
18
|
+
* @param nameMatch 玩家名:先 NFKC 规范化,再按 minSimilarityPercent 比较编辑距离比值
|
|
5
19
|
*/
|
|
6
20
|
export declare function verifyPreviewMatchesBinding(binding: UserBinding, preview: {
|
|
7
21
|
UserID: string | number;
|
|
8
22
|
UserName?: string;
|
|
9
|
-
}): string | null;
|
|
23
|
+
}, nameMatch?: BindingNameMatchOptions): string | null;
|
|
10
24
|
/** lastStateAt:maibot_user_rebind_state.lastBindChangeAt;bindTime:当前绑定记录的 bindTime(无绑定则 0) */
|
|
11
25
|
export declare function msUntilBindChangeAllowed(lastStateAtMs: number, bindTimeMs: number, minIntervalDays: number): number;
|
|
12
26
|
export declare function formatBindChangeWaitHuman(ms: number): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-verify.d.ts","sourceRoot":"","sources":["../src/binding-verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEtE;AAED
|
|
1
|
+
{"version":3,"file":"binding-verify.d.ts","sourceRoot":"","sources":["../src/binding-verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEtE;AAED,sCAAsC;AACtC,MAAM,WAAW,4BAA4B;IAC3C,+CAA+C;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAID,wBAAgB,8BAA8B,CAC5C,GAAG,CAAC,EAAE,4BAA4B,GACjC,uBAAuB,CAKzB;AAED,mDAAmD;AACnD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhE;AAsBD,8BAA8B;AAC9B,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACvD,SAAS,GAAE,uBAA0D,GACpE,MAAM,GAAG,IAAI,CAgCf;AAED,8FAA8F;AAC9F,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,GACtB,MAAM,CAMR;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAS5D"}
|
package/lib/binding-verify.js
CHANGED
|
@@ -1,28 +1,94 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.normalizePreviewUserId = normalizePreviewUserId;
|
|
4
|
+
exports.resolveBindingNameMatchOptions = resolveBindingNameMatchOptions;
|
|
5
|
+
exports.normalizePlayerNameForMatch = normalizePlayerNameForMatch;
|
|
6
|
+
exports.playerNameSimilarityRatio = playerNameSimilarityRatio;
|
|
4
7
|
exports.verifyPreviewMatchesBinding = verifyPreviewMatchesBinding;
|
|
5
8
|
exports.msUntilBindChangeAllowed = msUntilBindChangeAllowed;
|
|
6
9
|
exports.formatBindChangeWaitHuman = formatBindChangeWaitHuman;
|
|
7
10
|
function normalizePreviewUserId(userId) {
|
|
8
11
|
return String(userId);
|
|
9
12
|
}
|
|
13
|
+
const DEFAULT_MIN_SIMILARITY = 100;
|
|
14
|
+
function resolveBindingNameMatchOptions(cfg) {
|
|
15
|
+
let p = cfg?.minSimilarityPercent;
|
|
16
|
+
if (typeof p !== 'number' || Number.isNaN(p))
|
|
17
|
+
p = DEFAULT_MIN_SIMILARITY;
|
|
18
|
+
p = Math.min(100, Math.max(0, p));
|
|
19
|
+
return { minSimilarityPercent: p };
|
|
20
|
+
}
|
|
21
|
+
/** 玩家名规范化:去首尾空白 + Unicode NFKC(全角英数、兼容字符等与半角统一) */
|
|
22
|
+
function normalizePlayerNameForMatch(name) {
|
|
23
|
+
return name.normalize('NFKC').trim();
|
|
24
|
+
}
|
|
25
|
+
function levenshtein(a, b) {
|
|
26
|
+
const m = a.length;
|
|
27
|
+
const n = b.length;
|
|
28
|
+
if (m === 0)
|
|
29
|
+
return n;
|
|
30
|
+
if (n === 0)
|
|
31
|
+
return m;
|
|
32
|
+
const dp = new Uint32Array(n + 1);
|
|
33
|
+
for (let j = 0; j <= n; j++)
|
|
34
|
+
dp[j] = j;
|
|
35
|
+
for (let i = 1; i <= m; i++) {
|
|
36
|
+
let prev = dp[0];
|
|
37
|
+
dp[0] = i;
|
|
38
|
+
for (let j = 1; j <= n; j++) {
|
|
39
|
+
const tmp = dp[j];
|
|
40
|
+
const cost = a[i - 1] === b[j - 1] ? 0 : 1;
|
|
41
|
+
dp[j] = Math.min(dp[j] + 1, dp[j - 1] + 1, prev + cost);
|
|
42
|
+
prev = tmp;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return dp[n];
|
|
46
|
+
}
|
|
47
|
+
/** 0–1,分母为 max(len);用于短玩家名 */
|
|
48
|
+
function playerNameSimilarityRatio(a, b) {
|
|
49
|
+
if (a === b)
|
|
50
|
+
return 1;
|
|
51
|
+
const maxLen = Math.max(a.length, b.length);
|
|
52
|
+
if (maxLen === 0)
|
|
53
|
+
return 1;
|
|
54
|
+
return Math.max(0, 1 - levenshtein(a, b) / maxLen);
|
|
55
|
+
}
|
|
10
56
|
/**
|
|
11
57
|
* 校验 preview 与绑定是否为同一街机账号(加密 UserID + 可选绑定时的玩家名)
|
|
58
|
+
* @param nameMatch 玩家名:先 NFKC 规范化,再按 minSimilarityPercent 比较编辑距离比值
|
|
12
59
|
*/
|
|
13
|
-
function verifyPreviewMatchesBinding(binding, preview) {
|
|
60
|
+
function verifyPreviewMatchesBinding(binding, preview, nameMatch = resolveBindingNameMatchOptions()) {
|
|
14
61
|
const pid = normalizePreviewUserId(preview.UserID);
|
|
15
62
|
if (pid === '-1' || preview.UserID === -1) {
|
|
16
63
|
return '❌ 无效或过期的二维码,无法完成验证。';
|
|
17
64
|
}
|
|
18
65
|
if (String(binding.maiUid) !== pid) {
|
|
19
|
-
return '❌
|
|
66
|
+
return '❌ 当前二维码对应的街机账号与绑定不一致,请使用已绑定账号本人微信获取的二维码。';
|
|
20
67
|
}
|
|
21
68
|
const boundName = binding.boundPlayerName?.trim();
|
|
22
|
-
if (boundName
|
|
23
|
-
return
|
|
69
|
+
if (!boundName || preview.UserName === undefined) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
const current = String(preview.UserName).trim();
|
|
73
|
+
const na = normalizePlayerNameForMatch(boundName);
|
|
74
|
+
const nb = normalizePlayerNameForMatch(current);
|
|
75
|
+
if (!na) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
if (!nb) {
|
|
79
|
+
return `❌ 玩家名与绑定记录不一致(绑定为「${boundName}」,当前玩家名为空)。如已改名请使用解绑卡流程后重新绑定。`;
|
|
80
|
+
}
|
|
81
|
+
const min = nameMatch.minSimilarityPercent;
|
|
82
|
+
const ratio = playerNameSimilarityRatio(na, nb);
|
|
83
|
+
const pct = ratio * 100;
|
|
84
|
+
if (pct + 1e-9 >= min) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
const minDisp = Number.isInteger(min) ? String(min) : min.toFixed(1);
|
|
88
|
+
if (min >= 100) {
|
|
89
|
+
return `❌ 玩家名与绑定记录不一致(绑定为「${boundName}」,当前为「${current}」)。如已改名请使用解绑卡流程后重新绑定。`;
|
|
24
90
|
}
|
|
25
|
-
return
|
|
91
|
+
return `❌ 玩家名与绑定记录不一致(绑定为「${boundName}」,当前为「${current}」)。规范化后相似度约 ${pct.toFixed(0)}%(要求≥${minDisp}%)。可在插件配置中调低「玩家名最低相似度」或解绑后重新绑定。`;
|
|
26
92
|
}
|
|
27
93
|
/** lastStateAt:maibot_user_rebind_state.lastBindChangeAt;bindTime:当前绑定记录的 bindTime(无绑定则 0) */
|
|
28
94
|
function msUntilBindChangeAllowed(lastStateAtMs, bindTimeMs, minIntervalDays) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-verify.js","sourceRoot":"","sources":["../src/binding-verify.ts"],"names":[],"mappings":";;AAEA,wDAEC;
|
|
1
|
+
{"version":3,"file":"binding-verify.js","sourceRoot":"","sources":["../src/binding-verify.ts"],"names":[],"mappings":"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"}
|
package/lib/database.d.ts
CHANGED
|
@@ -67,12 +67,23 @@ export interface MaiBotPriorityUser {
|
|
|
67
67
|
userId: string;
|
|
68
68
|
expiresAt?: Date;
|
|
69
69
|
updatedAt: Date;
|
|
70
|
+
/** 为 true 表示由「authority 高于阈值」自动写入的永久优先;权限回落时可安全删除,不影响卡密兑换记录 */
|
|
71
|
+
authorityAuto?: boolean;
|
|
70
72
|
}
|
|
71
73
|
/** 群组优先授权:绑定在 platform:guildId(无 platform 时仅 guildId) */
|
|
72
74
|
export interface MaiBotGroupPriority {
|
|
73
75
|
guildKey: string;
|
|
74
76
|
expiresAt?: Date;
|
|
75
77
|
updatedAt: Date;
|
|
78
|
+
/** 可取消/换绑本群群组优先的用户键(制表符分隔,与兑换时写入的账号键一致) */
|
|
79
|
+
managerUserIds?: string;
|
|
80
|
+
}
|
|
81
|
+
/** 群组优先换绑:先在原群发起,再在目标群完成 */
|
|
82
|
+
export interface MaiBotGroupRebindPending {
|
|
83
|
+
anchorUserId: string;
|
|
84
|
+
matchKeys: string;
|
|
85
|
+
fromGuildKey: string;
|
|
86
|
+
expiresAt: Date;
|
|
76
87
|
}
|
|
77
88
|
/** 解绑后仍记录上次绑定/解绑时间,用于换绑冷却 */
|
|
78
89
|
export interface MaiBotUserRebindState {
|
|
@@ -88,6 +99,7 @@ declare module 'koishi' {
|
|
|
88
99
|
maibot_card_keys: MaiBotCardKey;
|
|
89
100
|
maibot_priority_users: MaiBotPriorityUser;
|
|
90
101
|
maibot_group_priority: MaiBotGroupPriority;
|
|
102
|
+
maibot_group_rebind_pending: MaiBotGroupRebindPending;
|
|
91
103
|
maibot_user_rebind_state: MaiBotUserRebindState;
|
|
92
104
|
}
|
|
93
105
|
}
|
package/lib/database.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;IACvC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,IAAI,CAAA;CACb;AAED,sDAAsD;AACtD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE5D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,yCAAyC;IACzC,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,IAAI,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,EAAE,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
|
package/lib/database.js
CHANGED
|
@@ -85,6 +85,7 @@ function extendDatabase(ctx) {
|
|
|
85
85
|
userId: 'string',
|
|
86
86
|
expiresAt: 'timestamp',
|
|
87
87
|
updatedAt: 'timestamp',
|
|
88
|
+
authorityAuto: 'boolean',
|
|
88
89
|
}, {
|
|
89
90
|
primary: 'userId',
|
|
90
91
|
});
|
|
@@ -92,9 +93,18 @@ function extendDatabase(ctx) {
|
|
|
92
93
|
guildKey: 'string',
|
|
93
94
|
expiresAt: 'timestamp',
|
|
94
95
|
updatedAt: 'timestamp',
|
|
96
|
+
managerUserIds: 'text',
|
|
95
97
|
}, {
|
|
96
98
|
primary: 'guildKey',
|
|
97
99
|
});
|
|
100
|
+
ctx.model.extend('maibot_group_rebind_pending', {
|
|
101
|
+
anchorUserId: 'string',
|
|
102
|
+
matchKeys: 'text',
|
|
103
|
+
fromGuildKey: 'string',
|
|
104
|
+
expiresAt: 'timestamp',
|
|
105
|
+
}, {
|
|
106
|
+
primary: 'anchorUserId',
|
|
107
|
+
});
|
|
98
108
|
ctx.model.extend('maibot_user_rebind_state', {
|
|
99
109
|
userId: 'string',
|
|
100
110
|
lastBindChangeAt: 'timestamp',
|
package/lib/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -62,13 +62,18 @@ export interface Config {
|
|
|
62
62
|
autoRecallProcessingMessages?: boolean;
|
|
63
63
|
/** 卡密生成/删除/导出等管理指令需要的 Koishi authority,默认 4 */
|
|
64
64
|
authLevelForCardAdmin?: number;
|
|
65
|
-
/**
|
|
65
|
+
/** 普通用户指令冷却(优先用户可走更短冷却);authority > adminBypassAuthority 时绕过冷却并自动同步永久个人优先 */
|
|
66
66
|
priorityCooldown?: PriorityCooldownConfig;
|
|
67
67
|
/** 换绑冷却与解绑卡说明(shopUrl 留空则用 priorityCooldown.shopUrl) */
|
|
68
68
|
rebindPolicy?: {
|
|
69
69
|
minDaysBetweenBindChange: number;
|
|
70
70
|
shopUrl?: string;
|
|
71
71
|
};
|
|
72
|
+
/** SGID / preview 校验时:绑定快照玩家名与当前玩家名的匹配(含 /mai状态、mymai 等) */
|
|
73
|
+
bindingPlayerNameMatch?: {
|
|
74
|
+
/** 0–100:NFKC 规范化后,编辑距离相似度下限;100 为须完全一致。全角如 Milk 与半角 Milk 在 100 下通常视为一致 */
|
|
75
|
+
minSimilarityPercent: number;
|
|
76
|
+
};
|
|
72
77
|
}
|
|
73
78
|
export declare const Config: Schema<Config>;
|
|
74
79
|
export declare function apply(ctx: Context, config: Config): void;
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAW,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|