diff --git a/classes/holo_user.py b/classes/holo_user.py index 257e4ec..b36dc65 100644 --- a/classes/holo_user.py +++ b/classes/holo_user.py @@ -286,10 +286,15 @@ class HoloUser(): if len(label) > 16: raise LabelTooLongError(label) self.label = label - self.set("label", label) - await app.promote_chat_member(configGet("destination_group"), self.id, privileges=ChatPrivileges(can_pin_messages=True, can_manage_video_chats=True)) - if not await isAnAdmin(self.id): - await app.set_administrator_title(configGet("destination_group"), self.id, label) + try: + await app.promote_chat_member(configGet("destination_group"), self.id, privileges=ChatPrivileges(can_pin_messages=True, can_manage_video_chats=True)) + if not await isAnAdmin(self.id): + await app.set_administrator_title(configGet("destination_group"), self.id, label) + self.set("label", label) + except bad_request_400.UserCreator: + logWrite(f"Could not set {self.id}'s title to '{self.label}' because of bad_request_400.UserCreator") + except bad_request_400.ChatAdminRequired: + logWrite(f"Could not set {self.id}'s title to '{self.label}' because of bad_request_400.ChatAdminRequired") async def label_reset(self, chat: Chat) -> None: """Reset label in destination group @@ -346,6 +351,9 @@ class HoloUser(): if col_tmp.find_one({"user": self.id, "type": "application"}) is None: + if self.sponsorship_state()[0] == "fill": + return + col_tmp.insert_one( document=DefaultApplicationTemp(self.id).dict ) @@ -524,7 +532,7 @@ class HoloUser(): elif stage == 4: if len(query) > 16: - await msg.reply_text(locale("label_too_long", "message")) + await msg.reply_text(locale("label_too_long", "message"), reply_markup=ForceReply(placeholder=str(locale("sponsor4", "force_reply", locale=self.locale)))) return progress["sponsorship"]["label"] = query col_tmp.update_one({"user": {"$eq": self.id}, "type": {"$eq": "sponsorship"}}, {"$set": {"sponsorship": progress["sponsorship"], "complete": True}}) diff --git a/locale/uk.json b/locale/uk.json index 12c5bed..9b8f591 100644 --- a/locale/uk.json +++ b/locale/uk.json @@ -26,8 +26,8 @@ "sponsor2": "До якої дати (`ДД.ММ.РРРР`) підписка?", "sponsor2_invalid": "Будь ласка, введи дату формату `ДД.ММ.РРРР`", "sponsor2_past": "Вказана дата знаходиться в минулому. Будь ласка, вкажіть правильний термін дії підписки", - "sponsor3": "Будь ласка, надішли одне фото для підтвердження дійсності підписки", - "sponsor4": "Яку роль ти бажаєш отримати?", + "sponsor3": "Будь ласка, надішли одне фото для підтвердження дійсності підписки\n\nℹ️ **Підказка**\nПрочитай як правильно скрінити легітимне підтвердження підписки: https://telegra.ph/Pіdpiska-na-holo-dіvchinu-01-02", + "sponsor4": "Яку роль ти бажаєш отримати?\n\nℹ️ **Підказка**\nНазва ролі повинна бути якось пов'язана зі вказаною дівчиною, не повинна порушувати правила спільноти а також має бути не довше за 16 символів (обмеження Telegram).", "sponsorship_application_empty": "❌ **Дія неможлива**\nУ тебе немає заповненої та схваленої анкети. Заповни таку за допомогою /reapply та спробуй ще раз після її підтвердження.", "confirm": "Супер, дякуємо!\n\nБудь ласка, перевір правильність даних:\n{0}\n\nВсе правильно?", "sponsor_confirm": "Здається, це все. Перевір чи все правильно та жмакни кнопку на клавіатурі щоб продовжити.", @@ -49,7 +49,7 @@ "rejected_by": "❌ **Анкету відхилено**\nАдмін **{0}** переглянув та відхилив анкету `{1}`.", "rejected_by_agr": "❌ **Анкету відхилено**\nАдмін **{0}** переглянув та відхилив анкету `{1}`, заборонивши вступ до спільноти.\nПричина: агресивна/токсична анкета.", "rejected_by_rus": "❌ **Анкету відхилено**\nАдмін **{0}** переглянув та відхилив анкету `{1}`, заборонивши вступ до спільноти.\nПричина: русня.", - "sponsor_approved": "Вітаємо! Твою форму переглянули та підтвердили її правильність. Коли термін дії наданої підписки буде добігати кінця - ми нагадаємо, що треба оновити дані аби й надалі отримувати плюшки в боті. Гарного дня!", + "sponsor_approved": "Вітаємо! Твою форму переглянули та підтвердили її правильність. Коли термін дії наданої підписки буде добігати кінця - ми нагадаємо, що треба оновити дані аби й надалі отримувати плюшки в чаті. Також можна повторно заповнити форму, якщо хочеться змінити бажане ім'я ролі або подовжити термін дії підписки завчасно, за допомогою команди /sponsorship. Гарного дня!", "sponsor_rejected": "Ой лишенько! Твою форму переглянули, однак не підтвердили її. Можливо, щось не так з датами, або ж бажана роль не може бути надана.\n\nТи можеш спробувати повторно заповнити форму командою /sponsorship", "sponsor_approved_by": "✅ **Підписку схвалено**\nАдмін **{0}** переглянув та схвалив форму `{1}`.", "sponsor_rejected_by": "❌ **Підписку відхилено**\nАдмін **{0}** переглянув та відхилив форму `{1}`.",