From d3945eea0cab8681f3bd53a86bf4c2d458b3e201 Mon Sep 17 00:00:00 2001 From: profitroll Date: Wed, 21 Dec 2022 12:25:47 +0100 Subject: [PATCH] Started working on sponsorships --- locale/uk.json | 18 ++++++++++++--- modules/callbacks/sponsorship.py | 38 ++++++++++++++++++++++++++++++++ modules/commands/sponsorship.py | 7 ++++-- modules/handlers/sponsorship.py | 7 +++++- 4 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 modules/callbacks/sponsorship.py diff --git a/locale/uk.json b/locale/uk.json index 8076558..7ecc50d 100644 --- a/locale/uk.json +++ b/locale/uk.json @@ -20,6 +20,12 @@ "question3_found": "Використовую наступний результат:\n• {0} ({1})", "question3_error": "⚠️ **Сталась помилка**\nНе вдалось отримати географічну мітку. Розробника повідомлено про цю помилку. Будь ласка, спробуйте ще раз.", "question3_traceback": "⚠️ **Сталась помилка**\nПомилка отримання геокодингу для `{0}`\nПомилка: `{1}`\n\nTraceback:\n```\n{2}\n```", + "sponsorship_apply": "ℹ️ Розпочато заповнення форми на отримання бонусів за платну підписку на холодівчат.", + "sponsor1": "На яку саме дівчину платна підписка?", + "sponsor2": "До якої дати (`ДД.ММ.РРРР`) підписка?", + "sponsor2_invalid": "Будь ласка, введи дату формату `ДД.ММ.РРРР`", + "sponsor3": "Будь ласка, надішли одне фото для підтвердження дійсності підписки", + "sponsorship_application_empty": "❌ **Дія неможлива**\nУ тебе немає заповненої та схваленої анкети. Заповни таку за допомогою /reapply та спробуй ще раз після її підтвердження.", "confirm": "Супер, дякуємо!\n\nБудь ласка, перевір правильність даних:\n{0}\n\nВсе правильно?", "application_sent": "Дякуємо! Ми надіслали твою анкетку на перевірку. Ти отримаєш повідомлення як тільки її перевірять та приймуть рішення. До тих пір від тебе більше нічого не потребується. Гарного дня! :)", "application_got": "Отримано анкету від `{0}`\n\nІм'я тг: `{1}`, `{2}`\nЮзернейм: @{3}\n\n**Дані анкети:**\n{4}", @@ -122,7 +128,10 @@ "question7": "П'ять японських холодівчат", "question8": "Так або ні", "question9": "Ім'я дівчини або дівчин", - "question10": "Трошки про себе" + "question10": "Трошки про себе", + "sponsor1": "Ім'я дівчини", + "sponsor2": "Дата до якої підписка", + "sponsor3": "Фото-підтвердження" }, "button": { "sub_yes": "✅ Прийняти", @@ -145,7 +154,9 @@ "rules_next": "Далі ➡️", "rules_prev": "⬅️ Назад", "applying_stop": "🛑 Перервати заповнення", - "done": "✅ Готово" + "done": "✅ Готово", + "sponsor_apply": "Заповнити форму", + "sponsor_started": "Форму розпочато" }, "callback": { "sub_accepted": "✅ Анкету {0} схвалено", @@ -158,7 +169,8 @@ "rules_page": "ℹ️ Показано правило {0}", "rules_home": "ℹ️ Показано головну правил", "rules_additional": "ℹ️ Показано додаткові правила", - "reapply_stopped": "ℹ️ Перервано заповнення анкети" + "reapply_stopped": "ℹ️ Перервано заповнення анкети", + "sponsor_started": "ℹ️ Заповнення форми розпочато" }, "inline": { "forbidden": { diff --git a/modules/callbacks/sponsorship.py b/modules/callbacks/sponsorship.py new file mode 100644 index 0000000..c0e6a95 --- /dev/null +++ b/modules/callbacks/sponsorship.py @@ -0,0 +1,38 @@ +from datetime import datetime +from app import app +from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton +from pyrogram import filters +from classes.holo_user import HoloUser +from modules.utils import configGet, locale, logWrite +from modules.database import col_tmp,col_sponsorships + +# Callbacks sponsorship ======================================================================================================== +@app.on_callback_query(filters.regex("sponsor_apply_[\s\S]*")) +async def callback_query_sponsor_apply(app, clb): + + fullclb = clb.data.split("_") + holo_user = HoloUser(int(fullclb[2])) + + logWrite(f"User {holo_user.id} applied for sponsorship") + + col_tmp.insert_one( + { + "user": holo_user.id, + "type": "sponsorship", + "complete": False, + "sent": False, + "state": "fill", + "stage": 1, + "sponsorship": { + "streamer": None, + "expires": datetime.fromtimestamp(0), + "proof": None, + "label": "" + } + } + ) + + edited_markup = [[InlineKeyboardButton(text=str(locale("sponsor_started", "button")), callback_data="nothing")]] + + await clb.message.edit(text=locale("sponsorship_apply", "message"), reply_markup=InlineKeyboardMarkup(edited_markup)) + await clb.answer(text=locale("sponsor_started", "callback").format(holo_user.id), show_alert=False) \ No newline at end of file diff --git a/modules/commands/sponsorship.py b/modules/commands/sponsorship.py index d5234fb..7665dc7 100644 --- a/modules/commands/sponsorship.py +++ b/modules/commands/sponsorship.py @@ -1,14 +1,17 @@ from datetime import datetime from app import app, isAnAdmin from pyrogram import filters -from modules.utils import should_quote +from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton +from modules.utils import locale, should_quote from modules.database import col_applications # Sponsorship command ========================================================================================================== @app.on_message(~ filters.scheduled & filters.command(["sponsorship"], prefixes=["/"])) async def cmd_sponsorship(app, msg): if (await isAnAdmin(msg) is True) or (col_applications.find_one({"user": msg.from_user.id}) is not None): - await msg.reply_text("Yes, I exist.", quote=should_quote(msg)) + await msg.reply_text(locale("sponsorship_apply", "message"), reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton(text=str(locale("sponsor_apply", "button")), callback_data=f"sponsor_apply_{msg.from_user.id}")]]), quote=should_quote(msg)) + else: + await msg.reply_text(locale("sponsorship_application_empty", "message")) # if not path.exists(f"{configGet('data', 'locations')}{sep}sponsors{sep}{msg.from_user.id}.json"): # jsonSave(jsonLoad(f"{configGet('data', 'locations')}{sep}sponsor_default.json"), f"{configGet('data', 'locations')}{sep}sponsors{sep}{msg.from_user.id}.json") # sponsor = jsonLoad(f"{configGet('data', 'locations')}{sep}sponsors{sep}{msg.from_user.id}.json") diff --git a/modules/handlers/sponsorship.py b/modules/handlers/sponsorship.py index e524e69..393405e 100644 --- a/modules/handlers/sponsorship.py +++ b/modules/handlers/sponsorship.py @@ -1 +1,6 @@ -from app import app \ No newline at end of file +from app import app +from pyrogram import filters + +@app.on_message(~ filters.scheduled & filters.photo & filters.private) +async def sponsor_proof(app, msg): + pass \ No newline at end of file