User bans, emoji and other bug fixes, age limiter, etc #26
@ -91,6 +91,7 @@
|
|||||||
"no_user_application": "Не знайдено користувачів за запитом **{0}**",
|
"no_user_application": "Не знайдено користувачів за запитом **{0}**",
|
||||||
"user_invalid": "Надісланий користувач не має завершеної анкети.",
|
"user_invalid": "Надісланий користувач не має завершеної анкети.",
|
||||||
"joined_false_link": "Користувач **{0}** (`{1}`) приєднався до групи не за своїм посиланням",
|
"joined_false_link": "Користувач **{0}** (`{1}`) приєднався до групи не за своїм посиланням",
|
||||||
|
"joined_application": "{0} (@{1})\n\n**Дані анкети:**\n{2}",
|
||||||
"sponsorships_expires": "⚠️ **Нагадування**\nНадана платна підписка припинить діяти **за {0} д**. Будь ласка, оновіть дані про неї командою /sponsorship інакше роль буде втрачено!",
|
"sponsorships_expires": "⚠️ **Нагадування**\nНадана платна підписка припинить діяти **за {0} д**. Будь ласка, оновіть дані про неї командою /sponsorship інакше роль буде втрачено!",
|
||||||
"sponsorships_expired": "⚠️ **Нагадування**\nТермін дії вказаної підписки сплив. Для повторного отримання ролі користуйся командою /sponsorship.",
|
"sponsorships_expired": "⚠️ **Нагадування**\nТермін дії вказаної підписки сплив. Для повторного отримання ролі користуйся командою /sponsorship.",
|
||||||
"label_too_long": "Довжина назви ролі не повинна перевищувати 16 символів",
|
"label_too_long": "Довжина назви ролі не повинна перевищувати 16 символів",
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
|
from datetime import datetime
|
||||||
from app import app, isAnAdmin
|
from app import app, isAnAdmin
|
||||||
from pyrogram.types import ChatPermissions, InlineKeyboardMarkup, InlineKeyboardButton, ChatMemberUpdated
|
from pyrogram.types import ChatPermissions, InlineKeyboardMarkup, InlineKeyboardButton, ChatMemberUpdated
|
||||||
from pyrogram.client import Client
|
from pyrogram.client import Client
|
||||||
from modules.utils import configGet, locale
|
from modules.utils import configGet, locale
|
||||||
from modules.logging import logWrite
|
|
||||||
from classes.holo_user import HoloUser
|
|
||||||
from modules import custom_filters
|
from modules import custom_filters
|
||||||
|
from modules.logging import logWrite
|
||||||
|
from modules.database import col_applications
|
||||||
|
from classes.holo_user import HoloUser
|
||||||
|
from dateutil.relativedelta import relativedelta
|
||||||
|
|
||||||
# Filter users on join =========================================================================================================
|
# Filter users on join =========================================================================================================
|
||||||
@app.on_chat_member_updated(custom_filters.enabled_invites_check, group=configGet("users", "groups"))
|
@app.on_chat_member_updated(custom_filters.enabled_invites_check, group=configGet("users", "groups"))
|
||||||
@ -16,7 +19,28 @@ async def filter_join(app: Client, member: ChatMemberUpdated):
|
|||||||
holo_user = HoloUser(member.from_user)
|
holo_user = HoloUser(member.from_user)
|
||||||
|
|
||||||
if (holo_user.link is not None) and (holo_user.link == member.invite_link.invite_link):
|
if (holo_user.link is not None) and (holo_user.link == member.invite_link.invite_link):
|
||||||
|
|
||||||
logWrite(f"User {holo_user.id} joined destination group with correct link {holo_user.link}")
|
logWrite(f"User {holo_user.id} joined destination group with correct link {holo_user.link}")
|
||||||
|
|
||||||
|
application = col_applications.find_one({"user": holo_user.id})
|
||||||
|
application_content = []
|
||||||
|
i = 1
|
||||||
|
|
||||||
|
for question in application['application']:
|
||||||
|
|
||||||
|
if i == 2:
|
||||||
|
age = relativedelta(datetime.now(), application['application']['2'])
|
||||||
|
application_content.append(f"{locale(f'question{i}', 'message', 'question_titles')} {application['application']['2'].strftime('%d.%m.%Y')} ({age.years} р.)")
|
||||||
|
elif i == 3:
|
||||||
|
if application['application']['3']['countryCode'] == "UA":
|
||||||
|
application_content.append(f"{locale(f'question{i}', 'message', 'question_titles')} {application['application']['3']['name']}")
|
||||||
|
else:
|
||||||
|
application_content.append(f"{locale(f'question{i}', 'message', 'question_titles')} {application['application']['3']['name']} ({application['application']['3']['adminName1']}, {application['application']['3']['countryName']})")
|
||||||
|
else:
|
||||||
|
application_content.append(f"{locale(f'question{i}', 'message', 'question_titles')} {application['application'][question]}")
|
||||||
|
|
||||||
|
i += 1
|
||||||
|
await app.send_message(configGet("users", "groups"), locale("joined_application", "messages").format(member.from_user.first_name, member.from_user.username, "\n".join(application_content)))
|
||||||
return
|
return
|
||||||
|
|
||||||
if await isAnAdmin(member.invite_link.creator.id):
|
if await isAnAdmin(member.invite_link.creator.id):
|
||||||
|
Reference in New Issue
Block a user