diff --git a/config_example.json b/config_example.json index 2861396..3cca296 100644 --- a/config_example.json +++ b/config_example.json @@ -31,6 +31,9 @@ "location": "logs" }, "features": { + "general": { + "enabled": true + }, "applications": { "enabled": true }, diff --git a/modules/commands/message.py b/modules/commands/message.py index d7718aa..94af6d8 100644 --- a/modules/commands/message.py +++ b/modules/commands/message.py @@ -7,7 +7,7 @@ from modules.utils import logWrite, locale, should_quote from modules import custom_filters # Message command ============================================================================================================== -@app.on_message(~filters.scheduled & filters.command(["message"], prefixes=["/"]) & custom_filters.admin) +@app.on_message(custom_filters.enabled_general & ~filters.scheduled & filters.command(["message"], prefixes=["/"]) & custom_filters.admin) async def cmd_message(app: Client, msg: Message): try: diff --git a/modules/commands/reboot.py b/modules/commands/reboot.py index e832a15..8005a1a 100644 --- a/modules/commands/reboot.py +++ b/modules/commands/reboot.py @@ -11,7 +11,7 @@ from modules import custom_filters pid = getpid() # Shutdown command ============================================================================================================= -@app.on_message(~filters.scheduled & filters.private & filters.command(["kill", "die", "reboot"], prefixes=["/"]) & custom_filters.admin) +@app.on_message(custom_filters.enabled_general & ~filters.scheduled & filters.private & filters.command(["kill", "die", "reboot"], prefixes=["/"]) & custom_filters.admin) async def cmd_kill(app: Client, msg: Message): logWrite(f"Shutting down bot with pid {pid}") diff --git a/modules/commands/rules.py b/modules/commands/rules.py index 98b6c39..f81a701 100644 --- a/modules/commands/rules.py +++ b/modules/commands/rules.py @@ -4,6 +4,7 @@ from pyrogram import filters from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, User, Message from pyrogram.client import Client from modules.utils import locale +from modules import custom_filters from classes.holo_user import HoloUser class DefaultRulesMarkup(list): @@ -35,7 +36,7 @@ class DefaultRulesMarkup(list): # Rules command ============================================================================================================= -@app.on_message(~ filters.scheduled & filters.private & filters.command(["rules"], prefixes=["/"])) +@app.on_message(custom_filters.enabled_general & ~filters.scheduled & filters.private & filters.command(["rules"], prefixes=["/"])) async def cmd_rules(app: Client, msg: Message): await msg.reply_text(locale("rules_msg", locale=msg.from_user), disable_web_page_preview=True, reply_markup=DefaultRulesMarkup(msg.from_user).keyboard) # ============================================================================================================================== \ No newline at end of file diff --git a/modules/custom_filters.py b/modules/custom_filters.py index 89f771d..dc54ef4 100644 --- a/modules/custom_filters.py +++ b/modules/custom_filters.py @@ -13,6 +13,9 @@ async def admin_func(_, __, msg: Message): async def allowed_func(_, __, msg: Message): return True if (col_applications.find_one({"user": msg.from_user.id}) is not None) else False +async def enabled_general_func(_, __, msg: Message): + return configGet("enabled", "features", "general") + async def enabled_applications_func(_, __, msg: Message): return configGet("enabled", "features", "applications") @@ -31,6 +34,7 @@ async def enabled_dinovoice_func(_, __, msg: Message): admin = filters.create(admin_func) allowed = filters.create(allowed_func) +enabled_general = filters.create(enabled_general_func) enabled_applications = filters.create(enabled_applications_func) enabled_sponsorships = filters.create(enabled_sponsorships_func) enabled_warnings = filters.create(enabled_warnings_func)