first commit
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import { GrammyError } from 'grammy';
|
||||
|
||||
import { ALLOWED_UPDATES, createBot, shutdown, syncCommands } from './bot.js';
|
||||
import { logger } from './core/logger.js';
|
||||
|
||||
const { bot, registry } = await createBot();
|
||||
|
||||
for (const signal of ['SIGINT', 'SIGTERM']) {
|
||||
process.once(signal, () => {
|
||||
shutdown(bot).then(
|
||||
() => process.exit(0),
|
||||
(err) => {
|
||||
logger.error('Ошибка при остановке', err);
|
||||
process.exit(1);
|
||||
},
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
await bot.start({
|
||||
allowed_updates: ALLOWED_UPDATES,
|
||||
// Первый апдейт приходит уже после getMe, поэтому меню обновляем здесь.
|
||||
onStart: async ({ username }) => {
|
||||
await syncCommands(bot, registry).catch((err) => logger.warn('setMyCommands не прошёл', err));
|
||||
logger.info(`@${username} запущен. Апдейты: ${ALLOWED_UPDATES.join(', ')}`);
|
||||
},
|
||||
});
|
||||
} catch (err) {
|
||||
// bot.catch() ловит ошибки апдейтов, но не падения на старте.
|
||||
if (err instanceof GrammyError && err.error_code === 401) {
|
||||
logger.error('Telegram не принял токен (401). Проверьте BOT_TOKEN в .env.');
|
||||
} else {
|
||||
logger.error('Не удалось запустить б�
|
||||
Reference in New Issue
Block a user