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