diff --git a/classes/pyroclient.py b/classes/pyroclient.py index 6bca93c..c0d40e1 100644 --- a/classes/pyroclient.py +++ b/classes/pyroclient.py @@ -139,7 +139,7 @@ class PyroClient(PyroClient): await super().stop() async def submit_media( - self, id: str + self, id: str, purge_caption: bool = False ) -> Tuple[Union[Message, None], Union[str, None]]: db_entry = await col_submitted.find_one({"_id": ObjectId(id)}) submission = None @@ -224,7 +224,13 @@ class PyroClient(PyroClient): ) raise SubmissionDuplicatesError(str(filepath), duplicates) - await col_submitted.update_one({"_id": ObjectId(id)}, {"$set": {"done": True}}) + db_update = ( + {"$set": {"done": True, "caption": None}} + if purge_caption + else {"$set": {"done": True}} + ) + + await col_submitted.update_one({"_id": ObjectId(id)}, db_update) try: if db_entry["temp"]["uuid"] is not None: diff --git a/plugins/callbacks/submission.py b/plugins/callbacks/submission.py index fb749fe..797d403 100644 --- a/plugins/callbacks/submission.py +++ b/plugins/callbacks/submission.py @@ -28,7 +28,10 @@ async def callback_query_yes(app: PyroClient, callback: CallbackQuery): db_entry = await col_submitted.find_one({"_id": ObjectId(fullcallback[2])}) try: - submission = await app.submit_media(fullcallback[2]) + submission = await app.submit_media( + fullcallback[2], + purge_caption=("caption" not in fullcallback), + ) except SubmissionUnavailableError: await callback.answer( text=app._("sub_msg_unavail", "callback", locale=user.locale), @@ -120,6 +123,11 @@ async def callback_query_yes(app: PyroClient, callback: CallbackQuery): fullcallback[2], submission[1], ) + logger.info( + "Submission with ID '%s' accepted and uploaded with ID '%s'", + fullcallback[2], + submission[1], + ) @Client.on_callback_query(filters.regex("sub_no_[\s\S]*"))