Browse Source
Может отправлять сообщения в группу, удаляет их через заколоченный внутри промежуток времени.master
commit
7c7fab7853
1 changed files with 62 additions and 0 deletions
@ -0,0 +1,62 @@
|
||||
import os |
||||
import logging |
||||
import threading |
||||
from aiogram import Bot, Dispatcher, executor, types |
||||
from time import sleep |
||||
from aiogram.utils.exceptions import MessageToDeleteNotFound |
||||
import asyncio |
||||
from datetime import timedelta |
||||
|
||||
logging.basicConfig(level=logging.INFO) |
||||
DELAY_TIME = 1 |
||||
API_TOKEN = os.getenv("TELEGRAM_API_TOKEN") |
||||
bot = Bot(token=API_TOKEN) |
||||
dp = Dispatcher(bot) |
||||
|
||||
|
||||
def auth(func): |
||||
# нужно будет узнать свой id |
||||
async def wrapper(message): |
||||
# if message["from"]["id"] != 123: |
||||
# return await message.replay("Access Denied", reply=False) |
||||
return await func(message) |
||||
|
||||
return wrapper |
||||
|
||||
|
||||
async def clean_up(message_id: int, delay_min: int): |
||||
await asyncio.sleep(delay_min * 60) |
||||
try: |
||||
await bot.delete_message(chat_id="@gorgorod_information", message_id=message_id) |
||||
|
||||
except MessageToDeleteNotFound: |
||||
print("Ошибка удаления сообщения") |
||||
|
||||
|
||||
@dp.message_handler(commands=["start", "help"]) |
||||
@auth |
||||
async def send_welcome(message: types.Message): |
||||
await message.reply( |
||||
"Бот для отправки новостей\n\n" "Еще одна строка\n", reply=False |
||||
) |
||||
|
||||
|
||||
@dp.message_handler(commands=["mes"]) |
||||
@auth |
||||
async def send_to_chanel(message: types.Message): |
||||
|
||||
deletion_time = message.date + timedelta(minutes=DELAY_TIME) |
||||
out_text = f"{message.text[5:]} \n\nБудет удалено в *{deletion_time}*" |
||||
result = await bot.send_message( |
||||
chat_id="@gorgorod_information", |
||||
text=out_text, |
||||
disable_notification=True, |
||||
parse_mode="Markdown", |
||||
) |
||||
print(message.message_id) |
||||
print(result.message_id) |
||||
await clean_up(message_id=result.message_id, delay_min=DELAY_TIME) |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
executor.start_polling(dp, skip_updates=True) |
Loading…
Reference in new issue