chore(userbot): apply ruff check --fix and ruff format

- ruff check --fix: 210 auto-fixed errors (import sorting, trailing
  whitespace, unused imports, f-string fixups, deprecated annotations)
- ruff format: 104 files reformatted to consistent style
- 268 non-auto-fixable issues remain (S113 requests timeout, etc.)
This commit is contained in:
2026-06-19 12:19:01 +02:00
parent 95cec59263
commit 7ba6bc44f2
104 changed files with 4338 additions and 5319 deletions
+80 -101
View File
@@ -1,106 +1,95 @@
import os
import shutil
from pyrogram import Client, filters, enums
from pyrogram import Client, enums, filters
from pyrogram.types import Message
from utils import config
from utils.db import db
# noinspection PyUnresolvedReferences
from utils.misc import modules_help, prefix
from utils.scripts import format_exc, restart
from utils.db import db
from utils import config
if config.db_type in ["mongodb", "mongo"]:
if config.db_type in ['mongodb', 'mongo']:
import bson
def dump_mongo(collections, path, db_):
for coll in collections:
with open(os.path.join(path, f"{coll}.bson"), "wb+") as f:
with open(os.path.join(path, f'{coll}.bson'), 'wb+') as f:
for doc in db_[coll].find():
f.write(bson.BSON.encode(doc))
def restore_mongo(path, db_):
for coll in os.listdir(path):
if coll.endswith(".bson"):
with open(os.path.join(path, coll), "rb+") as f:
db_[coll.split(".")[0]].insert_many(bson.decode_all(f.read()))
if coll.endswith('.bson'):
with open(os.path.join(path, coll), 'rb+') as f:
db_[coll.split('.')[0]].insert_many(bson.decode_all(f.read()))
@Client.on_message(filters.command(["backup", "back"], prefix) & filters.me)
@Client.on_message(filters.command(['backup', 'back'], prefix) & filters.me)
async def backup(client: Client, message: Message):
"""
Backup the database
"""
try:
if not os.path.exists("backups/"):
os.mkdir("backups/")
if not os.path.exists('backups/'):
os.mkdir('backups/')
await message.edit(
"<b>Backing up database...</b>", parse_mode=enums.ParseMode.HTML
)
await message.edit('<b>Backing up database...</b>', parse_mode=enums.ParseMode.HTML)
if config.db_type in ["mongo", "mongodb"]:
dump_mongo(db._database.list_collection_names(), "backups/", db._database)
if config.db_type in ['mongo', 'mongodb']:
dump_mongo(db._database.list_collection_names(), 'backups/', db._database)
return await message.edit(
f"<b>Database backed up to:</b> <code>backups/</code> folder",
'<b>Database backed up to:</b> <code>backups/</code> folder',
parse_mode=enums.ParseMode.HTML,
)
else:
shutil.copy(config.db_name, f"backups/{config.db_name}")
shutil.copy(config.db_name, f'backups/{config.db_name}')
await client.send_document(
"me",
caption=f"<b>Database backup complete!\nType: </b>"
f"<code>.restore</code> in response to this message to restore the database.",
document=f"backups/{config.db_name}",
'me',
caption='<b>Database backup complete!\nType: </b>'
'<code>.restore</code> in response to this message to restore the database.',
document=f'backups/{config.db_name}',
parse_mode=enums.ParseMode.HTML,
)
return await message.edit(
"<b>Database backed up successfully! <code>(Check your favorites)</code></b>",
'<b>Database backed up successfully! <code>(Check your favorites)</code></b>',
parse_mode=enums.ParseMode.HTML,
)
except Exception as e:
await message.edit(format_exc(e), parse_mode=enums.ParseMode.HTML)
@Client.on_message(filters.command(["restore", "res"], prefix) & filters.me)
@Client.on_message(filters.command(['restore', 'res'], prefix) & filters.me)
async def restore(client: Client, message: Message):
"""
Restore the database
"""
try:
await message.edit(
"<b>Restoring database...</b>", parse_mode=enums.ParseMode.HTML
)
if config.db_type in ["mongo", "mongodb"]:
restore_mongo("backups/", db._database)
await message.edit('<b>Restoring database...</b>', parse_mode=enums.ParseMode.HTML)
if config.db_type in ['mongo', 'mongodb']:
restore_mongo('backups/', db._database)
return await message.edit(
f"<b>Database restored from:</b> <code>backups/</code> folder",
'<b>Database restored from:</b> <code>backups/</code> folder',
parse_mode=enums.ParseMode.HTML,
)
else:
if not message.reply_to_message or not message.reply_to_message.document:
return await message.edit(
"<b>Reply to a document to restore the database.</b>",
'<b>Reply to a document to restore the database.</b>',
parse_mode=enums.ParseMode.HTML,
)
elif not message.reply_to_message.document.file_name.casefold().endswith(
(".db", ".sqlite", ".sqlite3")
):
elif not message.reply_to_message.document.file_name.casefold().endswith(('.db', '.sqlite', '.sqlite3')):
return await message.edit(
"<b>Reply to a database file to restore the database.</b>",
'<b>Reply to a database file to restore the database.</b>',
parse_mode=enums.ParseMode.HTML,
)
await message.reply_to_message.download(
f"backups/{message.reply_to_message.document.file_name}"
)
shutil.copy(
f"backups/{message.reply_to_message.document.file_name}", config.db_name
)
await message.reply_to_message.download(f'backups/{message.reply_to_message.document.file_name}')
shutil.copy(f'backups/{message.reply_to_message.document.file_name}', config.db_name)
await message.edit(
"<b>Database restored successfully!</b>",
'<b>Database restored successfully!</b>',
parse_mode=enums.ParseMode.HTML,
)
restart()
@@ -108,104 +97,96 @@ async def restore(client: Client, message: Message):
await message.edit(format_exc(e), parse_mode=enums.ParseMode.HTML)
@Client.on_message(filters.command(["backupmods", "bms"], prefix) & filters.me)
@Client.on_message(filters.command(['backupmods', 'bms'], prefix) & filters.me)
async def backupmods(client: Client, message: Message):
"""
Backup the modules
"""
try:
if not os.path.exists("backups/"):
os.mkdir("backups/")
if not os.path.exists('backups/'):
os.mkdir('backups/')
await message.edit(
"<b>Backing up modules...</b>", parse_mode=enums.ParseMode.HTML
)
await message.edit('<b>Backing up modules...</b>', parse_mode=enums.ParseMode.HTML)
from utils.misc import modules_help
for mod in modules_help:
if os.path.isfile(f"modules/custom_modules/{mod}.py"):
f = open(f"backups/{mod}.py", "wb")
f.write(open(f"modules/custom_modules/{mod}.py", "rb").read())
if os.path.isfile(f'modules/custom_modules/{mod}.py'):
f = open(f'backups/{mod}.py', 'wb')
f.write(open(f'modules/custom_modules/{mod}.py', 'rb').read())
await message.edit(
text=f"<b>All modules backed up to:</b> <code>backups/</code> folder",
text='<b>All modules backed up to:</b> <code>backups/</code> folder',
parse_mode=enums.ParseMode.HTML,
)
except Exception as e:
await message.edit(format_exc(e), parse_mode=enums.ParseMode.HTML)
@Client.on_message(filters.command(["backupmod", "bm"], prefix) & filters.me)
@Client.on_message(filters.command(['backupmod', 'bm'], prefix) & filters.me)
async def backupmod(client: Client, message: Message):
"""
Backup the module
"""
try:
if not os.path.exists("backups/"):
os.mkdir("backups/")
from utils.misc import modules_help
if not os.path.exists('backups/'):
os.mkdir('backups/')
try:
mod = message.text.split(maxsplit=1)[1].split(".")[0]
mod = message.text.split(maxsplit=1)[1].split('.')[0]
except:
return await message.edit(
f"<b>Usage:</b> <code>{prefix}backupmod [module]</code>",
f'<b>Usage:</b> <code>{prefix}backupmod [module]</code>',
parse_mode=enums.ParseMode.HTML,
)
await message.edit(
"<b>Backing up module...</b>", parse_mode=enums.ParseMode.HTML
)
await message.edit('<b>Backing up module...</b>', parse_mode=enums.ParseMode.HTML)
if os.path.isfile(f"modules/custom_modules/{mod}.py"):
f = open(f"backups/{mod}.py", "wb")
f.write(open(f"modules/custom_modules/{mod}.py", "rb").read())
if os.path.isfile(f'modules/custom_modules/{mod}.py'):
f = open(f'backups/{mod}.py', 'wb')
f.write(open(f'modules/custom_modules/{mod}.py', 'rb').read())
else:
return await message.edit(
f"<b>Module <code>{mod}</code> not found.</b>",
f'<b>Module <code>{mod}</code> not found.</b>',
parse_mode=enums.ParseMode.HTML,
)
await message.reply_document(
document=f"backups/{mod}.py",
caption=f"<b>Module <code>{mod}</code> backed up to:</b> <code>backups/</code> folder",
document=f'backups/{mod}.py',
caption=f'<b>Module <code>{mod}</code> backed up to:</b> <code>backups/</code> folder',
parse_mode=enums.ParseMode.HTML,
)
except Exception as e:
await message.edit(format_exc(e), parse_mode=enums.ParseMode.HTML)
@Client.on_message(filters.command(["restoremod", "resmod"], prefix) & filters.me)
@Client.on_message(filters.command(['restoremod', 'resmod'], prefix) & filters.me)
async def restoremod(client: Client, message: Message):
"""
Restore the module
"""
try:
if not os.path.exists("backups/"):
os.mkdir("backups/")
from utils.misc import modules_help
if not os.path.exists('backups/'):
os.mkdir('backups/')
try:
mod = message.text.split(maxsplit=1)[1].split(".")[0]
mod = message.text.split(maxsplit=1)[1].split('.')[0]
except:
return await message.edit(
f"<b>Usage:</b> <code>{prefix}restoremod [module]</code>",
f'<b>Usage:</b> <code>{prefix}restoremod [module]</code>',
parse_mode=enums.ParseMode.HTML,
)
await message.edit(
"<b>Restoring module...</b>", parse_mode=enums.ParseMode.HTML
)
await message.edit('<b>Restoring module...</b>', parse_mode=enums.ParseMode.HTML)
if os.path.isfile(f"backups/{mod}.py"):
f = open(f"modules/custom_modules/{mod}.py", "wb")
f.write(open(f"backups/{mod}.py", "rb").read())
if os.path.isfile(f'backups/{mod}.py'):
f = open(f'modules/custom_modules/{mod}.py', 'wb')
f.write(open(f'backups/{mod}.py', 'rb').read())
else:
return await message.edit(
f"<b>Module <code>{mod}</code> not found.</b>",
f'<b>Module <code>{mod}</code> not found.</b>',
parse_mode=enums.ParseMode.HTML,
)
await message.edit(
f"<b>Module <code>{mod}</code> restored successfully!</b>",
f'<b>Module <code>{mod}</code> restored successfully!</b>',
parse_mode=enums.ParseMode.HTML,
)
restart()
@@ -213,27 +194,25 @@ async def restoremod(client: Client, message: Message):
await message.edit(format_exc(e), parse_mode=enums.ParseMode.HTML)
@Client.on_message(filters.command(["restoremods", "resmods"], prefix) & filters.me)
@Client.on_message(filters.command(['restoremods', 'resmods'], prefix) & filters.me)
async def restoremods(client: Client, message: Message):
"""
Restore the modules
"""
try:
if not os.path.exists("backups/"):
os.mkdir("backups/")
if not os.path.exists('backups/'):
os.mkdir('backups/')
await message.edit(
"<b>Restoring modules...</b>", parse_mode=enums.ParseMode.HTML
)
await message.edit('<b>Restoring modules...</b>', parse_mode=enums.ParseMode.HTML)
for mod in os.listdir("backups/"):
if mod.endswith(".py"):
if os.path.isfile(f"modules/{mod}"):
for mod in os.listdir('backups/'):
if mod.endswith('.py'):
if os.path.isfile(f'modules/{mod}'):
continue
f = open(f"modules/custom_modules/{mod}", "wb")
f.write(open(f"backups/{mod}", "rb").read())
f = open(f'modules/custom_modules/{mod}', 'wb')
f.write(open(f'backups/{mod}', 'rb').read())
await message.edit(
text=f"<b>All modules restored from:</b> <code>backups/</code> folder",
text='<b>All modules restored from:</b> <code>backups/</code> folder',
parse_mode=enums.ParseMode.HTML,
)
restart()
@@ -241,11 +220,11 @@ async def restoremods(client: Client, message: Message):
await message.edit(format_exc(e), parse_mode=enums.ParseMode.HTML)
modules_help["backup"] = {
"backup": f"<b>Backup database</b>",
"restore [reply]": f"<b>Restore database</b>",
"backupmod [name]": f"<b>Backup mod</b>",
"backupmods": f"<b>Backup all mods</b>",
"resmod [name]": f"<b>Restore mod</b>",
"resmods": f"<b>Restore all mods</b>",
modules_help['backup'] = {
'backup': '<b>Backup database</b>',
'restore [reply]': '<b>Restore database</b>',
'backupmod [name]': '<b>Backup mod</b>',
'backupmods': '<b>Backup all mods</b>',
'resmod [name]': '<b>Restore mod</b>',
'resmods': '<b>Restore all mods</b>',
}