@zhin.js/plugin-group-suite 1.1.14 → 1.1.16
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/README.md +12 -0
- package/commands/checkin/index.js +3 -3
- package/commands/checkin/index.ts +3 -3
- package/commands/forget/index.js +3 -3
- package/commands/forget/index.ts +3 -3
- package/commands/keyword-add/[keyword]/index.js +4 -3
- package/commands/keyword-add/[keyword]/index.ts +4 -3
- package/commands/keyword-list/index.js +4 -3
- package/commands/keyword-list/index.ts +4 -3
- package/commands/keyword-remove/[keyword]/index.js +5 -4
- package/commands/keyword-remove/[keyword]/index.ts +5 -4
- package/commands/mypoints/index.js +3 -3
- package/commands/mypoints/index.ts +3 -3
- package/commands/mystats/index.js +3 -3
- package/commands/mystats/index.ts +3 -3
- package/commands/rank/index.js +3 -3
- package/commands/rank/index.ts +3 -3
- package/commands/stats/index.js +6 -5
- package/commands/stats/index.ts +6 -5
- package/commands/stats-card/index.js +4 -3
- package/commands/stats-card/index.ts +4 -3
- package/commands/stats-rank/index.js +6 -5
- package/commands/stats-rank/index.ts +6 -5
- package/commands/stats-week/index.js +6 -5
- package/commands/stats-week/index.ts +6 -5
- package/commands/teach/index.js +3 -3
- package/commands/teach/index.ts +3 -3
- package/commands/teach-list/[[page]]/index.js +3 -3
- package/commands/teach-list/[[page]]/index.ts +3 -3
- package/commands/teach-regex/index.js +3 -3
- package/commands/teach-regex/index.ts +3 -3
- package/handlers/welcome/index.js +9 -1
- package/handlers/welcome/index.ts +8 -1
- package/lib/analysis-card.d.ts +1 -1
- package/lib/analysis-card.d.ts.map +1 -1
- package/lib/analysis-card.js +12 -11
- package/lib/analysis-card.js.map +1 -1
- package/lib/analysis.d.ts +2 -2
- package/lib/analysis.d.ts.map +1 -1
- package/lib/analysis.js +14 -20
- package/lib/analysis.js.map +1 -1
- package/lib/checkin-lib.d.ts +1 -1
- package/lib/checkin-lib.d.ts.map +1 -1
- package/lib/checkin-lib.js +23 -22
- package/lib/checkin-lib.js.map +1 -1
- package/lib/conversation-scope.d.ts +1 -0
- package/lib/conversation-scope.d.ts.map +1 -1
- package/lib/conversation-scope.js.map +1 -1
- package/lib/i18n.d.ts +2 -0
- package/lib/i18n.d.ts.map +1 -0
- package/lib/i18n.js +480 -0
- package/lib/i18n.js.map +1 -0
- package/lib/keywords.d.ts +1 -0
- package/lib/keywords.d.ts.map +1 -1
- package/lib/keywords.js +8 -7
- package/lib/keywords.js.map +1 -1
- package/lib/shared-runtime.d.ts +1 -0
- package/lib/shared-runtime.d.ts.map +1 -1
- package/lib/shared-runtime.js +2 -1
- package/lib/shared-runtime.js.map +1 -1
- package/lib/stats-card.d.ts +2 -2
- package/lib/stats-card.d.ts.map +1 -1
- package/lib/stats-card.js +15 -14
- package/lib/stats-card.js.map +1 -1
- package/lib/stats-data.d.ts +3 -2
- package/lib/stats-data.d.ts.map +1 -1
- package/lib/stats-data.js +13 -12
- package/lib/stats-data.js.map +1 -1
- package/lib/stats-lib.d.ts.map +1 -1
- package/lib/stats-lib.js +8 -7
- package/lib/stats-lib.js.map +1 -1
- package/lib/teach-lib.d.ts +1 -1
- package/lib/teach-lib.d.ts.map +1 -1
- package/lib/teach-lib.js +27 -26
- package/lib/teach-lib.js.map +1 -1
- package/package.json +12 -12
- package/skills/checkin/tools/checkin_query/index.js +5 -4
- package/skills/checkin/tools/checkin_query/index.ts +5 -4
- package/skills/checkin/tools/checkin_rank/index.js +4 -3
- package/skills/checkin/tools/checkin_rank/index.ts +4 -3
- package/skills/group-daily-analysis/tools/group_announce/index.js +3 -2
- package/skills/group-daily-analysis/tools/group_announce/index.ts +3 -2
- package/skills/group-daily-analysis/tools/stats_query/index.js +4 -3
- package/skills/group-daily-analysis/tools/stats_query/index.ts +4 -3
- package/skills/group-daily-analysis/tools/stats_user/index.js +4 -3
- package/skills/group-daily-analysis/tools/stats_user/index.ts +4 -3
- package/src/analysis-card.ts +13 -11
- package/src/analysis.ts +15 -13
- package/src/checkin-lib.ts +23 -21
- package/src/conversation-scope.ts +1 -0
- package/src/i18n.ts +480 -0
- package/src/keywords.ts +9 -7
- package/src/shared-runtime.ts +3 -1
- package/src/stats-card.ts +17 -16
- package/src/stats-data.ts +14 -12
- package/src/stats-lib.ts +8 -7
- package/src/teach-lib.ts +27 -26
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { defineHandler } from 'zhin.js/handler';
|
|
2
|
-
import {
|
|
2
|
+
import { hasResource } from 'zhin.js';
|
|
3
|
+
import { memberWelcomeOwnerToken, outboundMessageToken } from '@zhin.js/core/runtime';
|
|
3
4
|
import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../../src/config.js';
|
|
4
5
|
import { welcomeConversationAllowed } from '../../src/welcome-scope.js';
|
|
5
6
|
|
|
@@ -12,6 +13,12 @@ export default defineHandler({
|
|
|
12
13
|
if (!text || notice.name !== 'notice.group.member_increase'
|
|
13
14
|
|| notice.conversation?.kind !== 'group' || !notice.target?.id) return;
|
|
14
15
|
if (!welcomeConversationAllowed(config.welcomeConversations, notice.conversation)) return;
|
|
16
|
+
// #1012 A9 option 2: once the Agent session welcome (session-ops `welcome.enabled`) owns this
|
|
17
|
+
// conversation, MemberLifecycle sends the single welcome with its own gates; this plugin stays silent.
|
|
18
|
+
if (hasResource(this, memberWelcomeOwnerToken)) {
|
|
19
|
+
const owner = this.use(memberWelcomeOwnerToken);
|
|
20
|
+
if (owner.ownsWelcome(notice.conversation)) return;
|
|
21
|
+
}
|
|
15
22
|
const content = text.replaceAll('{name}', notice.target.name ?? notice.target.id)
|
|
16
23
|
.replaceAll('{id}', notice.target.id);
|
|
17
24
|
const result = await this.use(outboundMessageToken).send({
|
package/lib/analysis-card.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { AnalysisReportData } from "./analysis.js";
|
|
2
2
|
export declare const ANALYSIS_REPORT_CANVAS: "#d8dce3";
|
|
3
|
-
export declare function buildAnalysisReportHtml(data: AnalysisReportData): Promise<string>;
|
|
3
|
+
export declare function buildAnalysisReportHtml(data: AnalysisReportData, locale?: import('zhin.js/i18n').Locale): Promise<string>;
|
|
4
4
|
//# sourceMappingURL=analysis-card.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis-card.d.ts","sourceRoot":"","sources":["../src/analysis-card.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analysis-card.d.ts","sourceRoot":"","sources":["../src/analysis-card.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAQxD,eAAO,MAAM,sBAAsB,WAAoB,CAAC;AAUxD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,kBAAkB,EACxB,MAAM,CAAC,EAAE,OAAO,cAAc,EAAE,MAAM,GACrC,OAAO,CAAC,MAAM,CAAC,CA8FjB"}
|
package/lib/analysis-card.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { messages as t } from './i18n.js';
|
|
1
2
|
import { jsx, renderToHtml } from "@zhin.js/jsx";
|
|
2
3
|
import { BarChart, CardHeader, ProfileRow, QuoteCard, Row, Section, StatChip, TopicItem, } from "@zhin.js/components";
|
|
3
4
|
import { CARD_THEME, cardShell, elevatedCard, formatCount, } from "./card-layout.js";
|
|
@@ -9,15 +10,15 @@ const T = {
|
|
|
9
10
|
accentChars: CARD_THEME.accentDisk,
|
|
10
11
|
accentHour: CARD_THEME.barWarn,
|
|
11
12
|
};
|
|
12
|
-
export async function buildAnalysisReportHtml(data) {
|
|
13
|
+
export async function buildAnalysisReportHtml(data, locale) {
|
|
13
14
|
const { stats, channelName, days, startDate, endDate, llm } = data;
|
|
14
|
-
const title = channelName ?
|
|
15
|
+
const title = channelName ? t(locale, 'analysisNamed', { name: channelName }) : t(locale, 'analysis');
|
|
15
16
|
const peakLabel = `${String(stats.mostActiveHour).padStart(2, "0")}:00`;
|
|
16
17
|
const hourlyValues = Array.from({ length: 24 }, (_, hour) => stats.hourlyDistribution[hour] || 0);
|
|
17
18
|
const llmBlocks = [
|
|
18
19
|
llm?.topics?.length
|
|
19
20
|
? jsx(Section, {
|
|
20
|
-
title:
|
|
21
|
+
title: t(locale, 'topics'),
|
|
21
22
|
children: llm.topics.map((topic, i) => jsx(TopicItem, {
|
|
22
23
|
index: i + 1,
|
|
23
24
|
title: topic.topic,
|
|
@@ -27,7 +28,7 @@ export async function buildAnalysisReportHtml(data) {
|
|
|
27
28
|
: "",
|
|
28
29
|
llm?.quotes?.length
|
|
29
30
|
? jsx(Section, {
|
|
30
|
-
title:
|
|
31
|
+
title: t(locale, 'quotes'),
|
|
31
32
|
children: llm.quotes.map((quote, i) => jsx(QuoteCard, {
|
|
32
33
|
index: i + 1,
|
|
33
34
|
content: quote.content,
|
|
@@ -38,7 +39,7 @@ export async function buildAnalysisReportHtml(data) {
|
|
|
38
39
|
: "",
|
|
39
40
|
llm?.userTitles?.length
|
|
40
41
|
? jsx(Section, {
|
|
41
|
-
title:
|
|
42
|
+
title: t(locale, 'profiles'),
|
|
42
43
|
children: llm.userTitles.map((user, i) => jsx(ProfileRow, {
|
|
43
44
|
index: i + 1,
|
|
44
45
|
name: user.name,
|
|
@@ -51,27 +52,27 @@ export async function buildAnalysisReportHtml(data) {
|
|
|
51
52
|
const body = elevatedCard([
|
|
52
53
|
jsx(CardHeader, {
|
|
53
54
|
title,
|
|
54
|
-
subtitle:
|
|
55
|
+
subtitle: t(locale, 'analysisRange', { start: startDate, end: endDate, days }),
|
|
55
56
|
}),
|
|
56
57
|
jsx(Row, {
|
|
57
58
|
children: [
|
|
58
59
|
jsx(StatChip, {
|
|
59
|
-
label:
|
|
60
|
+
label: t(locale, 'messages'),
|
|
60
61
|
value: formatCount(stats.messageCount),
|
|
61
62
|
accent: T.accentMsg,
|
|
62
63
|
}),
|
|
63
64
|
jsx(StatChip, {
|
|
64
|
-
label:
|
|
65
|
+
label: t(locale, 'participants'),
|
|
65
66
|
value: formatCount(stats.participantCount),
|
|
66
67
|
accent: T.accentPeople,
|
|
67
68
|
}),
|
|
68
69
|
jsx(StatChip, {
|
|
69
|
-
label:
|
|
70
|
+
label: t(locale, 'characters'),
|
|
70
71
|
value: formatCount(stats.totalChars),
|
|
71
72
|
accent: T.accentChars,
|
|
72
73
|
}),
|
|
73
74
|
jsx(StatChip, {
|
|
74
|
-
label:
|
|
75
|
+
label: t(locale, 'active'),
|
|
75
76
|
value: peakLabel,
|
|
76
77
|
accent: T.accentHour,
|
|
77
78
|
}),
|
|
@@ -80,7 +81,7 @@ export async function buildAnalysisReportHtml(data) {
|
|
|
80
81
|
style: "margin-bottom:4px",
|
|
81
82
|
}),
|
|
82
83
|
jsx(Section, {
|
|
83
|
-
title:
|
|
84
|
+
title: t(locale, 'hourDistribution'),
|
|
84
85
|
children: jsx(BarChart, {
|
|
85
86
|
values: hourlyValues,
|
|
86
87
|
peakIndex: stats.mostActiveHour,
|
package/lib/analysis-card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis-card.js","sourceRoot":"","sources":["../src/analysis-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,GAAG,EACH,OAAO,EACP,QAAQ,EACR,SAAS,GACV,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC,MAAM,CAAC;AAExD,MAAM,CAAC,GAAG;IACR,GAAG,UAAU;IACb,SAAS,EAAE,UAAU,CAAC,SAAS;IAC/B,YAAY,EAAE,UAAU,CAAC,SAAS;IAClC,WAAW,EAAE,UAAU,CAAC,UAAU;IAClC,UAAU,EAAE,UAAU,CAAC,OAAO;CACtB,CAAC;AAEX,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAwB;
|
|
1
|
+
{"version":3,"file":"analysis-card.js","sourceRoot":"","sources":["../src/analysis-card.ts"],"names":[],"mappings":"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"}
|
package/lib/analysis.d.ts
CHANGED
|
@@ -81,12 +81,12 @@ export declare function formatTextReport(stats: BasicStats, options: {
|
|
|
81
81
|
days: number;
|
|
82
82
|
startDate: string;
|
|
83
83
|
endDate: string;
|
|
84
|
-
}): string;
|
|
84
|
+
}, locale?: import('zhin.js/i18n').Locale): string;
|
|
85
85
|
/**
|
|
86
86
|
* 将 LLM 分析结果追加到文本报告。
|
|
87
87
|
* 话题/金句/用户画像 设计灵感来自 astrbot_plugin_qq_group_daily_analysis
|
|
88
88
|
*/
|
|
89
|
-
export declare function appendLLMReport(textReport: string, llm: LLMAnalysis): string;
|
|
89
|
+
export declare function appendLLMReport(textReport: string, llm: LLMAnalysis, locale?: import('zhin.js/i18n').Locale): string;
|
|
90
90
|
/**
|
|
91
91
|
* 从 LLM 返回的文本中解析出 topics / quotes / userTitles。
|
|
92
92
|
* 约定 LLM 返回 JSON 或类似结构,此处做宽松解析。
|
package/lib/analysis.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../src/analysis.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../src/analysis.ts"],"names":[],"mappings":"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"}
|
package/lib/analysis.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* 群日常分析:从收件箱查询、基础统计、文本报告。
|
|
3
|
-
* 数据源为 zhin 内置 unified_inbox_message 表(需 inbox.enabled)。
|
|
4
|
-
*
|
|
5
|
-
* 话题/金句/用户画像分析逻辑灵感来自:
|
|
6
|
-
* https://github.com/SXP-Simon/astrbot_plugin_qq_group_daily_analysis
|
|
7
|
-
*/
|
|
1
|
+
import { messages as t } from './i18n.js';
|
|
8
2
|
export function buildAnalysisReportData(stats, meta, llm) {
|
|
9
3
|
return { ...meta, stats, llm };
|
|
10
4
|
}
|
|
@@ -78,20 +72,20 @@ export function computeBasicStats(rows) {
|
|
|
78
72
|
/**
|
|
79
73
|
* 生成纯文本报告(不含 LLM 内容)
|
|
80
74
|
*/
|
|
81
|
-
export function formatTextReport(stats, options) {
|
|
75
|
+
export function formatTextReport(stats, options, locale) {
|
|
82
76
|
const lines = [];
|
|
83
77
|
const title = options.channelName
|
|
84
|
-
?
|
|
85
|
-
:
|
|
78
|
+
? t(locale, 'analysisTextNamed', { name: options.channelName })
|
|
79
|
+
: t(locale, 'analysis');
|
|
86
80
|
lines.push(`📊 ${title}`);
|
|
87
|
-
lines.push(
|
|
81
|
+
lines.push(t(locale, 'analysisTextRange', { start: options.startDate, end: options.endDate, days: options.days }));
|
|
88
82
|
lines.push("");
|
|
89
|
-
lines.push(
|
|
90
|
-
lines.push(
|
|
91
|
-
lines.push(
|
|
92
|
-
lines.push(
|
|
83
|
+
lines.push(t(locale, 'analysisMessages', { count: stats.messageCount }));
|
|
84
|
+
lines.push(t(locale, 'analysisPeople', { count: stats.participantCount }));
|
|
85
|
+
lines.push(t(locale, 'analysisChars', { count: stats.totalChars }));
|
|
86
|
+
lines.push(t(locale, 'analysisPeak', { start: stats.mostActiveHour, end: stats.mostActiveHour + 1 }));
|
|
93
87
|
lines.push("");
|
|
94
|
-
lines.push(
|
|
88
|
+
lines.push(t(locale, 'hourDistributionText'));
|
|
95
89
|
const maxH = Math.max(...Object.values(stats.hourlyDistribution), 1);
|
|
96
90
|
for (let h = 0; h < 24; h++) {
|
|
97
91
|
const c = stats.hourlyDistribution[h] || 0;
|
|
@@ -104,24 +98,24 @@ export function formatTextReport(stats, options) {
|
|
|
104
98
|
* 将 LLM 分析结果追加到文本报告。
|
|
105
99
|
* 话题/金句/用户画像 设计灵感来自 astrbot_plugin_qq_group_daily_analysis
|
|
106
100
|
*/
|
|
107
|
-
export function appendLLMReport(textReport, llm) {
|
|
101
|
+
export function appendLLMReport(textReport, llm, locale) {
|
|
108
102
|
const lines = [textReport, ""];
|
|
109
103
|
if (llm.topics?.length) {
|
|
110
|
-
lines.push(
|
|
104
|
+
lines.push(t(locale, 'llmTopics'));
|
|
111
105
|
llm.topics.forEach((t, i) => {
|
|
112
106
|
lines.push(` ${i + 1}. ${t.topic}${t.summary ? ` — ${t.summary}` : ""}`);
|
|
113
107
|
});
|
|
114
108
|
lines.push("");
|
|
115
109
|
}
|
|
116
110
|
if (llm.quotes?.length) {
|
|
117
|
-
lines.push(
|
|
111
|
+
lines.push(t(locale, 'llmQuotes'));
|
|
118
112
|
llm.quotes.forEach((q, i) => {
|
|
119
113
|
lines.push(` ${i + 1}. 「${q.content}」 — ${q.sender}(${q.reason})`);
|
|
120
114
|
});
|
|
121
115
|
lines.push("");
|
|
122
116
|
}
|
|
123
117
|
if (llm.userTitles?.length) {
|
|
124
|
-
lines.push(
|
|
118
|
+
lines.push(t(locale, 'llmProfiles'));
|
|
125
119
|
llm.userTitles.forEach((u, i) => {
|
|
126
120
|
lines.push(` ${i + 1}. ${u.name} — ${u.title}${u.reason ? `(${u.reason})` : ""}`);
|
|
127
121
|
});
|
package/lib/analysis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../src/analysis.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../src/analysis.ts"],"names":[],"mappings":"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"}
|
package/lib/checkin-lib.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ import type { ConversationInput } from './conversation-scope.js';
|
|
|
2
2
|
import type { GroupSuiteConfig } from './config.js';
|
|
3
3
|
import type { GroupSuiteRuntime } from './runtime-state.js';
|
|
4
4
|
export declare function doCheckin(input: ConversationInput, cfg: GroupSuiteConfig, runtime: GroupSuiteRuntime): Promise<string>;
|
|
5
|
-
export declare function myPoints(input: ConversationInput, runtime: GroupSuiteRuntime): Promise<string>;
|
|
5
|
+
export declare function myPoints(input: ConversationInput, runtime: GroupSuiteRuntime, commandHead?: string): Promise<string>;
|
|
6
6
|
export declare function pointsRank(input: ConversationInput, cfg: GroupSuiteConfig, runtime: GroupSuiteRuntime): Promise<string>;
|
|
7
7
|
//# sourceMappingURL=checkin-lib.d.ts.map
|
package/lib/checkin-lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkin-lib.d.ts","sourceRoot":"","sources":["../src/checkin-lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkin-lib.d.ts","sourceRoot":"","sources":["../src/checkin-lib.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAUpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAuD5D,wBAAsB,SAAS,CAC7B,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
|
package/lib/checkin-lib.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { messages as t } from './i18n.js';
|
|
1
2
|
import { getCheckinModel } from './db-store.js';
|
|
2
3
|
import { randomInt, resolveContextKey, resolveSender, todayStr, ts, yesterdayStr, } from './shared-runtime.js';
|
|
3
4
|
async function getOrCreateUser(model, userId, userName, ctxType, ctxId) {
|
|
@@ -44,18 +45,18 @@ function serializedCheckin(chains, key, task) {
|
|
|
44
45
|
export async function doCheckin(input, cfg, runtime) {
|
|
45
46
|
const M = getCheckinModel(runtime.db);
|
|
46
47
|
if (!M)
|
|
47
|
-
return '
|
|
48
|
+
return t(input.locale, 'checkinRetry');
|
|
48
49
|
const { id: userId, name: userName } = resolveSender(input);
|
|
49
50
|
if (!userId)
|
|
50
|
-
return '
|
|
51
|
+
return t(input.locale, 'senderMissing');
|
|
51
52
|
const { type: ctxType, id: ctxId } = resolveContextKey(input);
|
|
52
53
|
return serializedCheckin(runtime.checkinChains, `${userId}:${ctxType}:${ctxId}`, async () => {
|
|
53
54
|
const user = await getOrCreateUser(M, userId, userName, ctxType, ctxId);
|
|
54
55
|
if (!user)
|
|
55
|
-
return '
|
|
56
|
+
return t(input.locale, 'checkinFailed');
|
|
56
57
|
const today = todayStr();
|
|
57
58
|
if (user.last_checkin === today) {
|
|
58
|
-
return
|
|
59
|
+
return t(input.locale, 'alreadyChecked', { points: String(user.points), days: String(user.streak) });
|
|
59
60
|
}
|
|
60
61
|
const isConsecutive = user.last_checkin === yesterdayStr();
|
|
61
62
|
const newStreak = isConsecutive ? Number(user.streak) + 1 : 1;
|
|
@@ -76,17 +77,17 @@ export async function doCheckin(input, cfg, runtime) {
|
|
|
76
77
|
context_type: ctxType,
|
|
77
78
|
context_id: ctxId,
|
|
78
79
|
});
|
|
79
|
-
const lines = [
|
|
80
|
+
const lines = [t(input.locale, 'checkinDone'), t(input.locale, 'basePoints', { points: base })];
|
|
80
81
|
if (bonus > 0)
|
|
81
|
-
lines.push(
|
|
82
|
-
lines.push(
|
|
82
|
+
lines.push(t(input.locale, 'bonusPoints', { points: bonus, days: newStreak }));
|
|
83
|
+
lines.push(t(input.locale, 'earnedPoints', { points: earned }), t(input.locale, 'currentPoints', { points: newPoints }));
|
|
83
84
|
return lines.join('\n');
|
|
84
85
|
});
|
|
85
86
|
}
|
|
86
|
-
export async function myPoints(input, runtime) {
|
|
87
|
+
export async function myPoints(input, runtime, commandHead) {
|
|
87
88
|
const M = getCheckinModel(runtime.db);
|
|
88
89
|
if (!M)
|
|
89
|
-
return '
|
|
90
|
+
return t(input.locale, 'checkinDb');
|
|
90
91
|
const { id: userId } = resolveSender(input);
|
|
91
92
|
const { type: ctxType, id: ctxId } = resolveContextKey(input);
|
|
92
93
|
const rows = (await M.select().where({
|
|
@@ -95,38 +96,38 @@ export async function myPoints(input, runtime) {
|
|
|
95
96
|
context_id: ctxId,
|
|
96
97
|
}));
|
|
97
98
|
if (rows.length === 0)
|
|
98
|
-
return '
|
|
99
|
+
return commandHead ? t(input.locale, 'checkinHint', { command: commandHead }) : t(input.locale, 'checkinHintNoHead');
|
|
99
100
|
const u = rows[0];
|
|
100
101
|
const checkedToday = u.last_checkin === todayStr();
|
|
101
102
|
return [
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
checkedToday ?
|
|
103
|
+
t(input.locale, 'pointsTitle', { name: String(u.user_name || t(input.locale, 'user')) }),
|
|
104
|
+
t(input.locale, 'points', { points: String(u.points) }),
|
|
105
|
+
t(input.locale, 'checkinTotal', { days: String(u.total_checkins) }),
|
|
106
|
+
t(input.locale, 'checkinStreak', { days: String(u.streak) }),
|
|
107
|
+
t(input.locale, 'checkinMax', { days: String(u.max_streak) }),
|
|
108
|
+
checkedToday ? t(input.locale, 'checked') : t(input.locale, 'unchecked'),
|
|
108
109
|
].join('\n');
|
|
109
110
|
}
|
|
110
111
|
export async function pointsRank(input, cfg, runtime) {
|
|
111
112
|
const M = getCheckinModel(runtime.db);
|
|
112
113
|
if (!M)
|
|
113
|
-
return '
|
|
114
|
+
return t(input.locale, 'checkinDb');
|
|
114
115
|
const { type: ctxType, id: ctxId } = resolveContextKey(input);
|
|
115
116
|
const all = (await M.select().where({ context_type: ctxType, context_id: ctxId }));
|
|
116
117
|
if (all.length === 0)
|
|
117
|
-
return '
|
|
118
|
+
return t(input.locale, 'checkinEmpty');
|
|
118
119
|
const sorted = all.sort((a, b) => Number(b.points || 0) - Number(a.points || 0));
|
|
119
120
|
const top = sorted.slice(0, cfg.rankSize);
|
|
120
121
|
const medals = ['🥇', '🥈', '🥉'];
|
|
121
122
|
const lines = top.map((u, i) => {
|
|
122
123
|
const prefix = i < 3 ? medals[i] : `${i + 1}.`;
|
|
123
|
-
return
|
|
124
|
+
return t(input.locale, 'pointsRow', { prefix, name: String(u.user_name || u.user_id), points: String(u.points), days: String(u.total_checkins) });
|
|
124
125
|
});
|
|
125
|
-
const title = ctxType === 'group' ? '
|
|
126
|
-
: ctxType === 'channel' ? '
|
|
126
|
+
const title = ctxType === 'group' ? t(input.locale, 'groupPoints')
|
|
127
|
+
: ctxType === 'channel' ? t(input.locale, 'channelPoints') : t(input.locale, 'privatePoints');
|
|
127
128
|
const { id: userId } = resolveSender(input);
|
|
128
129
|
const myRank = sorted.findIndex((u) => u.user_id === userId);
|
|
129
|
-
const footer = myRank >= 0 ?
|
|
130
|
+
const footer = myRank >= 0 ? t(input.locale, 'myRankFooter', { rank: myRank + 1 }) : '';
|
|
130
131
|
return `${title}\n${lines.join('\n')}${footer}`;
|
|
131
132
|
}
|
|
132
133
|
//# sourceMappingURL=checkin-lib.js.map
|
package/lib/checkin-lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkin-lib.js","sourceRoot":"","sources":["../src/checkin-lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkin-lib.js","sourceRoot":"","sources":["../src/checkin-lib.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { type DeliveryTarget } from 'zhin.js';
|
|
|
2
2
|
import { adapterFeatureId } from 'zhin.js/adapter';
|
|
3
3
|
import type { ToolInvocationOrigin } from '@zhin.js/tool';
|
|
4
4
|
export interface ConversationInput {
|
|
5
|
+
readonly locale?: import('zhin.js/i18n').Locale;
|
|
5
6
|
readonly conversation?: DeliveryTarget;
|
|
6
7
|
readonly sender?: Readonly<{
|
|
7
8
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-scope.d.ts","sourceRoot":"","sources":["../src/conversation-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAqB,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD;AAED,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAK9D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,cAAc,CAG5E;AAED,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,gBAAgB,GAAG,CAAC,CAAC;CACjD,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAgBnC"}
|
|
1
|
+
{"version":3,"file":"conversation-scope.d.ts","sourceRoot":"","sources":["../src/conversation-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAqB,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,cAAc,EAAE,MAAM,CAAC;IAChD,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD;AAED,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAK9D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,cAAc,CAG5E;AAED,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,gBAAgB,GAAG,CAAC,CAAC;CACjD,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAgBnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-scope.js","sourceRoot":"","sources":["../src/conversation-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAqB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation-scope.js","sourceRoot":"","sources":["../src/conversation-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAqB,MAAM,iBAAiB,CAAC;AAWtE,4FAA4F;AAC5F,MAAM,UAAU,eAAe,CAAC,MAAsB;IACpD,MAAM,SAAS,GAAG,oBAAoB,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,iBAAiB,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;QACzF,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI;QAC1F,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IAC1D,IAAI,CAAC,KAAK,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC1F,OAAO,oBAAoB,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,qBAAqB,CAAC,OAGrC,EAAE,OAAgB;IACjB,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAe,gBAAgB,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CACjD,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC;WAC3E,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAC/F,OAAO,oBAAoB,CAAC,EAAE,YAAY,EAAE;YAC1C,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE;YAClE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO;YAC5C,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC;gBACxF,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,EAAE,CAAC,CAAC;AACP,CAAC"}
|
package/lib/i18n.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const messages: (locale: import("zhin.js").Locale | undefined, key: "checkinRetry" | "checkinDb" | "senderMissing" | "checkinFailed" | "checkinDone" | "checked" | "unchecked" | "checkinEmpty" | "groupPoints" | "channelPoints" | "privatePoints" | "alreadyChecked" | "basePoints" | "bonusPoints" | "earnedPoints" | "currentPoints" | "checkinHint" | "checkinHintNoHead" | "pointsTitle" | "points" | "checkinTotal" | "checkinStreak" | "checkinMax" | "pointsRow" | "myRankFooter" | "user" | "you" | "teachRetry" | "teachDb" | "regexDisabled" | "unsafeRegex" | "teachEmpty" | "regex" | "exact" | "teachTitle" | "questionRequired" | "regexUsage" | "teachUsage" | "invalidRegex" | "teachLimit" | "teachUpdated" | "regexLearned" | "teachLearned" | "teachPage" | "questionMissing" | "questionRemoved" | "statsEmpty" | "statsRow" | "statsFooter" | "statsMyFooter" | "myStatsTitle" | "todayMessages" | "weekMessages" | "monthMessages" | "totalMessages" | "activeDays" | "statsDb" | "myStatsEmpty" | "thisGroup" | "global" | "statsTodayGroup" | "statsTodayAll" | "statsWeekGroup" | "statsWeekAll" | "statsMonthGroup" | "statsMonthAll" | "noStats" | "participants" | "messages" | "myRank" | "leaderboard" | "today" | "week" | "month" | "total" | "cardMeta" | "messageCount" | "myStatsSubtitle" | "cardRank" | "analysisNamed" | "analysisRange" | "analysis" | "topics" | "quotes" | "profiles" | "characters" | "active" | "hourDistribution" | "analysisTextNamed" | "analysisTextRange" | "analysisMessages" | "analysisPeople" | "analysisChars" | "analysisPeak" | "hourDistributionText" | "llmTopics" | "llmQuotes" | "llmProfiles" | "keywordStorage" | "keywordLimit" | "keywordSize" | "keywordLength" | "keywordRequired" | "keywordAdded" | "keywordRemoveRequired" | "keywordMissing" | "keywordRemoved" | "keywordEmpty" | "keywordList" | "userCheckinEmpty" | "userCheckinInfo" | "checkinOverview" | "rankEmpty" | "pointsToolRow" | "periodStatsEmpty" | "statsOverview" | "userStatsEmpty" | "userStatsInfo" | "announcement", values?: import("zhin.js").MessageValues) => string;
|
|
2
|
+
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,w/DA6dnB,CAAC"}
|