User bans, emoji and other bug fixes, age limiter, etc #26
@ -91,6 +91,7 @@
|
||||
"no_user_application": "Не знайдено користувачів за запитом **{0}**",
|
||||
"user_invalid": "Надісланий користувач не має завершеної анкети.",
|
||||
"joined_false_link": "Користувач **{0}** (`{1}`) приєднався до групи не за своїм посиланням",
|
||||
"joined_application": "{0} (@{1})\n\n**Дані анкети:**\n{2}",
|
||||
"sponsorships_expires": "⚠️ **Нагадування**\nНадана платна підписка припинить діяти **за {0} д**. Будь ласка, оновіть дані про неї командою /sponsorship інакше роль буде втрачено!",
|
||||
"sponsorships_expired": "⚠️ **Нагадування**\nТермін дії вказаної підписки сплив. Для повторного отримання ролі користуйся командою /sponsorship.",
|
||||
"label_too_long": "Довжина назви ролі не повинна перевищувати 16 символів",
|
||||
|
@ -1,10 +1,13 @@
|
||||
from datetime import datetime
|
||||
from app import app, isAnAdmin
|
||||
from pyrogram.types import ChatPermissions, InlineKeyboardMarkup, InlineKeyboardButton, ChatMemberUpdated
|
||||
from pyrogram.client import Client
|
||||
from modules.utils import configGet, locale
|
||||
from modules.logging import logWrite
|
||||
from classes.holo_user import HoloUser
|
||||
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 =========================================================================================================
|
||||
@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)
|
||||
|
||||
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}")
|
||||
|
||||
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
|
||||
|
||||
if await isAnAdmin(member.invite_link.creator.id):
|
||||
|
Reference in New Issue
Block a user