from dateutil.relativedelta import relativedelta from datetime import datetime from app import app, isAnAdmin from pyrogram import filters from modules.utils import locale, logWrite from modules.database import col_applications from classes.holo_user import HoloUser # Contact getting ============================================================================================================== @app.on_message(~ filters.scheduled & filters.contact & filters.private) async def get_contact(app, msg): holo_user = HoloUser(msg.from_user) if holo_user.application_approved() or (await isAnAdmin(holo_user.id) is True): if msg.contact.user_id != None: application = col_applications.find_one({"user": msg.contact.user_id}) if application is None: logWrite(f"User {holo_user.id} requested application of {msg.contact.user_id} but user does not exists") await msg.reply_text(locale("contact_invalid", "message", locale=holo_user.locale)) return 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', locale=holo_user.locale)} {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', locale=holo_user.locale)} {application['application']['3']['name']}") else: application_content.append(f"{locale(f'question{i}', 'message', 'question_titles', locale=holo_user.locale)} {application['application']['3']['name']} ({application['application']['3']['adminName1']}, {application['application']['3']['countryName']})") else: application_content.append(f"{locale(f'question{i}', 'message', 'question_titles', locale=holo_user.locale)} {application['application'][question]}") i += 1 application_status = locale("application_status_accepted", "message", locale=holo_user.locale).format((await app.get_users(application["admin"])).first_name, application["date"].strftime("%d.%m.%Y, %H:%M")) logWrite(f"User {holo_user.id} requested application of {msg.contact.user_id}") await msg.reply_text(locale("contact", "message", locale=holo_user.locale).format(str(msg.contact.user_id), "\n".join(application_content), application_status)) else: logWrite(f"User {holo_user.id} requested application of someone but user is not telegram user") await msg.reply_text(locale("contact_not_member", "message", locale=holo_user.locale)) # ==============================================================================================================================