Browse Source

Добавил поддержку постов.

Переписал /info, теперь показывает время жизни сущностей.
Добавил поддержку постов (ранее были только вопросы).
master
Дмитрий 3 years ago
parent
commit
0bb67e1de2
  1. 33
      main.py
  2. 3
      settings.py
  3. 10
      static/help_msg.txt

33
main.py

@ -1,7 +1,6 @@
"""Главный модуль программы."""
import logging
from aiogram import Bot, Dispatcher, executor, types
from aiogram.utils.exceptions import MessageToDeleteNotFound
import asyncio
from datetime import timedelta
from models import Messages_to_delete, Base
@ -21,8 +20,9 @@ dp = Dispatcher(bot)
async def send_welcome(message: types.Message):
"""Справка по командам."""
await message.reply(
"Бот для взаимодействия с группой\n\n" "/q - для отправки вопроса\n",
services.get_static("static/help_msg.txt"),
reply=False,
parse_mode="Markdown",
)
@ -74,6 +74,29 @@ async def send_question(message: types.Message) -> None:
)
@dp.message_handler(commands=["p"])
@services.auth
async def send_post(message: types.Message) -> None:
"""Отправить в чат пост.
Через бота можно отправить вопрос, который будет удален через
DELAY_TIME_POST минут.
"""
deletion_time = message.date + timedelta(minutes=settings.DELAY_TIME_POST)
out_text = f"{message.text[3:]}\n\nБудет удалено в *{deletion_time}*"
result = await bot.send_message(
chat_id=settings.CHAT_ID,
text=out_text,
disable_notification=True,
parse_mode="Markdown",
)
await services._clean_up(
message_id=result.message_id, delay_min=settings.DELAY_TIME_Q, bot=bot
)
@dp.message_handler(commands=["get_invite"])
@services.only_admins
async def get_invite(message: types.Message) -> None:
@ -154,11 +177,13 @@ async def wlc(message: types.Message) -> None:
)
@dp.message_handler(commands=["info"])
@dp.message_handler(commands=["info", "version"])
@services.only_admins
async def get_info(message: types.Message) -> None:
"""Вовзращает версию бота."""
msg = f"Версия бота: *{settings.VERSION}*"
msg = f"Версия бота: *{settings.VERSION}*\n"
msg += f"Время жизни постов: *{settings.DELAY_TIME_POST} минут*\n"
msg += f"Время жизни вопросов: *{settings.DELAY_TIME_Q} минут*\n"
await message.reply(
msg,
reply=False,

3
settings.py

@ -8,8 +8,9 @@ from os import getenv
DELAY_TIME = int(getenv("GBOT_DELAY_TIME"))
DELAY_TIME_Q = int(getenv("GBOT_DELAY_TIME_Q"))
DELAY_TIME_POST = int(getenv("GBOT_DELAY_TIME_POST"))
CHAT_ID = getenv("GBOT_CHAT_ID")
ADMINS = [106693654, 7063133, 4978608]
API_TOKEN = getenv("TELEGRAM_API_TOKEN")
DB_PATH = getenv("GBOT_DB_PATH")
VERSION = 1.01
VERSION = 1.02

10
static/help_msg.txt

@ -0,0 +1,10 @@
Бот для взаимодействия с группой
/q - для отправки вопроса
`/q Посоветуйте хороший обоменник для крипты`
/p - для публикации поста
`/p GPG как опора безопасноти.
GPG расшифровывается как GNU Privacy Guard.`
Loading…
Cancel
Save