2023-01-04 20:58:54 +02:00
|
|
|
from app import app
|
|
|
|
from pyrogram import filters
|
2023-01-05 15:34:02 +02:00
|
|
|
from pyrogram.types import Message, ReplyKeyboardMarkup
|
2023-01-04 20:58:54 +02:00
|
|
|
from pyrogram.client import Client
|
2023-01-06 16:49:51 +02:00
|
|
|
from classes.errors.holo_user import UserNotFoundError, UserInvalidError
|
|
|
|
from classes.holo_user import HoloUser
|
2023-01-04 22:58:44 +02:00
|
|
|
from modules.logging import logWrite
|
2023-01-04 20:58:54 +02:00
|
|
|
from modules.utils import locale
|
2023-01-23 19:25:03 +02:00
|
|
|
from modules.database import col_spoilers, col_applications
|
2023-01-04 20:58:54 +02:00
|
|
|
from modules import custom_filters
|
|
|
|
|
2023-03-09 17:25:06 +02:00
|
|
|
|
|
|
|
@app.on_message(
|
|
|
|
custom_filters.enabled_spoilers
|
|
|
|
& ~filters.scheduled
|
|
|
|
& filters.private
|
|
|
|
& ~custom_filters.banned
|
|
|
|
& filters.command(["spoiler"], prefixes=["/"])
|
|
|
|
)
|
2023-01-04 20:58:54 +02:00
|
|
|
async def cmd_spoiler(app: Client, msg: Message):
|
|
|
|
try:
|
|
|
|
holo_user = HoloUser(msg.from_user)
|
|
|
|
except (UserInvalidError, UserNotFoundError):
|
|
|
|
return
|
|
|
|
|
2023-03-09 17:25:06 +02:00
|
|
|
if col_applications.find_one({"user": holo_user.id}) is None:
|
2023-01-23 12:29:58 +02:00
|
|
|
await msg.reply_text(locale("not_member", "message", locale=msg.from_user))
|
|
|
|
return
|
|
|
|
|
2023-03-09 17:25:06 +02:00
|
|
|
if (
|
|
|
|
holo_user.application_state()[0] != "fill"
|
|
|
|
and holo_user.sponsorship_state()[0] != "fill"
|
|
|
|
):
|
|
|
|
if col_spoilers.find_one({"user": holo_user.id, "completed": False}) is None:
|
2023-01-04 20:58:54 +02:00
|
|
|
col_spoilers.insert_one(
|
|
|
|
{
|
2023-01-23 19:25:03 +02:00
|
|
|
"user": holo_user.id,
|
2023-01-04 20:58:54 +02:00
|
|
|
"completed": False,
|
2023-01-05 15:34:02 +02:00
|
|
|
"category": None,
|
2023-01-04 20:58:54 +02:00
|
|
|
"description": None,
|
|
|
|
"photo": None,
|
|
|
|
"video": None,
|
2023-01-10 13:11:29 +02:00
|
|
|
"audio": None,
|
2023-01-04 20:58:54 +02:00
|
|
|
"animation": None,
|
2023-01-05 22:15:34 +02:00
|
|
|
"document": None,
|
2023-01-05 15:34:02 +02:00
|
|
|
"caption": None,
|
2023-03-09 17:25:06 +02:00
|
|
|
"text": None,
|
2023-01-04 20:58:54 +02:00
|
|
|
}
|
|
|
|
)
|
|
|
|
|
2023-03-09 17:25:06 +02:00
|
|
|
await msg.reply_text(
|
|
|
|
locale("spoiler_started", "message", locale=msg.from_user),
|
|
|
|
reply_markup=ReplyKeyboardMarkup(
|
|
|
|
locale("spoiler_categories", "keyboard"),
|
|
|
|
resize_keyboard=True,
|
|
|
|
one_time_keyboard=True,
|
|
|
|
),
|
|
|
|
)
|
2023-01-04 22:58:44 +02:00
|
|
|
logWrite(f"User {msg.from_user.id} started creating new spoiler")
|
2023-01-04 20:58:54 +02:00
|
|
|
|
|
|
|
else:
|
2023-03-09 17:25:06 +02:00
|
|
|
await msg.reply_text(
|
|
|
|
locale("spoiler_unfinished", "message", locale=msg.from_user)
|
|
|
|
)
|