first commit
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* Проверка структуры без обращения к Telegram: грузит все команды,
|
||||
* ловит конфликты триггеров и печатает таблицу. Токен не нужен.
|
||||
*
|
||||
* npm run check
|
||||
*/
|
||||
import { loadCommands } from '../src/core/loader.js';
|
||||
|
||||
const registry = await loadCommands();
|
||||
const rows = registry.list().map((cmd) => ({
|
||||
команда: `/${cmd.command}`,
|
||||
алиасы: cmd.aliases.join(', ') || '—',
|
||||
scope: cmd.scope,
|
||||
admin: cmd.adminOnly ? 'да' : '',
|
||||
hidden: cmd.hidden ? 'да' : '',
|
||||
файл: cmd.source,
|
||||
}));
|
||||
|
||||
console.table(rows);
|
||||
console.log(`В меню Telegram уйдёт: ${registry.forTelegram().map((c) => `/${c.command}`).join(' ') || '—'}`);
|
||||
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Отправляет список команд в Telegram, не поднимая бота.
|
||||
*
|
||||
* npm run sync
|
||||
*/
|
||||
import { Bot } from 'grammy';
|
||||
|
||||
import { assertConfig, config } from '../src/config.js';
|
||||
import { loadCommands } from '../src/core/loader.js';
|
||||
|
||||
assertConfig();
|
||||
|
||||
const registry = await loadCommands();
|
||||
const bot = new Bot(config.token);
|
||||
const commands = registry.forTelegram();
|
||||
|
||||
await bot.api.setMyCommands(commands);
|
||||
console.log(`Готово. Отправлено команд: ${commands.length}`);
|
||||
Reference in New Issue
Block a user