From 46a2d509478bafe2ce0f1f49b0226dba50a4aeec Mon Sep 17 00:00:00 2001 From: Abhi Date: Fri, 9 Aug 2024 00:41:53 +0530 Subject: [PATCH] fix: `sqlite3.ProgrammingError` Recursive use of cursors not allowed. --- modules/upl.py | 6 ++++++ utils/db.py | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/upl.py b/modules/upl.py index fb6f9cd..8afba56 100644 --- a/modules/upl.py +++ b/modules/upl.py @@ -34,6 +34,12 @@ async def upl(client: Client, message: Message): await message.edit(format_exc(e)) +@Client.on_message(filters.command("dlf", prefix) & filters.me) +async def dlf(client: Client, message: Message): + if message.reply_to_message.document: + await client.download_media(message.reply_to_message) + + @Client.on_message(filters.command("moonlogs", prefix) & filters.me) async def mupl(client: Client, message: Message): link = "moonlogs.txt" diff --git a/utils/db.py b/utils/db.py index 0a7f986..2cac220 100644 --- a/utils/db.py +++ b/utils/db.py @@ -129,7 +129,8 @@ def _execute(self, module: str, *args, **kwargs) -> sqlite3.Cursor: self._lock.acquire() try: - return self._cursor.execute(*args, **kwargs) + cursor = self._conn.cursor() + return cursor.execute(*args, **kwargs) except sqlite3.OperationalError as e: if str(e).startswith("no such table"): sql = f""" @@ -139,9 +140,10 @@ def _execute(self, module: str, *args, **kwargs) -> sqlite3.Cursor: type TEXT NOT NULL ) """ - self._cursor.execute(sql) + cursor = self._conn.cursor() + cursor.execute(sql) self._conn.commit() - return self._cursor.execute(*args, **kwargs) + return cursor.execute(*args, **kwargs) raise e from None finally: self._lock.release()