Browse Source

Первая рабочая версия бота

Может отправлять сообщения в группу, удаляет их через заколоченный
внутри промежуток времени.
master
Дмитрий 3 years ago
commit
7c7fab7853
  1. 62
      main.py

62
main.py

@ -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…
Cancel
Save