From 9e6e158ac89a24cb2b706aa95a7c3a58dd2dd1a3 Mon Sep 17 00:00:00 2001 From: nocturn9x Date: Sun, 7 Jun 2020 07:38:11 +0000 Subject: [PATCH] Added the /busy command --- BotBase/modules/admin.py | 18 +++++++++++++++++- README.md | 5 ++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/BotBase/modules/admin.py b/BotBase/modules/admin.py index 09665e2..ca396bb 100644 --- a/BotBase/modules/admin.py +++ b/BotBase/modules/admin.py @@ -1,6 +1,7 @@ from ..config import ADMINS, USER_INFO, INVALID_SYNTAX, ERROR, NONNUMERIC_ID, USERS_COUNT, \ NO_PARAMETERS, ID_MISSING, GLOBAL_MESSAGE_STATS, NAME, WHISPER_FROM, USER_INFO_UPDATED, USER_INFO_UNCHANGED, \ - USER_BANNED, USER_UNBANNED, CANNOT_BAN_ADMIN, USER_ALREADY_BANNED, USER_NOT_BANNED, YOU_ARE_BANNED, YOU_ARE_UNBANNED + USER_BANNED, USER_UNBANNED, CANNOT_BAN_ADMIN, USER_ALREADY_BANNED, USER_NOT_BANNED, YOU_ARE_BANNED, YOU_ARE_UNBANNED, \ + MARKED_BUSY, UNMARKED_BUSY, CACHE from pyrogram import Client, Filters from ..database.query import get_user, get_users, update_name, ban_user, unban_user from .antiflood import BANNED_USERS @@ -194,3 +195,18 @@ def unban(client, message): send_message(client, True, message.chat.id, f"{ERROR}: {NONNUMERIC_ID}") else: send_message(client, True, message.chat.id, f"{INVALID_SYNTAX}: Use /unban user_id") + + +@Client.on_message(Filters.command("/busy") & ADMINS_FILTER & Filters.private & ~BANNED_USERS & ~Filters.edited) +def get_random_user(client, message): + logging.warning(f"{ADMINS[message.from_user.id]} [{message.from_user.id}] sent /busy") + if len(message.command) > 1: + send_message(client, True, message.chat.id, f"{INVALID_SYNTAX}: {NO_PARAMETERS.format(command='/busy')}") + else: + if CACHE[message.from_user.id][0] == "none": + send_message(client, True, message.chat.id, MARKED_BUSY) + CACHE[message.from_user.id] = ["IN_CHAT", 1234567] + else: + if message.from_user.id in CACHE: + del CACHE[message.from_user.id] + send_message(client, True, message.chat.id, UNMARKED_BUSY) diff --git a/README.md b/README.md index 41a1720..9c69aaa 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ BotBase is a collection of plugins that use [Pyrogram's](https://github.com/pyro BotBase requires a solid knowledge of pyrogram and of the Telegram MTProto API itself, you can check pyrogram's docs [here](https://docs.pyrogram.org) +The author of this project assumes that the reader is not a completely computer illiterate, this project is thought for smart people that want to develop better bots faster, it is **not** a beginner's friendly thing. + Also, you need to know how to host a bot yourself. I mean, I coded all of this for you already, make some effort! ## BotBase - Setup @@ -17,7 +19,7 @@ To setup a project using BotBase, follow this step-by-step guide (assuming `pip` - Once that is done, open the `BotBase/config.py` module with a text editor and start changing the default settings - The first thing you might want to do is change the `API_ID`, `API_HASH` and `BOT_TOKEN` global variables. Check [this page](https://my.telegram.org/apps) and login with your telegram account to create an API_ID/API_HASH pair. For the bot token, just create one with [BotFather](https://telegram.me/BotFather) -**Note**: The configuration file is still a python file, so when it will be imported any python code that you typed inside it will be executed, so be careful! If you need to perform pre-startup operations it is advised to do them in the `if __name__ == "main":` block inside `bot.py`, before `bot.start()` +**Note**: The configuration file is still a python file and when it will be imported any python code that you typed inside it will be executed, so be careful! If you need to perform pre-startup operations it is advised to do them in the `if __name__ == "main":` block inside `bot.py`, before `bot.start()` ## BotBase - Plugins @@ -70,6 +72,7 @@ The available commands are: - `/global msg`: Broadcast `msg` to all users, supports HTML and markdown formatting - `/whisper ID msg`: Send `msg` to a specific user given its ID. HTML and markdown formatting supported - `/update ID`: Updates the user's info in the database, if they've changed +- `/busy`: Sets your admin status as busy/not busy to silence/unsilence support requests to you ### Plugins - Antiflood