ayaka.ayaka_master
ayaka综合管理模块
1'''ayaka综合管理模块''' 2from .ayaka import app_list, AyakaApp 3from .constant import get_app 4from .config import ayaka_root_config 5 6app = AyakaApp("ayaka_master") 7app.help = '''ayaka综合管理模块''' 8 9 10@app.on.idle(super=True) 11@app.on.command("启用", "permit") 12async def permit(): 13 ''' ''' 14 if not app.args: 15 await app.send("参数缺失") 16 return 17 18 name = str(app.args[0]) 19 f = app.group.permit_app(name) 20 if f: 21 await app.send(f"已启用应用 [{name}]") 22 else: 23 await app.send(f"应用不存在 [{name}]") 24 25 26@app.on.idle(super=True) 27@app.on.command("禁用", "forbid") 28async def forbid(): 29 ''' ''' 30 if not app.args: 31 await app.send("参数缺失") 32 return 33 34 name = str(app.args[0]) 35 f = app.group.forbid_app(name) 36 if f: 37 await app.send(f"已禁用应用 [{name}]") 38 else: 39 await app.send(f"应用不存在 [{name}]") 40 41 42@app.on.idle(super=True) 43@app.on.command("插件", "plugin", "plugins") 44async def show_plugins(): 45 ''' ''' 46 # 展示所有应用 47 items = [] 48 for _app in app_list: 49 s = "[已禁用] " if not _app.valid else "" 50 info = f"[{_app.name}] {s}" 51 items.append(info) 52 await app.send("\n".join(items)) 53 54 55@app.on.idle(super=True) 56@app.on.command("状态", "state") 57async def show_state(): 58 ''' ''' 59 name = app.group.running_app_name 60 if not name: 61 await app.send("当前设备处于闲置状态") 62 return 63 info = f"正在运行应用 [{name}|{app.group.running_app.state}]" 64 await app.send(info) 65 66 67@app.on.idle(super=True) 68@app.on.command("帮助", "help") 69async def show_help(): 70 ''' ''' 71 _app = app.group.running_app 72 73 # 展示当前应用当前状态的帮助 74 if _app: 75 await app.send(_app.help) 76 return 77 78 # 没有应用正在运行 79 80 # 查询指定应用的详细帮助 81 if app.args: 82 name = str(app.args[0]) 83 _app = get_app(name) 84 if not _app: 85 await app.send(f"应用不存在 [{name}]") 86 return 87 88 # 详细帮助 89 s = "[已禁用] " if not _app.valid else "" 90 info = f"[{_app.name}] {s}\n{_app.all_help}" 91 await app.send(info) 92 return 93 94 # 展示所有应用介绍 95 items = ["所有应用介绍一览"] 96 for _app in app_list: 97 s = "[已禁用] " if not _app.valid else "" 98 info = f"[{_app.name}] {s}\n{_app.intro}" 99 items.append(info) 100 101 await app.send_many(items) 102 await app.send("使用 帮助 <插件名> 可以进一步展示指定插件的详细帮助信息") 103 104 105@app.on.idle(super=True) 106@app.on.command("强制退出", "force_exit") 107async def force_exit(): 108 ''' ''' 109 _app = app.group.running_app 110 if _app: 111 await _app.close() 112 113 114@app.on.idle(super=True) 115@app.on.command("增加ayaka管理者") 116async def add_admin(): 117 '''<uid>''' 118 if app.user_id not in ayaka_root_config.owners: 119 await app.send("仅有ayaka所有者有权执行此命令") 120 return 121 122 try: 123 uid = int(str(app.args[0])) 124 except: 125 await app.send("设置失败") 126 return 127 128 if uid not in ayaka_root_config.admins: 129 ayaka_root_config.admins.append(uid) 130 ayaka_root_config.force_update() 131 132 await app.send("设置成功") 133 134 135@app.on.idle(super=True) 136@app.on.command("移除ayaka管理者") 137async def remove_admin(): 138 '''<uid>''' 139 if app.user_id not in ayaka_root_config.owners: 140 await app.send("仅有ayaka所有者有权执行此命令") 141 return 142 143 try: 144 uid = int(str(app.args[0])) 145 except: 146 await app.send("设置失败") 147 return 148 149 if uid in ayaka_root_config.admins: 150 ayaka_root_config.admins.remove(uid) 151 ayaka_root_config.force_update() 152 153 await app.send("设置成功")
@app.on.idle(super=True)
@app.on.command('启用', 'permit')
async def
permit():
11@app.on.idle(super=True) 12@app.on.command("启用", "permit") 13async def permit(): 14 ''' ''' 15 if not app.args: 16 await app.send("参数缺失") 17 return 18 19 name = str(app.args[0]) 20 f = app.group.permit_app(name) 21 if f: 22 await app.send(f"已启用应用 [{name}]") 23 else: 24 await app.send(f"应用不存在 [{name}]")
@app.on.idle(super=True)
@app.on.command('禁用', 'forbid')
async def
forbid():
27@app.on.idle(super=True) 28@app.on.command("禁用", "forbid") 29async def forbid(): 30 ''' ''' 31 if not app.args: 32 await app.send("参数缺失") 33 return 34 35 name = str(app.args[0]) 36 f = app.group.forbid_app(name) 37 if f: 38 await app.send(f"已禁用应用 [{name}]") 39 else: 40 await app.send(f"应用不存在 [{name}]")
@app.on.idle(super=True)
@app.on.command('插件', 'plugin', 'plugins')
async def
show_plugins():
@app.on.idle(super=True)
@app.on.command('状态', 'state')
async def
show_state():
@app.on.idle(super=True)
@app.on.command('帮助', 'help')
async def
show_help():
68@app.on.idle(super=True) 69@app.on.command("帮助", "help") 70async def show_help(): 71 ''' ''' 72 _app = app.group.running_app 73 74 # 展示当前应用当前状态的帮助 75 if _app: 76 await app.send(_app.help) 77 return 78 79 # 没有应用正在运行 80 81 # 查询指定应用的详细帮助 82 if app.args: 83 name = str(app.args[0]) 84 _app = get_app(name) 85 if not _app: 86 await app.send(f"应用不存在 [{name}]") 87 return 88 89 # 详细帮助 90 s = "[已禁用] " if not _app.valid else "" 91 info = f"[{_app.name}] {s}\n{_app.all_help}" 92 await app.send(info) 93 return 94 95 # 展示所有应用介绍 96 items = ["所有应用介绍一览"] 97 for _app in app_list: 98 s = "[已禁用] " if not _app.valid else "" 99 info = f"[{_app.name}] {s}\n{_app.intro}" 100 items.append(info) 101 102 await app.send_many(items) 103 await app.send("使用 帮助 <插件名> 可以进一步展示指定插件的详细帮助信息")
@app.on.idle(super=True)
@app.on.command('强制退出', 'force_exit')
async def
force_exit():
@app.on.idle(super=True)
@app.on.command('增加ayaka管理者')
async def
add_admin():
115@app.on.idle(super=True) 116@app.on.command("增加ayaka管理者") 117async def add_admin(): 118 '''<uid>''' 119 if app.user_id not in ayaka_root_config.owners: 120 await app.send("仅有ayaka所有者有权执行此命令") 121 return 122 123 try: 124 uid = int(str(app.args[0])) 125 except: 126 await app.send("设置失败") 127 return 128 129 if uid not in ayaka_root_config.admins: 130 ayaka_root_config.admins.append(uid) 131 ayaka_root_config.force_update() 132 133 await app.send("设置成功")
@app.on.idle(super=True)
@app.on.command('移除ayaka管理者')
async def
remove_admin():
136@app.on.idle(super=True) 137@app.on.command("移除ayaka管理者") 138async def remove_admin(): 139 '''<uid>''' 140 if app.user_id not in ayaka_root_config.owners: 141 await app.send("仅有ayaka所有者有权执行此命令") 142 return 143 144 try: 145 uid = int(str(app.args[0])) 146 except: 147 await app.send("设置失败") 148 return 149 150 if uid in ayaka_root_config.admins: 151 ayaka_root_config.admins.remove(uid) 152 ayaka_root_config.force_update() 153 154 await app.send("设置成功")