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 import logging
from aiogram import Bot, Dispatcher, executor, types from aiogram import Bot, Dispatcher, executor, types
from aiogram.utils.exceptions import MessageToDeleteNotFound
import asyncio import asyncio
from datetime import timedelta from datetime import timedelta
from models import Messages_to_delete, Base from models import Messages_to_delete, Base
@ -21,8 +20,9 @@ dp = Dispatcher(bot)
async def send_welcome(message: types.Message): async def send_welcome(message: types.Message):
"""Справка по командам.""" """Справка по командам."""
await message.reply( await message.reply(
"Бот для взаимодействия с группой\n\n" "/q - для отправки вопроса\n", services.get_static("static/help_msg.txt"),
reply=False, 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"]) @dp.message_handler(commands=["get_invite"])
@services.only_admins @services.only_admins
async def get_invite(message: types.Message) -> None: 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 @services.only_admins
async def get_info(message: types.Message) -> None: 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( await message.reply(
msg, msg,
reply=False, reply=False,

3
settings.py

@ -8,8 +8,9 @@ from os import getenv
DELAY_TIME = int(getenv("GBOT_DELAY_TIME")) DELAY_TIME = int(getenv("GBOT_DELAY_TIME"))
DELAY_TIME_Q = int(getenv("GBOT_DELAY_TIME_Q")) DELAY_TIME_Q = int(getenv("GBOT_DELAY_TIME_Q"))
DELAY_TIME_POST = int(getenv("GBOT_DELAY_TIME_POST"))
CHAT_ID = getenv("GBOT_CHAT_ID") CHAT_ID = getenv("GBOT_CHAT_ID")
ADMINS = [106693654, 7063133, 4978608] ADMINS = [106693654, 7063133, 4978608]
API_TOKEN = getenv("TELEGRAM_API_TOKEN") API_TOKEN = getenv("TELEGRAM_API_TOKEN")
DB_PATH = getenv("GBOT_DB_PATH") 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