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():
43@app.on.idle(super=True)
44@app.on.command("插件", "plugin", "plugins")
45async def show_plugins():
46    ''' '''
47    # 展示所有应用
48    items = []
49    for _app in app_list:
50        s = "[已禁用] " if not _app.valid else ""
51        info = f"[{_app.name}] {s}"
52        items.append(info)
53    await app.send("\n".join(items))
@app.on.idle(super=True)
@app.on.command('状态', 'state')
async def show_state():
56@app.on.idle(super=True)
57@app.on.command("状态", "state")
58async def show_state():
59    ''' '''
60    name = app.group.running_app_name
61    if not name:
62        await app.send("当前设备处于闲置状态")
63        return
64    info = f"正在运行应用 [{name}|{app.group.running_app.state}]"
65    await app.send(info)
@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():
106@app.on.idle(super=True)
107@app.on.command("强制退出", "force_exit")
108async def force_exit():
109    ''' '''
110    _app = app.group.running_app
111    if _app:
112        await _app.close()
@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("设置成功")