174 lines
6.9 KiB
Python
174 lines
6.9 KiB
Python
from app import app
|
|
from pyrogram import filters
|
|
from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, Message
|
|
from pyrogram.client import Client
|
|
from classes.holo_user import HoloUser
|
|
from modules.logging import logWrite
|
|
from modules.utils import configGet, locale, should_quote
|
|
from modules.handlers.welcome import welcome_pass
|
|
from modules.database import col_tmp, col_applications
|
|
from modules import custom_filters
|
|
|
|
|
|
# Reapply command ==============================================================================================================
|
|
@app.on_message(
|
|
custom_filters.enabled_applications
|
|
& ~filters.scheduled
|
|
& filters.private
|
|
& filters.command(["reapply"], prefixes=["/"])
|
|
& ~custom_filters.banned
|
|
)
|
|
async def cmd_reapply(app: Client, msg: Message):
|
|
holo_user = HoloUser(msg.from_user)
|
|
|
|
# Check if user has approved/rejected tmp application
|
|
if (
|
|
(holo_user.application_state()[0] in ["approved", "rejected"])
|
|
or (holo_user.application_state()[0] == "none")
|
|
) and holo_user.spoiler_state() is False:
|
|
# Check if user's tmp application is already completed or even sent
|
|
if (
|
|
(holo_user.application_state()[1] is True)
|
|
and (
|
|
not col_tmp.find_one({"user": holo_user.id, "type": "application"})[
|
|
"sent"
|
|
]
|
|
)
|
|
) or (holo_user.application_state()[0] == "none"):
|
|
left_chat = True
|
|
|
|
async for member in app.get_chat_members(configGet("users", "groups")):
|
|
if member.user.id == msg.from_user.id:
|
|
left_chat = False
|
|
|
|
if left_chat is True:
|
|
if holo_user.application_state()[
|
|
1
|
|
] is True and holo_user.application_state()[0] not in [
|
|
"fill",
|
|
"rejected",
|
|
]:
|
|
await msg.reply_text(
|
|
locale("reapply_left_chat", "message", locale=holo_user),
|
|
reply_markup=InlineKeyboardMarkup(
|
|
[
|
|
[
|
|
InlineKeyboardButton(
|
|
locale(
|
|
"reapply_old_one",
|
|
"button",
|
|
locale=holo_user,
|
|
),
|
|
f"reapply_old_{msg.id}",
|
|
)
|
|
],
|
|
[
|
|
InlineKeyboardButton(
|
|
locale(
|
|
"reapply_new_one",
|
|
"button",
|
|
locale=holo_user,
|
|
),
|
|
f"reapply_new_{msg.id}",
|
|
)
|
|
],
|
|
]
|
|
),
|
|
)
|
|
|
|
elif (
|
|
col_tmp.find_one({"user": holo_user.id, "type": "application"})
|
|
is None
|
|
and col_applications.find_one({"user": holo_user.id}) is not None
|
|
):
|
|
await msg.reply_text(
|
|
locale("reapply_left_chat", "message", locale=holo_user),
|
|
reply_markup=InlineKeyboardMarkup(
|
|
[
|
|
[
|
|
InlineKeyboardButton(
|
|
locale(
|
|
"reapply_old_one",
|
|
"button",
|
|
locale=holo_user,
|
|
),
|
|
f"reapply_old_{msg.id}",
|
|
)
|
|
],
|
|
[
|
|
InlineKeyboardButton(
|
|
locale(
|
|
"reapply_new_one",
|
|
"button",
|
|
locale=holo_user,
|
|
),
|
|
f"reapply_new_{msg.id}",
|
|
)
|
|
],
|
|
]
|
|
),
|
|
)
|
|
|
|
else:
|
|
holo_user.application_restart(reapply=True)
|
|
await welcome_pass(app, msg, once_again=True)
|
|
|
|
else:
|
|
if holo_user.sponsorship_state()[0] == "fill":
|
|
await msg.reply_text(
|
|
locale("finish_sponsorship", "message"), quote=should_quote(msg)
|
|
)
|
|
return
|
|
|
|
holo_user.application_restart(reapply=True)
|
|
await welcome_pass(app, msg, once_again=True)
|
|
|
|
else:
|
|
await msg.reply_text(
|
|
locale("reapply_in_progress", "message", locale=holo_user).format(
|
|
locale("confirm", "keyboard", locale=holo_user)[1][0]
|
|
),
|
|
reply_markup=InlineKeyboardMarkup(
|
|
[
|
|
[
|
|
InlineKeyboardButton(
|
|
locale("applying_stop", "button", locale=holo_user),
|
|
f"reapply_stop_{msg.id}",
|
|
)
|
|
]
|
|
]
|
|
),
|
|
)
|
|
|
|
elif holo_user.spoiler_state() is True:
|
|
await msg.reply_text(locale("spoiler_in_progress", "message", locale=holo_user))
|
|
|
|
else:
|
|
if (holo_user.application_state()[0] == "fill") and (
|
|
col_tmp.find_one({"user": holo_user.id, "type": "application"})["sent"]
|
|
is True
|
|
):
|
|
await msg.reply_text(
|
|
locale("reapply_forbidden", "message", locale=holo_user)
|
|
)
|
|
|
|
else:
|
|
await msg.reply_text(
|
|
locale("reapply_in_progress", "message", locale=holo_user).format(
|
|
locale("confirm", "keyboard", locale=holo_user)[1][0]
|
|
),
|
|
reply_markup=InlineKeyboardMarkup(
|
|
[
|
|
[
|
|
InlineKeyboardButton(
|
|
locale("applying_stop", "button", locale=holo_user),
|
|
f"reapply_stop_{msg.id}",
|
|
)
|
|
]
|
|
]
|
|
),
|
|
)
|
|
|
|
|
|
# ==============================================================================================================================
|