(msg: Api.Message, args: string[])
| 281 | |
| 282 | switch (subCommand) { |
| 283 | case "add": |
| 284 | if (!list.includes(chatId)) { |
| 285 | list.push(chatId); |
| 286 | await this.db.write(); |
| 287 | await msg.edit({ |
| 288 | text: `✅ 已将当前会话加入白名单`, |
| 289 | parseMode: "html" |
| 290 | }); |
| 291 | } else { |
| 292 | await msg.edit({ |
| 293 | text: `ℹ️ 当前会话已在白名单中`, |
| 294 | parseMode: "html" |
| 295 | }); |
| 296 | } |
| 297 | break; |
| 298 | |
| 299 | case "remove": |
| 300 | case "rm": |
| 301 | const removed = _.remove(list, (x: string) => x === chatId); |
| 302 | if (removed.length > 0) { |
| 303 | await this.db.write(); |
| 304 | await msg.edit({ |
| 305 | text: `✅ 已将当前会话移出白名单`, |
| 306 | parseMode: "html" |
| 307 | }); |
| 308 | } else { |
| 309 | await msg.edit({ |
| 310 | text: `ℹ️ 当前会话不在白名单中`, |
| 311 | parseMode: "html" |
| 312 | }); |
| 313 | } |
| 314 | break; |
| 315 | |
| 316 | case "list": |
| 317 | case "ls": |
| 318 | if (list.length === 0) { |
| 319 | await msg.edit({ |
| 320 | text: `📝 白名单列表为空`, |
| 321 | parseMode: "html" |
| 322 | }); |
| 323 | } else { |
| 324 | let text = `📝 <b>白名单列表</b> (${list.length} 个)\n\n`; |
| 325 | list.forEach((id: string, index: number) => { |
| 326 | text += `${index + 1}. <code>${htmlEscape(id)}</code>\n`; |
| 327 | }); |
| 328 | await msg.edit({ text, parseMode: "html" }); |
| 329 | } |
| 330 | break; |
| 331 | |
| 332 | default: |
| 333 | await msg.edit({ text: help_text, parseMode: "html" }); |
| 334 | break; |
| 335 | } |
| 336 | } |
| 337 | |
| 338 | // 黑名单处理 |
| 339 | private async handleBlackList(msg: Api.Message, args: string[]): Promise<void> { |
| 340 | const chatId = this.getChatId(msg); |
no test coverage detected