diff --git a/locale/uk.json b/locale/uk.json index 5f4b8b6..b449d67 100644 --- a/locale/uk.json +++ b/locale/uk.json @@ -108,10 +108,10 @@ "spoiler_empty": "Спойлер категорії \"{0}\" без опису", "spoiler_described": "Спойлер категорії \"{0}\": {1}", "spoiler_description_enter": "Добре, введіть бажаний опис спойлера", - "spoiler_using_description": "Встановлено опис спойлера: {0}\n\nЗалишилось додати вміст самого спойлера. Бот приймає текстове повідомлення, фото, відео а також гіф зображення (1 шт.)", + "spoiler_using_description": "Встановлено опис спойлера: {0}\n\nЗалишилось додати вміст самого спойлера. Бот приймає текстове повідомлення, фото, відео, файл а також гіф зображення (1 шт.)", "spoiler_send_description": "Тепер треба надіслати коротенький опис спойлера, щоб люди розуміли що під ним варто очкувати. Надішли мінус (-) щоб пропустити цей крок.", "spoiler_ready": "Успіх! Спойлер створено. Користуйтесь кнопкою нижче щоб надіслати його.", - "spoiler_incorrect_content": "Бот не підтримує такий контент. Будь ласка, надішли текст, фото, відео або анімацію (гіф).", + "spoiler_incorrect_content": "Бот не підтримує такий контент. Будь ласка, надішли текст, фото, відео, файл або анімацію (гіф).", "spoiler_incorrect_category": "Вказана категорія не є дійсною. Будь ласка, користуйся клавіатурою бота (кнопка біля 📎) для вибору категорії.", "spoiler_in_progress": "❌ **Дія неможлива**\nПерш ніж починати нову дію, треба завершити створення спойлера або перервати його командою /cancel.", "yes": "Так", diff --git a/modules/commands/spoiler.py b/modules/commands/spoiler.py index cecac06..691d8f5 100644 --- a/modules/commands/spoiler.py +++ b/modules/commands/spoiler.py @@ -30,6 +30,7 @@ async def cmd_spoiler(app: Client, msg: Message): "photo": None, "video": None, "animation": None, + "document": None, "caption": None, "text": None } diff --git a/modules/commands/start.py b/modules/commands/start.py index 109a743..84beb63 100644 --- a/modules/commands/start.py +++ b/modules/commands/start.py @@ -38,6 +38,8 @@ async def cmd_start(app: Client, msg: Message): await msg.reply_video(spoiler["video"], caption=spoiler["caption"]) if spoiler["animation"] is not None: await msg.reply_animation(spoiler["animation"], caption=spoiler["caption"]) + if spoiler["document"] is not None: + await msg.reply_document(spoiler["document"], caption=spoiler["caption"]) if spoiler["text"] is not None: await msg.reply_text(spoiler["text"]) except InvalidId: diff --git a/modules/handlers/everything.py b/modules/handlers/everything.py index 135d91b..2f8a30e 100644 --- a/modules/handlers/everything.py +++ b/modules/handlers/everything.py @@ -121,7 +121,12 @@ async def any_stage(app: Client, msg: Message): logWrite(f"Adding animation with id {msg.animation.file_id} to {msg.from_user.id}'s spoiler") ready = True - if spoiler["photo"] is None and spoiler["video"] is None and spoiler["animation"] is None and spoiler["text"] is None: + if msg.document is not None: + col_spoilers.find_one_and_update( {"user": msg.from_user.id, "completed": False}, {"$set": {"document": msg.document.file_id, "caption": msg.caption, "completed": True}} ) + logWrite(f"Adding document with id {msg.document.file_id} to {msg.from_user.id}'s spoiler") + ready = True + + if spoiler["photo"] is None and spoiler["video"] is None and spoiler["animation"] is None and spoiler["document"] is None and spoiler["text"] is None: if msg.text is not None: col_spoilers.find_one_and_update( {"user": msg.from_user.id, "completed": False}, {"$set": {"text": msg.text, "completed": True}} ) logWrite(f"Adding text '{msg.text}' to {msg.from_user.id}'s spoiler") diff --git a/validation/spoilers.json b/validation/spoilers.json index 8c6733d..c54cc48 100644 --- a/validation/spoilers.json +++ b/validation/spoilers.json @@ -8,6 +8,7 @@ "photo", "video", "animation", + "document", "caption", "text" ], @@ -41,6 +42,10 @@ "bsonType": ["string", "null"], "description": "Spoilered animation/GIF" }, + "document": { + "bsonType": ["string", "null"], + "description": "Spoilered document/file" + }, "caption": { "bsonType": ["string", "null"], "description": "Spoilered caption for media"