feat: 支持网站目标分组轻量管理(新增、编辑、描述展示),不修改和不提交倍率
This commit is contained in:
@@ -113,7 +113,13 @@ def normalize_groups(value: Any) -> list[dict[str, Any]]:
|
||||
groups: list[dict[str, Any]] = []
|
||||
for item in raw:
|
||||
if isinstance(item, str):
|
||||
groups.append({"id": item, "name": item, "rate_multiplier": None, "raw": {"id": item, "name": item}})
|
||||
groups.append({
|
||||
"id": item,
|
||||
"name": item,
|
||||
"rate_multiplier": None,
|
||||
"description": None,
|
||||
"raw": {"id": item, "name": item}
|
||||
})
|
||||
continue
|
||||
if not isinstance(item, dict):
|
||||
continue
|
||||
@@ -122,10 +128,12 @@ def normalize_groups(value: Any) -> list[dict[str, Any]]:
|
||||
continue
|
||||
name = item.get("name") or item.get("group_name") or str(gid)
|
||||
rate = item.get("rate_multiplier") or item.get("rateMultiplier") or item.get("ratio")
|
||||
desc = item.get("description") or item.get("desc") or item.get("remark")
|
||||
groups.append({
|
||||
"id": str(gid),
|
||||
"name": str(name),
|
||||
"rate_multiplier": fixed_decimal_string(rate, 2) if rate is not None else None,
|
||||
"description": str(desc) if desc is not None else None,
|
||||
"raw": item,
|
||||
})
|
||||
return groups
|
||||
@@ -262,6 +270,12 @@ class Sub2ApiWebsiteClient:
|
||||
path = endpoint_template.replace("{id}", quote(group_id, safe=""))
|
||||
return self._request("PUT", path, {"rate_multiplier": fixed_decimal_number(rate, 2)})
|
||||
|
||||
def update_group(self, endpoint_template: str, group_id: str, body: dict[str, Any]) -> dict[str, Any]:
|
||||
path = endpoint_template.replace("{id}", quote(group_id, safe=""))
|
||||
resp = self._request("PUT", path, body)
|
||||
data = _unwrap_data(resp)
|
||||
return data if isinstance(data, dict) else {"value": data}
|
||||
|
||||
def create_group(self, body: dict[str, Any], endpoint: str = "/groups") -> dict[str, Any]:
|
||||
resp = self._request("POST", endpoint, body)
|
||||
data = _unwrap_data(resp)
|
||||
|
||||
Reference in New Issue
Block a user