from pyrogram import Client from pyrogram.types import Message from configparser import RawConfigParser from os import getcwd, sep from defs.mys import draw_pic from defs.redis_load import redis, redis_status async def mys_msg(client: Client, message: Message): # 权限检查 uid = str(message.from_user.id) config = RawConfigParser() config.read(f"{getcwd()}{sep}config.ini") admin_str: str = "777000" admin_str = config.get("basic", "admin", fallback=admin_str) admins = admin_str.split('|') if redis_status(): admin = redis.get('mys') if admin: admins.extend(admin.split('|')) if uid not in admins: return # 生成用户信息 uid = message.text.replace('账号信息', '').replace('用户信息', '').strip() try: path = await draw_pic(uid) except ConnectionRefusedError: await message.reply('派蒙与提瓦特大陆的连接遇到了一点问题:ConnectionRefusedError', quote=True) return except ConnectionError: await message.reply('派蒙与提瓦特大陆的连接遇到了一点问题:ConnectionError', quote=True) return if path: # 上传图片 await message.reply_photo(photo=path, quote=True) else: await message.reply('派蒙与提瓦特大陆的连接遇到了一点问题:ConnectionError', quote=True) async def promote_command(client: Client, message: Message): if not message.reply_to_message: await message.reply('你需要回复一个用户才能授权 Ta 管理员权限。', quote=True) return uid = str(message.reply_to_message.from_user.id) if redis_status(): # 读取数据 admin = redis.get('mys').decode() if admin: admins = admin.split('|') else: admins = [] if len(message.text.split(' ')) >= 2: # 列出所有管理员 if len(admins) > 0: await message.reply('管理员列表:\n{" ".join(admins)}', quote=True) return else: await message.reply('当前暂无管理员。', quote=True) return if uid in admins: admins.remove(uid) mode = False else: admins.append(uid) mode = True # 写入数据 admin = '|'.join(admins) redis.set('mys', admin) text = f'移除管理员 {uid} 成功。' if mode: text = f'添加管理员 {uid} 成功。' await message.reply(text, quote=True) return