| | from .. import user_data |
| | from ..helper.ext_utils.bot_utils import update_user_ldata, new_task |
| | from ..helper.ext_utils.db_handler import database |
| | from ..helper.telegram_helper.message_utils import send_message |
| |
|
| |
|
| | @new_task |
| | async def authorize(_, message): |
| | msg = message.text.split() |
| | thread_id = None |
| | if len(msg) > 1: |
| | if "|" in msg: |
| | chat_id, thread_id = list(map(int, msg[1].split("|"))) |
| | else: |
| | chat_id = int(msg[1].strip()) |
| | elif reply_to := message.reply_to_message: |
| | chat_id = (reply_to.from_user or reply_to.sender_chat).id |
| | else: |
| | if message.is_topic_message: |
| | thread_id = message.message_thread_id |
| | chat_id = message.chat.id |
| | if chat_id in user_data and user_data[chat_id].get("AUTH"): |
| | if ( |
| | thread_id is not None |
| | and thread_id in user_data[chat_id].get("thread_ids", []) |
| | or thread_id is None |
| | ): |
| | msg = "Already Authorized!" |
| | else: |
| | if "thread_ids" in user_data[chat_id]: |
| | user_data[chat_id]["thread_ids"].append(thread_id) |
| | else: |
| | user_data[chat_id]["thread_ids"] = [thread_id] |
| | msg = "Authorized" |
| | else: |
| | update_user_ldata(chat_id, "AUTH", True) |
| | if thread_id is not None: |
| | update_user_ldata(chat_id, "thread_ids", [thread_id]) |
| | await database.update_user_data(chat_id) |
| | msg = "Authorized" |
| | await send_message(message, msg) |
| |
|
| |
|
| | @new_task |
| | async def unauthorize(_, message): |
| | msg = message.text.split() |
| | thread_id = None |
| | if len(msg) > 1: |
| | if "|" in msg: |
| | chat_id, thread_id = list(map(int, msg[1].split("|"))) |
| | else: |
| | chat_id = int(msg[1].strip()) |
| | elif reply_to := message.reply_to_message: |
| | chat_id = (reply_to.from_user or reply_to.sender_chat).id |
| | else: |
| | if message.is_topic_message: |
| | thread_id = message.message_thread_id |
| | chat_id = message.chat.id |
| | if chat_id in user_data and user_data[chat_id].get("AUTH"): |
| | if thread_id is not None and thread_id in user_data[chat_id].get( |
| | "thread_ids", [] |
| | ): |
| | user_data[chat_id]["thread_ids"].remove(thread_id) |
| | else: |
| | update_user_ldata(chat_id, "AUTH", False) |
| | await database.update_user_data(chat_id) |
| | msg = "Unauthorized" |
| | else: |
| | msg = "Already Unauthorized!" |
| | await send_message(message, msg) |
| |
|
| |
|
| | @new_task |
| | async def add_sudo(_, message): |
| | id_ = "" |
| | msg = message.text.split() |
| | if len(msg) > 1: |
| | id_ = int(msg[1].strip()) |
| | elif reply_to := message.reply_to_message: |
| | id_ = (reply_to.from_user or reply_to.sender_chat).id |
| | if id_: |
| | if id_ in user_data and user_data[id_].get("SUDO"): |
| | msg = "Already Sudo!" |
| | else: |
| | update_user_ldata(id_, "SUDO", True) |
| | await database.update_user_data(id_) |
| | msg = "Promoted as Sudo" |
| | else: |
| | msg = "Give ID or Reply To message of whom you want to Promote." |
| | await send_message(message, msg) |
| |
|
| |
|
| | @new_task |
| | async def remove_sudo(_, message): |
| | id_ = "" |
| | msg = message.text.split() |
| | if len(msg) > 1: |
| | id_ = int(msg[1].strip()) |
| | elif reply_to := message.reply_to_message: |
| | id_ = (reply_to.from_user or reply_to.sender_chat).id |
| | if id_: |
| | if id_ in user_data and user_data[id_].get("SUDO"): |
| | update_user_ldata(id_, "SUDO", False) |
| | await database.update_user_data(id_) |
| | msg = "Demoted" |
| | else: |
| | msg = "Already Not Sudo! Sudo users added from config must be removed from config." |
| | else: |
| | msg = "Give ID or Reply To message of whom you want to remove from Sudo" |
| | await send_message(message, msg) |
| |
|