170 похожих чатов

Привет. Нужно сделать возможность отключения бота на aiogram командой /die. Есть

файл main.py со следующим кодом:
import asyncio
from aiogram import Bot, Dispatcher, executor, types
from config import BOT_TOKEN

bot = Bot(token=BOT_TOKEN) # Запуск бота
dp = Dispatcher(bot) # Создание диспетчера обновлений

if __name__ == '__main__':

# Импортирование Dispatcher'а с привязанными слушателями событиый
from handlers import dp

# Перевод бота в режим ожидания обновлений
executor.start_polling(dp, skip_updates=True)

Есть также файл handlers.py, в котором я создал обработчик, реагирующий на команду /die. Код:
import sys
from aiogram import types
from main import bot, dp
from config import BOT_TOKEN, ADMINS

# Завершение работы бота администратором
@dp.message_handler(commands=['die'])
async def die (message: types.Message):
# Если команда /die была послана администратором
if(message['from'].id in ADMINS):

dp.stop_polling()
# Остановка процесса
sys.exit()

Суть проблемы: когда я пишу боту /die, он завершает свою работу, все проходит как ожидалось, однако если запустить бота заново, то он запустится, но потом сразу завершит работу. повторно отреагировав на /die, на который он уже реагировал до этого. И skip_updates никак не помогает. Что можно сделать в этой ситуации?

2 ответов

75 просмотров

nekobin.com pastebin.com hastebin.com

Зачем тебе останавливать процесс бота?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта