@zhin.js/adapter-telegram 1.0.45 → 1.0.48

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/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * Telegram 适配器入口:类型扩展、导出、注册
3
3
  */
4
- import { usePlugin } from "zhin.js";
4
+ import { usePlugin, createGroupManagementTools } from "zhin.js";
5
5
  import { TelegramAdapter } from "./adapter.js";
6
6
  export * from "./types.js";
7
7
  export { TelegramBot } from "./bot.js";
8
8
  export { TelegramAdapter } from "./adapter.js";
9
9
  const plugin = usePlugin();
10
- const { provide } = plugin;
10
+ const { provide, useContext } = plugin;
11
11
  provide({
12
12
  name: "telegram",
13
13
  description: "Telegram Bot Adapter",
@@ -20,4 +20,262 @@ provide({
20
20
  await adapter.stop();
21
21
  },
22
22
  });
23
+ useContext('tool', 'telegram', (toolService, telegram) => {
24
+ const groupTools = createGroupManagementTools(telegram, 'telegram');
25
+ const disposers = groupTools.map(t => toolService.addTool(t, 'telegram'));
26
+ disposers.push(toolService.addTool({
27
+ name: 'telegram_pin_message',
28
+ description: '置顶 Telegram 群组消息',
29
+ parameters: {
30
+ type: 'object',
31
+ properties: {
32
+ bot: { type: 'string', description: 'Bot 名称' },
33
+ chat_id: { type: 'string', description: '聊天 ID' },
34
+ message_id: { type: 'string', description: '消息 ID' },
35
+ },
36
+ required: ['bot', 'chat_id', 'message_id'],
37
+ },
38
+ platforms: ['telegram'],
39
+ tags: ['telegram'],
40
+ execute: async (args) => {
41
+ const bot = telegram.bots.get(args.bot);
42
+ if (!bot)
43
+ throw new Error(`Bot ${args.bot} 不存在`);
44
+ const success = await bot.pinMessage(Number(args.chat_id), Number(args.message_id));
45
+ return { success, message: success ? '消息已置顶' : '操作失败' };
46
+ },
47
+ }, 'telegram'));
48
+ disposers.push(toolService.addTool({
49
+ name: 'telegram_unpin_message',
50
+ description: '取消置顶 Telegram 群组消息',
51
+ parameters: {
52
+ type: 'object',
53
+ properties: {
54
+ bot: { type: 'string', description: 'Bot 名称' },
55
+ chat_id: { type: 'string', description: '聊天 ID' },
56
+ message_id: { type: 'string', description: '消息 ID(可选,不提供则取消所有置顶)' },
57
+ },
58
+ required: ['bot', 'chat_id'],
59
+ },
60
+ platforms: ['telegram'],
61
+ tags: ['telegram'],
62
+ execute: async (args) => {
63
+ const bot = telegram.bots.get(args.bot);
64
+ if (!bot)
65
+ throw new Error(`Bot ${args.bot} 不存在`);
66
+ const success = await bot.unpinMessage(Number(args.chat_id), args.message_id ? Number(args.message_id) : undefined);
67
+ return { success, message: success ? '已取消置顶' : '操作失败' };
68
+ },
69
+ }, 'telegram'));
70
+ disposers.push(toolService.addTool({
71
+ name: 'telegram_list_admins',
72
+ description: '获取 Telegram 群组管理员列表',
73
+ parameters: {
74
+ type: 'object',
75
+ properties: {
76
+ bot: { type: 'string', description: 'Bot 名称' },
77
+ chat_id: { type: 'string', description: '聊天 ID' },
78
+ },
79
+ required: ['bot', 'chat_id'],
80
+ },
81
+ platforms: ['telegram'],
82
+ tags: ['telegram'],
83
+ execute: async (args) => {
84
+ const bot = telegram.bots.get(args.bot);
85
+ if (!bot)
86
+ throw new Error(`Bot ${args.bot} 不存在`);
87
+ const admins = await bot.getChatAdmins(Number(args.chat_id));
88
+ return {
89
+ admins: admins.map((a) => ({
90
+ user_id: a.user.id,
91
+ username: a.user.username,
92
+ first_name: a.user.first_name,
93
+ status: a.status,
94
+ })),
95
+ count: admins.length,
96
+ };
97
+ },
98
+ }, 'telegram'));
99
+ disposers.push(toolService.addTool({
100
+ name: 'telegram_member_count',
101
+ description: '获取 Telegram 群组成员数量',
102
+ parameters: {
103
+ type: 'object',
104
+ properties: {
105
+ bot: { type: 'string', description: 'Bot 名称' },
106
+ chat_id: { type: 'string', description: '聊天 ID' },
107
+ },
108
+ required: ['bot', 'chat_id'],
109
+ },
110
+ platforms: ['telegram'],
111
+ tags: ['telegram'],
112
+ execute: async (args) => {
113
+ const bot = telegram.bots.get(args.bot);
114
+ if (!bot)
115
+ throw new Error(`Bot ${args.bot} 不存在`);
116
+ const count = await bot.getChatMemberCount(Number(args.chat_id));
117
+ return { count, message: `群组共有 ${count} 名成员` };
118
+ },
119
+ }, 'telegram'));
120
+ disposers.push(toolService.addTool({
121
+ name: 'telegram_create_invite',
122
+ description: '创建 Telegram 群组邀请链接',
123
+ parameters: {
124
+ type: 'object',
125
+ properties: {
126
+ bot: { type: 'string', description: 'Bot 名称' },
127
+ chat_id: { type: 'string', description: '聊天 ID' },
128
+ },
129
+ required: ['bot', 'chat_id'],
130
+ },
131
+ platforms: ['telegram'],
132
+ tags: ['telegram'],
133
+ execute: async (args) => {
134
+ const bot = telegram.bots.get(args.bot);
135
+ if (!bot)
136
+ throw new Error(`Bot ${args.bot} 不存在`);
137
+ const link = await bot.createInviteLink(Number(args.chat_id));
138
+ return { invite_link: link, message: `邀请链接: ${link}` };
139
+ },
140
+ }, 'telegram'));
141
+ disposers.push(toolService.addTool({
142
+ name: 'telegram_send_poll',
143
+ description: '在 Telegram 群组中发起投票',
144
+ parameters: {
145
+ type: 'object',
146
+ properties: {
147
+ bot: { type: 'string', description: 'Bot 名称' },
148
+ chat_id: { type: 'string', description: '聊天 ID' },
149
+ question: { type: 'string', description: '投票问题' },
150
+ options: { type: 'string', description: '选项 JSON 数组,如 ["A","B","C"]' },
151
+ is_anonymous: { type: 'boolean', description: '是否匿名投票,默认 true' },
152
+ allows_multiple: { type: 'boolean', description: '是否允许多选,默认 false' },
153
+ },
154
+ required: ['bot', 'chat_id', 'question', 'options'],
155
+ },
156
+ platforms: ['telegram'],
157
+ tags: ['telegram'],
158
+ execute: async (args) => {
159
+ const bot = telegram.bots.get(args.bot);
160
+ if (!bot)
161
+ throw new Error(`Bot ${args.bot} 不存在`);
162
+ let optList;
163
+ try {
164
+ optList = JSON.parse(args.options);
165
+ }
166
+ catch {
167
+ return { success: false, message: 'options 格式错误,应为 JSON 数组' };
168
+ }
169
+ if (!Array.isArray(optList) || optList.length < 2) {
170
+ return { success: false, message: '至少需要 2 个选项' };
171
+ }
172
+ const result = await bot.sendPoll(Number(args.chat_id), args.question, optList, args.is_anonymous ?? true, args.allows_multiple ?? false);
173
+ return { success: true, message_id: result.message_id, message: '投票已发送' };
174
+ },
175
+ }, 'telegram'));
176
+ disposers.push(toolService.addTool({
177
+ name: 'telegram_react',
178
+ description: '对 Telegram 消息添加表情反应',
179
+ parameters: {
180
+ type: 'object',
181
+ properties: {
182
+ bot: { type: 'string', description: 'Bot 名称' },
183
+ chat_id: { type: 'string', description: '聊天 ID' },
184
+ message_id: { type: 'string', description: '消息 ID' },
185
+ reaction: { type: 'string', description: '反应表情(如 👍、❤️、🔥)' },
186
+ },
187
+ required: ['bot', 'chat_id', 'message_id', 'reaction'],
188
+ },
189
+ platforms: ['telegram'],
190
+ tags: ['telegram'],
191
+ execute: async (args) => {
192
+ const bot = telegram.bots.get(args.bot);
193
+ if (!bot)
194
+ throw new Error(`Bot ${args.bot} 不存在`);
195
+ const success = await bot.setMessageReaction(Number(args.chat_id), Number(args.message_id), args.reaction);
196
+ return { success, message: success ? `已添加反应 ${args.reaction}` : '操作失败' };
197
+ },
198
+ }, 'telegram'));
199
+ disposers.push(toolService.addTool({
200
+ name: 'telegram_send_sticker',
201
+ description: '发送 Telegram 贴纸',
202
+ parameters: {
203
+ type: 'object',
204
+ properties: {
205
+ bot: { type: 'string', description: 'Bot 名称' },
206
+ chat_id: { type: 'string', description: '聊天 ID' },
207
+ sticker: { type: 'string', description: '贴纸 file_id 或 URL' },
208
+ },
209
+ required: ['bot', 'chat_id', 'sticker'],
210
+ },
211
+ platforms: ['telegram'],
212
+ tags: ['telegram'],
213
+ execute: async (args) => {
214
+ const bot = telegram.bots.get(args.bot);
215
+ if (!bot)
216
+ throw new Error(`Bot ${args.bot} 不存在`);
217
+ const result = await bot.sendStickerMessage(Number(args.chat_id), args.sticker);
218
+ return { success: true, message_id: result.message_id, message: '贴纸已发送' };
219
+ },
220
+ }, 'telegram'));
221
+ disposers.push(toolService.addTool({
222
+ name: 'telegram_set_permissions',
223
+ description: '设置 Telegram 群组的默认成员权限',
224
+ parameters: {
225
+ type: 'object',
226
+ properties: {
227
+ bot: { type: 'string', description: 'Bot 名称' },
228
+ chat_id: { type: 'string', description: '聊天 ID' },
229
+ can_send_messages: { type: 'boolean', description: '是否可以发消息' },
230
+ can_send_photos: { type: 'boolean', description: '是否可以发图片' },
231
+ can_send_videos: { type: 'boolean', description: '是否可以发视频' },
232
+ can_send_polls: { type: 'boolean', description: '是否可以发投票' },
233
+ can_send_other_messages: { type: 'boolean', description: '是否可以发贴纸/GIF等' },
234
+ can_add_web_page_previews: { type: 'boolean', description: '是否可以添加网页预览' },
235
+ can_change_info: { type: 'boolean', description: '是否可以改群信息' },
236
+ can_invite_users: { type: 'boolean', description: '是否可以邀请用户' },
237
+ can_pin_messages: { type: 'boolean', description: '是否可以置顶消息' },
238
+ },
239
+ required: ['bot', 'chat_id'],
240
+ },
241
+ platforms: ['telegram'],
242
+ tags: ['telegram'],
243
+ execute: async (args) => {
244
+ const { bot: botId, chat_id, ...perms } = args;
245
+ const bot = telegram.bots.get(botId);
246
+ if (!bot)
247
+ throw new Error(`Bot ${botId} 不存在`);
248
+ const permissions = {};
249
+ for (const [k, v] of Object.entries(perms)) {
250
+ if (typeof v === 'boolean')
251
+ permissions[k] = v;
252
+ }
253
+ const success = await bot.setChatPermissionsAll(Number(chat_id), permissions);
254
+ return { success, message: success ? '群权限已更新' : '操作失败' };
255
+ },
256
+ }, 'telegram'));
257
+ disposers.push(toolService.addTool({
258
+ name: 'telegram_set_description',
259
+ description: '设置 Telegram 群组描述',
260
+ parameters: {
261
+ type: 'object',
262
+ properties: {
263
+ bot: { type: 'string', description: 'Bot 名称' },
264
+ chat_id: { type: 'string', description: '聊天 ID' },
265
+ description: { type: 'string', description: '群描述文字' },
266
+ },
267
+ required: ['bot', 'chat_id', 'description'],
268
+ },
269
+ platforms: ['telegram'],
270
+ tags: ['telegram'],
271
+ execute: async (args) => {
272
+ const bot = telegram.bots.get(args.bot);
273
+ if (!bot)
274
+ throw new Error(`Bot ${args.bot} 不存在`);
275
+ const success = await bot.setChatDescription(Number(args.chat_id), args.description);
276
+ return { success, message: success ? '群描述已更新' : '操作失败' };
277
+ },
278
+ }, 'telegram'));
279
+ return () => disposers.forEach(d => d());
280
+ });
23
281
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAA6B,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAQ/C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;AAE3B,OAAO,CAAC;IACN,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,sBAAsB;IACnC,OAAO,EAAE,KAAK,EAAE,CAAS,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAwB,EAAE,EAAE;QAC1C,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;CACqB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhin.js/adapter-telegram",
3
- "version": "1.0.45",
3
+ "version": "1.0.48",
4
4
  "description": "Zhin.js adapter for Telegram",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -36,12 +36,12 @@
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/node": "^22.9.0",
39
- "typescript": "^5.3.0",
40
- "zhin.js": "1.0.58"
39
+ "typescript": "^5.9.3",
40
+ "zhin.js": "1.0.61"
41
41
  },
42
42
  "peerDependencies": {
43
- "zhin.js": "1.0.58",
44
- "@zhin.js/logger": "0.1.42"
43
+ "@zhin.js/logger": "0.1.45",
44
+ "zhin.js": "1.0.61"
45
45
  },
46
46
  "files": [
47
47
  "src",
@@ -1,18 +1,75 @@
1
1
  ---
2
2
  name: telegram
3
- description: Telegram 群组管理:踢人、禁言、封禁、设管理员、改群名、查成员等。仅用户名时请先 list_members 获取 user_id 再操作。
3
+ platforms:
4
+ - telegram
5
+ description: Telegram 群组管理:群管(踢人、解封、禁言、设管理员、改群名/描述)、置顶、投票、表情反应、贴纸、群权限设置、邀请链接、管理员列表。仅有用户名时请先 list_members 获取 user_id。
4
6
  keywords:
5
7
  - telegram
6
8
  - tg
7
9
  - adapter:telegram
8
10
  - 群管理
11
+ - 置顶
12
+ - 投票
13
+ - 反应
14
+ - 贴纸
15
+ - 权限
9
16
  - list_members
10
17
  tags:
11
18
  - group
12
19
  - management
13
- tools: []
20
+ - im
21
+ tools:
22
+ # 平台特有工具
23
+ - telegram_pin_message
24
+ - telegram_unpin_message
25
+ - telegram_list_admins
26
+ - telegram_member_count
27
+ - telegram_create_invite
28
+ - telegram_send_poll
29
+ - telegram_react
30
+ - telegram_send_sticker
31
+ - telegram_set_permissions
32
+ - telegram_set_description
33
+ # 通用群管工具
34
+ - telegram_kick_member
35
+ - telegram_unban_member
36
+ - telegram_mute_member
37
+ - telegram_set_admin
38
+ - telegram_set_group_name
39
+ - telegram_get_group_info
14
40
  ---
15
41
 
42
+ ## 工具概览
43
+
44
+ ### 平台特有
45
+
46
+ | 工具 | 说明 | 权限 |
47
+ |------|------|------|
48
+ | `telegram_pin_message` | 置顶消息 | group_admin |
49
+ | `telegram_unpin_message` | 取消置顶 | group_admin |
50
+ | `telegram_list_admins` | 获取管理员列表 | user |
51
+ | `telegram_member_count` | 获取群组成员数量 | user |
52
+ | `telegram_create_invite` | 创建邀请链接 | group_admin |
53
+ | `telegram_send_poll` | 发起投票 | user |
54
+ | `telegram_react` | 对消息添加表情反应 | user |
55
+ | `telegram_send_sticker` | 发送贴纸 | user |
56
+ | `telegram_set_permissions` | 设置群权限 | group_admin |
57
+ | `telegram_set_description` | 设置群描述 | group_admin |
58
+
59
+ ### 通用群管
60
+
61
+ | 工具 | 说明 | 权限 |
62
+ |------|------|------|
63
+ | `telegram_kick_member` | 踢出成员 | group_admin |
64
+ | `telegram_unban_member` | 解除封禁 | group_admin |
65
+ | `telegram_mute_member` | 禁言成员 | group_admin |
66
+ | `telegram_set_admin` | 设置/取消管理员 | group_admin |
67
+ | `telegram_set_group_name` | 修改群名称 | group_admin |
68
+ | `telegram_get_group_info` | 获取群信息 | user |
69
+
16
70
  ## 执行规则
17
71
 
18
- - 使用 `telegram_*` 工具;先 list_members 获取 user_id
72
+ 1. 仅有用户名时先 `telegram_list_admins` 或通过消息上下文获取 user_id
73
+ 2. 禁言 duration 单位为秒,0 表示永久限制
74
+ 3. 投票支持匿名和多选模式
75
+ 4. 权限设置影响所有普通成员,管理员不受限