hello = await message.answer(f"👋 <b>#Привет</b>, {message.from_user.full_name}!"
"\n✨<b>Полезные команды для бота:</b>\n<b>рецепт</b>, <b>помощь</b>, <b>help</b>"
, parse_mode=types.ParseMode.HTML)
await asyncio.sleep(10)
await hello.delete()
и спустя 10 секунд удаляется. НО
ниже в коде есть удаление системного сообщения о новых участниках
@dp.message_handler(content_types="new_chat_members")
async def on_user_join(message: types.Message): await message.delete()
и проблема в том, что оно не удаляется. Где я проебався? Помогите пожалуйста
Если обновление одним хендлером обработается, то в остальные оно не пойдет уже Так устроен аиограм
Кажется есть способ пропустить это. Не уверен.
а как то фиксануть можно? Или в один код запульнуть? А то я уже минут 40 и так и так пытаюсь.
в итоге напытался так, что он вообще всё стал удалять
Положить удаление в тот же хендлер
Декораторы например Если у тебя таких хендлеров много
типа так? — @dp.message_handler(content_types=["new_chat_members"]) async def on_user_join(message: types.Message): await message.delete() async def bot_start(message: types.Message): hello = await message.answer(f"👋 <b>#Привет</b>, {message.from_user.full_name}!" "\n✨<b>Полезные команды для бота:</b>\n<b>рецепт</b>, <b>помощь</b>, <b>help</b>" , parse_mode=types.ParseMode.HTML) await asyncio.sleep(10) await hello.delete() — Пробовал - херь один фиг, не удаляет что то одно или сразу всё без таймера
Зачем тебе две функции? Просто будет один хендлер и одна функция
а как это совместить тогда если не async - ками? Оо
Весь код в одну функцию засунуть собственно
боже, я слишком туп, НО как засунуть это в одну строку? Питон ругается ошибками async def bot_start(message: types.Message): async def on_user_join(message: types.Message): await message.delete()
было async def foo(): strings async def bar(): bazzz Стало async def zxc(): strings bazzz
@dp.message_handler(content_types=["new_chat_members"]) async def on_user_join(message: types.Message): hello = await message.answer(f"👋 <b>#Привет</b>, {message.from_user.full_name}!" "\n✨<b>Полезные команды для бота:</b>\n<b>рецепт</b>, <b>помощь</b>, <b>help</b>" , parse_mode=types.ParseMode.HTML) await asyncio.sleep(10) await hello.delete() await message.delete() один фиг, удаляется сообщение приветсвия, но не удаляется сообщение системное о вступлении
У бота же есть права на удаление сообщений? Хотя, тут должно было выйти сообщение об ошибке.
вот сам код с этими частями
@Groosha, может вы поможете нубу? Уже всё что мог перепробовал с кодом, и вверх и вниз, и в строку
А, ты не понял, что срабатывает только один хендлер на каждое событие?
я в питоне с начала недели, пощади :D
Но уже делаешь сетевые приложения, молодца😁
Тогда вот. Срабатывает только один хендлер. Как только он сработал обработка события завершается
а как же те, что ниже? Оо
Они не срабатывают, если сработал один из тех что выше
да я это понял. Но как тогда фиксить это? тк у меня ещё и ниже есть пару хендлеров :D
Все действия которые должны сработать во время обработки события должны быть в одном хендлере. Если одни действия должны происходить при обработке одних событий а другие при обработки других - они должны быть в разных хендлерах
Казалось бы прямо вытекает из предыдущих моих сообщений
ещё сильнее запутал. Благодарю :D
У тебя получилось удалять оба сообщения?
не, только одно, которое ботом пишет привет
Ты сделал так, как я писал ранее?
если бы я понимал как сделать ещё. Вроде примерно сделал, но всё равно не сработало.
Чат на сколько юзеров
Обсуждают сегодня