OrangeRedSeaweed 的指令(集):instructs

最近写了个指令模块,在这:OrangeRedSeaweed/sdk/instructs

这个是用于规定API的格式和简化API请求,减少API数量用的

它可以使开发者通过一个请求就可以执行多条指令,并且进行指令合理性检查还有指令之间依赖关系的规定

从而可以减少请求API使用的SDK的数量,减少代码的臃肿程度,是OrangeRedSeaweedAPI的第二个标准

建立在第一个标准之上的更高效的方式,更有利于减少请求的数量,保证程序运行的效率

因为执行指令通常用来操作数据,所以执行指令大部分都需要登录,但是也不排除使用指令查看数据的情况

建立 instructs_API

可以参考mod:free_other main.py 里面的做法

import sdk.instructs.api_func as instructs_api_func
import mod.mods.free_other.instructs_func as instructs_func
def instruct(get_or_post, enable_session, rep, **para):
    instruction_name_list = ['Pulling','SubmitToDatabase','AdministratorVerification','get_data','change']
    instruction_func_list = instructs_func
    dependency_table = {
        'get_data':['Pulling'],
        'SubmitToDatabase':['change'],
        'AdministratorVerification':['Pulling']
    }
    return instructs_api_func.func(get_or_post, enable_session, rep,instruction_name_list,instruction_func_list,dependency_table

使用方法

    >>> return func(get_or_post, enable_session, rep,instruction_name_list,instruction_func_list,dependency_table)

    instruction_name_list: 指令名列表(支持的指令的列表)

    instruction_func_list: 指令函数列表,需要与指令名列表对应,如果传入的是类或者模块,将从里面挑选和指令名一致的函数来执行

    dependency_table: 指令的依赖关系表{'<指令名>':['依赖项指令1','依赖项指令2']}

logged :是否需要登录(bool)

指令集形式:

第一种,列表形式

["Pulling","change","change"] # ["指令名称"]

优点:节俭

确定:不能传递指令参数

第二种,列表+键值对

[{"instruction_name":"指令名","instruction_parameters":...}]

调用API

手动调用:

在已经构建了 instructs_API 的mod API上进行调用

例子:

url = ‘/api/mod?ModName=free_other&ApiName=instruct’

参数:

instruction_set = ‘[“Pulling”,”change”,”change”]’(json) # 这个是指令集

SessionID = ‘<你的会话 ID>’ # 如果没有则无法登录,就不能执行登录才能执行的指令

在这里我没有提供参数 free_other_s_id (这个是列表的指令集形式,无法提供参数),但是已经登录

返回结果:

["Error executing instruction: No parameters used, parameters not found:'free_other_s_id'", "Error executing instruction: No parameters used, parameters not found:'free_other_s_id'", "Error executing instruction: No parameters used, parameters not found:'free_other_s_id'"]

不登录的情况

["You are not logged in"]

使用SDK

可以利用这两个SDK进行调用:OrangeRedSeaweed/sdk/instructs/requests_instructs.js at main · hengshizhi/OrangeRedSeaweed · GitHub

OrangeRedSeaweed/sdk/instructs/requests_instructs.py at main · hengshizhi/OrangeRedSeaweed · GitHub

{
'title' :'OrangeRedSeaweed 的指令(集):instructs',
'Current page link''https://www.df100.ltd/555.asp',
'author''星姮十织',
'copyright': '维度前沿|Dimension Frontier © 2020-2023. 版权所有',
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇