外观
插件配置项(config.json)简单
字数统计:455 字
阅读时长:2 分钟
python
# 先导入基础配置模型
from gsuid_core.utils.plugins_config.models import (
GSC,
GsStrConfig,
GsBoolConfig,
GsListStrConfig,
)
# 建立自己插件的CONFIG_DEFAULT
# 名字无所谓, 类型一定是Dict[str, GSC],以下为示例,可以添加无数个配置
CONIFG_DEFAULT: Dict[str, GSC] = {
'SignTime': GsListStrConfig('每晚签到时间设置', '每晚米游社签到时间设置(时,分)', ['0', '38']),
'SignReportSimple': GsBoolConfig(
'简洁签到报告',
'开启后可以大大减少每日签到报告字数',
True,
)
}
# 设定一个配置文件(json)保存文件路径
from gsuid_core.data_store import get_res_path # get_res_path的用法可参考上一节
CONFIG_PATH = get_res_path() / 'StarRailUID' / 'config.json'
# 然后添加到GsCore网页控制台中
from gsuid_core.utils.plugins_config.gs_config import StringConfig
from .config_default import CONIFG_DEFAULT
# 分别传入 配置总名称(不要和其他插件重复),配置路径,以及配置模型
srconfig = StringConfig('StarRailUID', CONFIG_PATH, CONIFG_DEFAULT)全部的配置类型如下
| 类型 | 说明 | data 类型 |
|---|---|---|
GsStrConfig | 字符串配置 | str |
GsBoolConfig | 布尔配置 | bool |
GsIntConfig | 整数配置(可限制 max_value) | int |
GsListStrConfig | 字符串列表 | List[str] |
GsListConfig | 整数列表 | List[int] |
GsDictConfig | 字典配置 | Dict[str, List] |
GsImageConfig | 图片配置(上传相关) | str |
GsTimeRConfig | 时间范围配置(定时任务相关) | Tuple[int, int] |
所有配置类型继承自 GsConfig(msgspec.Struct),必须包含 title、desc、data 字段。
python
from typing import Dict, List, Tuple, Union, Optional
import msgspec
class GsConfig(msgspec.Struct, tag=True):
title: str
desc: str
class GsStrConfig(GsConfig, tag=True):
data: str
options: List[str] = []
class GsBoolConfig(GsConfig, tag=True):
data: bool
class GsDictConfig(GsConfig, tag=True):
data: Dict[str, List]
class GsListStrConfig(GsConfig, tag=True):
data: List[str]
options: List[str] = []
class GsListConfig(GsConfig, tag=True):
data: List[int]
class GsIntConfig(GsConfig, tag=True):
data: int
max_value: Optional[int] = None
options: List[int] = []
class GsImageConfig(GsConfig, tag=True):
data: str
upload_to: str
filename: str
suffix: str = 'jpg'
class GsTimeRConfig(GsConfig, tag=True):
data: Tuple[int, int]
GSC = Union[
GsDictConfig,
GsBoolConfig,
GsListConfig,
GsListStrConfig,
GsStrConfig,
GsIntConfig,
GsImageConfig,
GsTimeRConfig,
]