bizyengine 1.1.2__py3-none-any.whl → 1.2.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- bizyengine/bizy_server/api_client.py +349 -42
- bizyengine/bizy_server/errno.py +410 -88
- bizyengine/bizy_server/profile.py +90 -0
- bizyengine/bizy_server/resp.py +8 -4
- bizyengine/bizy_server/server.py +194 -1
- bizyengine/bizy_server/utils.py +11 -0
- bizyengine/bizyair_extras/nodes_comfyui_instantid.py +11 -0
- bizyengine/bizyair_extras/nodes_comfyui_pulid_flux.py +15 -0
- bizyengine/bizyair_extras/nodes_ipadapter_plus/nodes_ipadapter_plus.py +39 -0
- bizyengine/bizyair_extras/nodes_kolors_mz/__init__.py +41 -1
- bizyengine/bizyair_extras/nodes_upscale_model.py +11 -0
- bizyengine/core/commands/processors/prompt_processor.py +14 -7
- bizyengine/core/common/client.py +22 -8
- bizyengine/core/common/env_var.py +7 -4
- bizyengine/core/configs/models.yaml +11 -0
- bizyengine/core/nodes_base.py +20 -1
- bizyengine/core/path_utils/path_manager.py +62 -9
- bizyengine/misc/nodes.py +219 -3
- bizyengine/misc/supernode.py +0 -36
- bizyengine/version.txt +1 -1
- {bizyengine-1.1.2.dist-info → bizyengine-1.2.1.dist-info}/METADATA +2 -2
- {bizyengine-1.1.2.dist-info → bizyengine-1.2.1.dist-info}/RECORD +24 -23
- {bizyengine-1.1.2.dist-info → bizyengine-1.2.1.dist-info}/WHEEL +1 -1
- {bizyengine-1.1.2.dist-info → bizyengine-1.2.1.dist-info}/top_level.txt +0 -0
bizyengine/bizy_server/errno.py
CHANGED
|
@@ -1,122 +1,444 @@
|
|
|
1
1
|
class ErrorNo:
|
|
2
|
-
def __init__(self, http_status_code, code, payload,
|
|
2
|
+
def __init__(self, http_status_code, code, payload, messages):
|
|
3
3
|
self.http_status_code = http_status_code
|
|
4
4
|
self.code = code
|
|
5
|
-
self.
|
|
5
|
+
self.messages = messages # 现在是一个字典,key是语言代码
|
|
6
6
|
self.data = payload
|
|
7
7
|
|
|
8
8
|
def copy(self):
|
|
9
|
-
return ErrorNo(self.http_status_code, self.code, self.data, self.
|
|
9
|
+
return ErrorNo(self.http_status_code, self.code, self.data, self.messages)
|
|
10
|
+
|
|
11
|
+
def get_message(self, lang="en"):
|
|
12
|
+
return self.messages.get(lang, self.messages.get("en", "Unknown error"))
|
|
10
13
|
|
|
11
14
|
|
|
12
15
|
class errnos:
|
|
13
|
-
OK = ErrorNo(200, 20000, None, "Success")
|
|
14
|
-
NO_MODEL_FOUND = ErrorNo(
|
|
16
|
+
OK = ErrorNo(200, 20000, None, {"en": "Success", "zh": "成功"})
|
|
17
|
+
NO_MODEL_FOUND = ErrorNo(
|
|
18
|
+
404, 20226, None, {"en": "No model found", "zh": "未找到模型"}
|
|
19
|
+
)
|
|
20
|
+
INTERNAL_ERROR = ErrorNo(
|
|
21
|
+
500, 50000, None, {"en": "Internal Error", "zh": "内部错误"}
|
|
22
|
+
)
|
|
15
23
|
|
|
16
|
-
INVALID_TYPE = ErrorNo(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
INVALID_TYPE = ErrorNo(
|
|
25
|
+
400, 400100, None, {"en": "Invalid model type", "zh": "无效的模型类型"}
|
|
26
|
+
)
|
|
27
|
+
INVALID_NAME = ErrorNo(
|
|
28
|
+
400, 400101, None, {"en": "Invalid model name", "zh": "无效的模型名称"}
|
|
29
|
+
)
|
|
30
|
+
NO_FILE_UPLOAD = ErrorNo(
|
|
31
|
+
400, 400102, None, {"en": "No file to upload", "zh": "没有要上传的文件"}
|
|
32
|
+
)
|
|
33
|
+
EMPTY_UPLOAD_ID = ErrorNo(
|
|
34
|
+
400, 400103, None, {"en": "Upload id is empty", "zh": "上传ID为空"}
|
|
35
|
+
)
|
|
36
|
+
INVALID_SHARE_ID = ErrorNo(
|
|
37
|
+
400, 400104, None, {"en": "Invalid share id", "zh": "无效的分享ID"}
|
|
38
|
+
)
|
|
39
|
+
EMPTY_ABS_PATH = ErrorNo(
|
|
40
|
+
400,
|
|
41
|
+
400111,
|
|
42
|
+
None,
|
|
43
|
+
{"en": "The upload path cannot be empty", "zh": "上传路径不能为空"},
|
|
44
|
+
)
|
|
45
|
+
NO_ABS_PATH = ErrorNo(
|
|
46
|
+
400,
|
|
47
|
+
400112,
|
|
48
|
+
None,
|
|
49
|
+
{"en": "The upload path is not an absolute path", "zh": "上传路径不是绝对路径"},
|
|
50
|
+
)
|
|
51
|
+
PATH_NOT_EXISTS = ErrorNo(
|
|
52
|
+
400,
|
|
53
|
+
400113,
|
|
54
|
+
None,
|
|
55
|
+
{"en": "The upload path does not exist", "zh": "上传路径不存在"},
|
|
56
|
+
)
|
|
57
|
+
INVALID_CLIENT_ID = ErrorNo(
|
|
58
|
+
400, 400114, None, {"en": "Invalid client id", "zh": "无效的客户端ID"}
|
|
59
|
+
)
|
|
25
60
|
NO_PUBLIC_FLAG = ErrorNo(
|
|
26
|
-
400,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
61
|
+
400,
|
|
62
|
+
400115,
|
|
63
|
+
None,
|
|
64
|
+
{"en": 'The parameter "public" is not provided', "zh": "未提供public参数"},
|
|
65
|
+
)
|
|
66
|
+
FILE_NOT_EXISTS = ErrorNo(
|
|
67
|
+
400, 400116, None, {"en": "The file does not exist", "zh": "文件不存在"}
|
|
68
|
+
)
|
|
69
|
+
NO_SHARE_ID = ErrorNo(
|
|
70
|
+
400,
|
|
71
|
+
400117,
|
|
72
|
+
None,
|
|
73
|
+
{"en": 'The parameter "share_id" is not provided', "zh": "未提供share_id参数"},
|
|
74
|
+
)
|
|
75
|
+
INVALID_DESCRIPTION = ErrorNo(
|
|
76
|
+
400, 400118, None, {"en": "Invalid description", "zh": "无效的描述"}
|
|
77
|
+
)
|
|
78
|
+
NOT_A_FILE = ErrorNo(
|
|
79
|
+
400, 400119, None, {"en": "The path is not a file", "zh": "路径不是文件"}
|
|
80
|
+
)
|
|
81
|
+
NOT_ALLOWED_EXT_NAME = ErrorNo(
|
|
82
|
+
400,
|
|
83
|
+
400120,
|
|
84
|
+
None,
|
|
85
|
+
{"en": "Not allowed extension name", "zh": "不允许的文件扩展名"},
|
|
86
|
+
)
|
|
87
|
+
INVALID_UPLOAD_ID = ErrorNo(
|
|
88
|
+
400, 400121, None, {"en": "Invalid upload id", "zh": "无效的上传ID"}
|
|
89
|
+
)
|
|
90
|
+
INVALID_VERSIONS = ErrorNo(
|
|
91
|
+
400, 400122, None, {"en": "Invalid versions", "zh": "无效的版本信息"}
|
|
92
|
+
)
|
|
93
|
+
DUPLICATE_VERSION = ErrorNo(
|
|
94
|
+
400, 400123, None, {"en": "Duplicate version", "zh": "重复的版本"}
|
|
95
|
+
)
|
|
96
|
+
INVALID_VERSION_FIELD = ErrorNo(
|
|
97
|
+
400, 400124, None, {"en": "Invalid version field", "zh": "无效的版本字段"}
|
|
98
|
+
)
|
|
99
|
+
INVALID_QUERY_MODE = ErrorNo(
|
|
100
|
+
400, 400125, None, {"en": "Invalid query mode", "zh": "无效的查询模式"}
|
|
101
|
+
)
|
|
102
|
+
INVALID_VERSION_NAME = ErrorNo(
|
|
103
|
+
400,
|
|
104
|
+
400126,
|
|
105
|
+
None,
|
|
106
|
+
{"en": "Invalid model version name", "zh": "无效的模型版本名称"},
|
|
107
|
+
)
|
|
108
|
+
INVALID_MODEL_ID = ErrorNo(
|
|
109
|
+
400, 400127, None, {"en": "Invalid model id", "zh": "无效的模型ID"}
|
|
110
|
+
)
|
|
111
|
+
INVALID_MODEL_VERSION_ID = ErrorNo(
|
|
112
|
+
400, 400128, None, {"en": "Invalid model version id", "zh": "无效的模型版本ID"}
|
|
113
|
+
)
|
|
114
|
+
UNSUPPORT_LIKE_TYPE = ErrorNo(
|
|
115
|
+
400, 400130, None, {"en": "Unsupport like type", "zh": "不支持的点赞类型"}
|
|
116
|
+
)
|
|
117
|
+
INVALID_SIGN = ErrorNo(
|
|
118
|
+
400, 400131, None, {"en": "Invalid file sign", "zh": "无效的文件签名"}
|
|
119
|
+
)
|
|
120
|
+
EMPTY_SHA256SUM = ErrorNo(
|
|
121
|
+
400, 400132, None, {"en": "Empty sha256sum", "zh": "空的sha256sum"}
|
|
122
|
+
)
|
|
123
|
+
INVALID_OBJECT_KEY = ErrorNo(
|
|
124
|
+
400, 400133, None, {"en": "Invalid object key", "zh": "无效的对象键"}
|
|
125
|
+
)
|
|
45
126
|
FAILED_TO_FETCH_WORKFLOW_JSON = ErrorNo(
|
|
46
|
-
400,
|
|
127
|
+
400,
|
|
128
|
+
400134,
|
|
129
|
+
None,
|
|
130
|
+
{"en": "Failed to fetch workflow json", "zh": "获取工作流JSON失败"},
|
|
131
|
+
)
|
|
132
|
+
INVALID_DATASET_NAME = ErrorNo(
|
|
133
|
+
400, 400135, None, {"en": "Invalid dataset name", "zh": "无效的数据集名称"}
|
|
134
|
+
)
|
|
135
|
+
INVALID_DATASET_VERSION = ErrorNo(
|
|
136
|
+
400, 400136, None, {"en": "Invalid dataset version", "zh": "无效的数据集版本"}
|
|
137
|
+
)
|
|
138
|
+
INVALID_DATASET_ID = ErrorNo(
|
|
139
|
+
400, 400137, None, {"en": "Invalid dataset id", "zh": "无效的数据集ID"}
|
|
47
140
|
)
|
|
48
|
-
INVALID_DATASET_NAME = ErrorNo(400, 400135, None, "Invalid dataset name")
|
|
49
|
-
INVALID_DATASET_VERSION = ErrorNo(400, 400136, None, "Invalid dataset version")
|
|
50
|
-
INVALID_DATASET_ID = ErrorNo(400, 400137, None, "Invalid dataset id")
|
|
51
141
|
INVALID_DATASET_VERSION_ID = ErrorNo(
|
|
52
|
-
400,
|
|
142
|
+
400,
|
|
143
|
+
400138,
|
|
144
|
+
None,
|
|
145
|
+
{"en": "Invalid dataset version id", "zh": "无效的数据集版本ID"},
|
|
146
|
+
)
|
|
147
|
+
INVALID_SHARE_BIZ_ID = ErrorNo(
|
|
148
|
+
400, 400139, None, {"en": "Invalid share biz id", "zh": "无效的分享业务ID"}
|
|
149
|
+
)
|
|
150
|
+
INVALID_SHARE_TYPE = ErrorNo(
|
|
151
|
+
400, 400140, None, {"en": "Invalid share type", "zh": "无效的分享类型"}
|
|
152
|
+
)
|
|
153
|
+
INVALID_SHARE_CODE = ErrorNo(
|
|
154
|
+
400, 400141, None, {"en": "Invalid share code", "zh": "无效的分享代码"}
|
|
155
|
+
)
|
|
156
|
+
INVALID_NOTIF_ID = ErrorNo(
|
|
157
|
+
400, 400142, None, {"en": "Invalid notification id", "zh": "无效的通知ID"}
|
|
158
|
+
)
|
|
159
|
+
INVALID_PRODUCT_ID = ErrorNo(
|
|
160
|
+
400, 400143, None, {"en": "Invalid product id", "zh": "无效的产品ID"}
|
|
161
|
+
)
|
|
162
|
+
INVALID_ORDER_NO = ErrorNo(
|
|
163
|
+
400, 400144, None, {"en": "Invalid order number", "zh": "无效的订单号"}
|
|
53
164
|
)
|
|
54
|
-
INVALID_SHARE_BIZ_ID = ErrorNo(400, 400139, None, "Invalid share biz id")
|
|
55
|
-
INVALID_SHARE_TYPE = ErrorNo(400, 400140, None, "Invalid share type")
|
|
56
|
-
INVALID_SHARE_CODE = ErrorNo(400, 400141, None, "Invalid share code")
|
|
57
|
-
INVALID_NOTIF_ID = ErrorNo(400, 400142, None, "Invalid notification id")
|
|
58
165
|
|
|
59
|
-
|
|
60
|
-
|
|
166
|
+
INVALID_PAY_PLATFORM = ErrorNo(
|
|
167
|
+
400, 400145, None, {"en": "Invalid pay platform", "zh": "无效的支付平台"}
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
INVALID_YEAR_PARAM = ErrorNo(
|
|
171
|
+
400, 400146, None, {"en": "Year parameter is required", "zh": "缺少年份参数"}
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
INVALID_MONTH_PARAM = ErrorNo(
|
|
175
|
+
400, 400147, None, {"en": "Month parameter is required", "zh": "缺少月份参数"}
|
|
176
|
+
)
|
|
177
|
+
|
|
178
|
+
INVALID_DAY_PARAM = ErrorNo(
|
|
179
|
+
400, 400148, None, {"en": "Day parameter is required", "zh": "缺少日期参数"}
|
|
180
|
+
)
|
|
61
181
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
182
|
+
INVALID_API_KEY = ErrorNo(
|
|
183
|
+
401, 401000, None, {"en": "Invalid API key", "zh": "无效的API密钥"}
|
|
184
|
+
)
|
|
185
|
+
INVALID_USER = ErrorNo(
|
|
186
|
+
401, 401001, None, {"en": "Invalid user", "zh": "无效的用户"}
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
SIGN_FILE = ErrorNo(
|
|
190
|
+
500, 500101, None, {"en": "Failed to sign file", "zh": "文件签名失败"}
|
|
191
|
+
)
|
|
192
|
+
UPLOAD = ErrorNo(
|
|
193
|
+
500, 500102, None, {"en": "Failed to upload file", "zh": "文件上传失败"}
|
|
194
|
+
)
|
|
195
|
+
COMMIT_FILE = ErrorNo(
|
|
196
|
+
500, 500103, None, {"en": "Failed to commit file", "zh": "文件提交失败"}
|
|
197
|
+
)
|
|
198
|
+
COMMIT_BIZY_MODEL = ErrorNo(
|
|
199
|
+
500, 500105, None, {"en": "Failed to commit model", "zh": "模型提交失败"}
|
|
200
|
+
)
|
|
201
|
+
EMPTY_FILES = ErrorNo(
|
|
202
|
+
500,
|
|
203
|
+
500107,
|
|
204
|
+
None,
|
|
205
|
+
{"en": "Empty files to make a model", "zh": "创建模型的文件为空"},
|
|
206
|
+
)
|
|
207
|
+
LIST_MODEL_FILE = ErrorNo(
|
|
208
|
+
500, 500108, None, {"en": "Failed to list model file", "zh": "列出模型文件失败"}
|
|
209
|
+
)
|
|
68
210
|
LIST_SHARE_MODEL_FILE = ErrorNo(
|
|
69
|
-
500,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
211
|
+
500,
|
|
212
|
+
500108,
|
|
213
|
+
None,
|
|
214
|
+
{"en": "Failed to list share model file", "zh": "列出分享模型文件失败"},
|
|
215
|
+
)
|
|
216
|
+
INVALID_FILENAME = ErrorNo(
|
|
217
|
+
500, 500109, None, {"en": "Invalid filename", "zh": "无效的文件名"}
|
|
218
|
+
)
|
|
219
|
+
DELETE_MODEL = ErrorNo(
|
|
220
|
+
500, 500110, None, {"en": "Failed to delete model", "zh": "删除模型失败"}
|
|
221
|
+
)
|
|
222
|
+
GET_USER_INFO = ErrorNo(
|
|
223
|
+
500, 500111, None, {"en": "Failed to get user info", "zh": "获取用户信息失败"}
|
|
224
|
+
)
|
|
225
|
+
LIST_MODEL = ErrorNo(
|
|
226
|
+
500, 500112, None, {"en": "Failed to list model", "zh": "列出模型失败"}
|
|
227
|
+
)
|
|
228
|
+
CHANGE_PUBLIC = ErrorNo(
|
|
229
|
+
500, 500113, None, {"en": "Failed to change public", "zh": "更改公开状态失败"}
|
|
230
|
+
)
|
|
231
|
+
UPDATE_SHARE_ID = ErrorNo(
|
|
232
|
+
500, 500114, None, {"en": "Failed to update share id", "zh": "更新分享ID失败"}
|
|
233
|
+
)
|
|
234
|
+
GET_DESCRIPTION = ErrorNo(
|
|
235
|
+
500, 500115, None, {"en": "Failed to get description", "zh": "获取描述失败"}
|
|
236
|
+
)
|
|
237
|
+
UPDATE_DESCRIPTION = ErrorNo(
|
|
238
|
+
500, 500116, None, {"en": "Failed to update description", "zh": "更新描述失败"}
|
|
239
|
+
)
|
|
240
|
+
DELETE_BIZY_MODEL = ErrorNo(
|
|
241
|
+
500, 500117, None, {"en": "Failed to delete model", "zh": "删除模型失败"}
|
|
242
|
+
)
|
|
80
243
|
QUERY_COMMUNITY_MODELS = ErrorNo(
|
|
81
|
-
500,
|
|
244
|
+
500,
|
|
245
|
+
500118,
|
|
246
|
+
None,
|
|
247
|
+
{"en": "Failed to query community models", "zh": "查询社区模型失败"},
|
|
248
|
+
)
|
|
249
|
+
QUERY_MODELS = ErrorNo(
|
|
250
|
+
500, 500119, None, {"en": "Failed to query models", "zh": "查询模型失败"}
|
|
251
|
+
)
|
|
252
|
+
GET_MODEL_DETAIL = ErrorNo(
|
|
253
|
+
500,
|
|
254
|
+
500120,
|
|
255
|
+
None,
|
|
256
|
+
{"en": "Failed to get model detail", "zh": "获取模型详情失败"},
|
|
82
257
|
)
|
|
83
|
-
QUERY_MODELS = ErrorNo(500, 500119, None, "Failed to query models")
|
|
84
|
-
GET_MODEL_DETAIL = ErrorNo(500, 500120, None, "Failed to get model detail")
|
|
85
258
|
GET_MODEL_VERSION_DETAIL = ErrorNo(
|
|
86
|
-
500,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
259
|
+
500,
|
|
260
|
+
500121,
|
|
261
|
+
None,
|
|
262
|
+
{"en": "Failed to get model version detail", "zh": "获取模型版本详情失败"},
|
|
263
|
+
)
|
|
264
|
+
FORK_MODEL_VERSION = ErrorNo(
|
|
265
|
+
500,
|
|
266
|
+
500122,
|
|
267
|
+
None,
|
|
268
|
+
{"en": "Failed to fork model version", "zh": "分支模型版本失败"},
|
|
269
|
+
)
|
|
270
|
+
UPDATE_MODEL = ErrorNo(
|
|
271
|
+
500, 500123, None, {"en": "Failed to update model", "zh": "更新模型失败"}
|
|
272
|
+
)
|
|
273
|
+
GET_UPLOAD_TOKEN = ErrorNo(
|
|
274
|
+
500,
|
|
275
|
+
500124,
|
|
276
|
+
None,
|
|
277
|
+
{"en": "Failed to get upload token", "zh": "获取上传令牌失败"},
|
|
278
|
+
)
|
|
279
|
+
TOGGLE_USER_LIKE = ErrorNo(
|
|
280
|
+
500,
|
|
281
|
+
500125,
|
|
282
|
+
None,
|
|
283
|
+
{"en": "Failed to toggle user like", "zh": "切换用户点赞状态失败"},
|
|
284
|
+
)
|
|
285
|
+
GET_DOWNLOAD_URL = ErrorNo(
|
|
286
|
+
500, 500126, None, {"en": "Failed to get download url", "zh": "获取下载URL失败"}
|
|
287
|
+
)
|
|
288
|
+
DOWNLOAD_JSON = ErrorNo(
|
|
289
|
+
500, 500127, None, {"en": "Failed to download json", "zh": "下载JSON失败"}
|
|
290
|
+
)
|
|
94
291
|
LIST_SHARE_MODEL_FILE_ERR = ErrorNo(
|
|
95
|
-
500,
|
|
292
|
+
500,
|
|
293
|
+
500128,
|
|
294
|
+
None,
|
|
295
|
+
{"en": "Failed to list share model file", "zh": "列出分享模型文件失败"},
|
|
96
296
|
)
|
|
97
297
|
QUERY_OFFICIAL_MODELS = ErrorNo(
|
|
98
|
-
500,
|
|
298
|
+
500,
|
|
299
|
+
500129,
|
|
300
|
+
None,
|
|
301
|
+
{"en": "Failed to query official models", "zh": "查询官方模型失败"},
|
|
302
|
+
)
|
|
303
|
+
UNFORK_MODEL_VERSION = ErrorNo(
|
|
304
|
+
500,
|
|
305
|
+
500130,
|
|
306
|
+
None,
|
|
307
|
+
{"en": "Failed to unfork model version", "zh": "取消分支模型版本失败"},
|
|
99
308
|
)
|
|
100
|
-
UNFORK_MODEL_VERSION = ErrorNo(500, 500130, None, "Failed to unfork model version")
|
|
101
309
|
|
|
102
|
-
COMMIT_DATASET = ErrorNo(
|
|
103
|
-
|
|
310
|
+
COMMIT_DATASET = ErrorNo(
|
|
311
|
+
500, 500130, None, {"en": "Failed to commit dataset", "zh": "提交数据集失败"}
|
|
312
|
+
)
|
|
313
|
+
UPDATE_DATASET = ErrorNo(
|
|
314
|
+
500, 500131, None, {"en": "Failed to update dataset", "zh": "更新数据集失败"}
|
|
315
|
+
)
|
|
104
316
|
GET_DATASET_VERSION_DETAIL = ErrorNo(
|
|
105
|
-
500,
|
|
317
|
+
500,
|
|
318
|
+
500132,
|
|
319
|
+
None,
|
|
320
|
+
{"en": "Failed to get dataset version detail", "zh": "获取数据集版本详情失败"},
|
|
321
|
+
)
|
|
322
|
+
DELETE_DATASET = ErrorNo(
|
|
323
|
+
500, 500133, None, {"en": "Failed to delete dataset", "zh": "删除数据集失败"}
|
|
324
|
+
)
|
|
325
|
+
QUERY_DATASETS = ErrorNo(
|
|
326
|
+
500, 500134, None, {"en": "Failed to query datasets", "zh": "查询数据集失败"}
|
|
327
|
+
)
|
|
328
|
+
GET_DATASET_DETAIL = ErrorNo(
|
|
329
|
+
500,
|
|
330
|
+
500135,
|
|
331
|
+
None,
|
|
332
|
+
{"en": "Failed to get dataset detail", "zh": "获取数据集详情失败"},
|
|
333
|
+
)
|
|
334
|
+
CREATE_SHARE = ErrorNo(
|
|
335
|
+
500, 500136, None, {"en": "Failed to create share", "zh": "创建分享失败"}
|
|
336
|
+
)
|
|
337
|
+
GET_SHARE_DETAIL = ErrorNo(
|
|
338
|
+
500,
|
|
339
|
+
500137,
|
|
340
|
+
None,
|
|
341
|
+
{"en": "Failed to get share detail", "zh": "获取分享详情失败"},
|
|
106
342
|
)
|
|
107
|
-
DELETE_DATASET = ErrorNo(500, 500133, None, "Failed to delete dataset")
|
|
108
|
-
QUERY_DATASETS = ErrorNo(500, 500134, None, "Failed to query datasets")
|
|
109
|
-
GET_DATASET_DETAIL = ErrorNo(500, 500135, None, "Failed to get dataset detail")
|
|
110
|
-
CREATE_SHARE = ErrorNo(500, 500136, None, "Failed to create share")
|
|
111
|
-
GET_SHARE_DETAIL = ErrorNo(500, 500137, None, "Failed to get share detail")
|
|
112
343
|
|
|
113
|
-
GET_DATA_DICT = ErrorNo(
|
|
344
|
+
GET_DATA_DICT = ErrorNo(
|
|
345
|
+
500, 500138, None, {"en": "Failed to get data dict", "zh": "获取数据字典失败"}
|
|
346
|
+
)
|
|
114
347
|
|
|
115
348
|
GET_NOTIF_UNREAD_COUNT = ErrorNo(
|
|
116
|
-
500,
|
|
349
|
+
500,
|
|
350
|
+
500139,
|
|
351
|
+
None,
|
|
352
|
+
{
|
|
353
|
+
"en": "Failed to get notification unread counts",
|
|
354
|
+
"zh": "获取未读通知数量失败",
|
|
355
|
+
},
|
|
356
|
+
)
|
|
357
|
+
QUERY_NOTIF = ErrorNo(
|
|
358
|
+
500, 500140, None, {"en": "Failed to query notifications", "zh": "查询通知失败"}
|
|
359
|
+
)
|
|
360
|
+
READ_NOTIF = ErrorNo(
|
|
361
|
+
500,
|
|
362
|
+
500141,
|
|
363
|
+
None,
|
|
364
|
+
{"en": "Failed to mark notifications as read", "zh": "标记通知为已读失败"},
|
|
117
365
|
)
|
|
118
|
-
QUERY_NOTIF = ErrorNo(500, 500140, None, "Failed to query notifications")
|
|
119
|
-
READ_NOTIF = ErrorNo(500, 500141, None, "Failed to mark notifications as read")
|
|
120
366
|
READ_ALL_NOTIF = ErrorNo(
|
|
121
|
-
500,
|
|
367
|
+
500,
|
|
368
|
+
500142,
|
|
369
|
+
None,
|
|
370
|
+
{
|
|
371
|
+
"en": "Failed to mark all notifications as read",
|
|
372
|
+
"zh": "标记所有通知为已读失败",
|
|
373
|
+
},
|
|
374
|
+
)
|
|
375
|
+
GET_WALLET_INFO = ErrorNo(
|
|
376
|
+
500,
|
|
377
|
+
500143,
|
|
378
|
+
None,
|
|
379
|
+
{"en": "Failed to get user wallet info", "zh": "获取用户钱包信息失败"},
|
|
380
|
+
)
|
|
381
|
+
QUERY_COINS = ErrorNo(
|
|
382
|
+
500,
|
|
383
|
+
500144,
|
|
384
|
+
None,
|
|
385
|
+
{"en": "Failed to query user coin records", "zh": "查询用户金币记录失败"},
|
|
386
|
+
)
|
|
387
|
+
GET_USER_METADATA = ErrorNo(
|
|
388
|
+
500,
|
|
389
|
+
500145,
|
|
390
|
+
None,
|
|
391
|
+
{"en": "Failed to get user metadata", "zh": "获取用户元数据失败"},
|
|
392
|
+
)
|
|
393
|
+
UPDATE_USER_INFO = ErrorNo(
|
|
394
|
+
500,
|
|
395
|
+
500146,
|
|
396
|
+
None,
|
|
397
|
+
{"en": "Failed to update user info", "zh": "更新用户信息失败"},
|
|
398
|
+
)
|
|
399
|
+
USER_REAL_NAME = ErrorNo(
|
|
400
|
+
500, 500147, None, {"en": "Failed to verify real name", "zh": "实名认证失败"}
|
|
401
|
+
)
|
|
402
|
+
COPY_PROFILE_FAILED = ErrorNo(
|
|
403
|
+
500, 500148, None, {"en": "Failed to copy profile", "zh": "复制配置文件失败"}
|
|
404
|
+
)
|
|
405
|
+
CREATE_PROFILE_FAILED = ErrorNo(
|
|
406
|
+
500, 500149, None, {"en": "Failed to create profile", "zh": "创建配置文件失败"}
|
|
407
|
+
)
|
|
408
|
+
WRITE_PROFILE_FAILED = ErrorNo(
|
|
409
|
+
500, 500150, None, {"en": "Failed to write profile", "zh": "写入配置文件失败"}
|
|
410
|
+
)
|
|
411
|
+
READ_PROFILE_FAILED = ErrorNo(
|
|
412
|
+
500, 500151, None, {"en": "Failed to read profile", "zh": "读取配置文件失败"}
|
|
413
|
+
)
|
|
414
|
+
BUY_PRODUCT = ErrorNo(
|
|
415
|
+
500, 500148, None, {"en": "Failed to buy product", "zh": "购买商品失败"}
|
|
416
|
+
)
|
|
417
|
+
PAY_STATUS = ErrorNo(
|
|
418
|
+
500,
|
|
419
|
+
500149,
|
|
420
|
+
None,
|
|
421
|
+
{"en": "Failed to check payment status", "zh": "检查支付状态失败"},
|
|
422
|
+
)
|
|
423
|
+
PAY_CANCEL = ErrorNo(
|
|
424
|
+
500, 500150, None, {"en": "Failed to cancel payment", "zh": "取消支付失败"}
|
|
425
|
+
)
|
|
426
|
+
LIST_PRODUCTS = ErrorNo(
|
|
427
|
+
500, 500151, None, {"en": "Failed to list products", "zh": "列出商品失败"}
|
|
428
|
+
)
|
|
429
|
+
LIST_PAY_ORDER = ErrorNo(
|
|
430
|
+
500, 500152, None, {"en": "Failed to list pay orders", "zh": "列出支付订单失败"}
|
|
431
|
+
)
|
|
432
|
+
GET_YEAR_COST = ErrorNo(
|
|
433
|
+
500, 500153, None, {"en": "Failed to get year cost", "zh": "获取年度费用失败"}
|
|
434
|
+
)
|
|
435
|
+
GET_MONTH_COST = ErrorNo(
|
|
436
|
+
500, 500154, None, {"en": "Failed to get month cost", "zh": "获取月度费用失败"}
|
|
437
|
+
)
|
|
438
|
+
GET_DAY_COST = ErrorNo(
|
|
439
|
+
500, 500155, None, {"en": "Failed to get day cost", "zh": "获取日费用失败"}
|
|
440
|
+
)
|
|
441
|
+
|
|
442
|
+
GET_RECENT_COST = ErrorNo(
|
|
443
|
+
500, 500157, None, {"en": "Failed to get recent cost", "zh": "获取最近消费失败"}
|
|
122
444
|
)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import configparser
|
|
2
|
+
import os
|
|
3
|
+
import shutil
|
|
4
|
+
|
|
5
|
+
from .errno import errnos
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class UserProfile:
|
|
9
|
+
def __init__(self):
|
|
10
|
+
UserProfile.instance = self
|
|
11
|
+
|
|
12
|
+
self.profile_cache = {}
|
|
13
|
+
self.load_profile()
|
|
14
|
+
self.lang = "zh"
|
|
15
|
+
|
|
16
|
+
def getLang(self):
|
|
17
|
+
return self.lang
|
|
18
|
+
|
|
19
|
+
def getAll(self):
|
|
20
|
+
return self.profile_cache
|
|
21
|
+
|
|
22
|
+
def load_profile(self):
|
|
23
|
+
"""加载用户配置文件到缓存"""
|
|
24
|
+
profile_path = os.path.join(os.getenv("BIZYAIR_COMFYUI_PATH"), "profile.ini")
|
|
25
|
+
example_path = os.path.join(
|
|
26
|
+
os.path.dirname(profile_path), "profile.ini.example"
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
# 如果配置文件不存在且示例文件存在,则复制示例文件
|
|
30
|
+
if not os.path.exists(profile_path) and os.path.exists(example_path):
|
|
31
|
+
try:
|
|
32
|
+
shutil.copy2(example_path, profile_path)
|
|
33
|
+
except Exception as e:
|
|
34
|
+
print(
|
|
35
|
+
f"\033[31m[BizyAir]\033[0m Fail to copy example profile: {str(e)}"
|
|
36
|
+
)
|
|
37
|
+
return
|
|
38
|
+
|
|
39
|
+
# 如果配置文件仍不存在,则创建默认配置
|
|
40
|
+
if not os.path.exists(profile_path):
|
|
41
|
+
try:
|
|
42
|
+
config = configparser.ConfigParser()
|
|
43
|
+
config.add_section("global")
|
|
44
|
+
config.set("global", "lang", "zh")
|
|
45
|
+
with open(profile_path, "w") as f:
|
|
46
|
+
config.write(f)
|
|
47
|
+
except Exception as e:
|
|
48
|
+
print(
|
|
49
|
+
f"\033[31m[BizyAir]\033[0m Fail to create default profile: {str(e)}"
|
|
50
|
+
)
|
|
51
|
+
return
|
|
52
|
+
|
|
53
|
+
try:
|
|
54
|
+
config = configparser.ConfigParser()
|
|
55
|
+
config.read(profile_path)
|
|
56
|
+
self.profile_cache = {}
|
|
57
|
+
for section in config.sections():
|
|
58
|
+
self.profile_cache[section] = {}
|
|
59
|
+
for key, value in config.items(section):
|
|
60
|
+
self.profile_cache[section][key] = value
|
|
61
|
+
|
|
62
|
+
if self.profile_cache["global"]["lang"]:
|
|
63
|
+
self.lang = self.profile_cache["global"]["lang"]
|
|
64
|
+
except Exception as e:
|
|
65
|
+
print(f"\033[31m[BizyAir]\033[0m Fail to read profile: {str(e)}")
|
|
66
|
+
|
|
67
|
+
def update_profile(self, json_data):
|
|
68
|
+
profile_path = os.path.join(os.getenv("BIZYAIR_COMFYUI_PATH"), "profile.ini")
|
|
69
|
+
try:
|
|
70
|
+
config = configparser.ConfigParser()
|
|
71
|
+
if os.path.exists(profile_path):
|
|
72
|
+
config.read(profile_path)
|
|
73
|
+
|
|
74
|
+
for section, values in json_data.items():
|
|
75
|
+
if not config.has_section(section):
|
|
76
|
+
config.add_section(section)
|
|
77
|
+
for key, value in values.items():
|
|
78
|
+
config.set(section, key, str(value))
|
|
79
|
+
|
|
80
|
+
with open(profile_path, "w") as f:
|
|
81
|
+
config.write(f)
|
|
82
|
+
|
|
83
|
+
# 重新加载配置
|
|
84
|
+
self.load_profile()
|
|
85
|
+
except Exception as e:
|
|
86
|
+
print(f"\033[31m[BizyAir]\033[0m Fail to write profile: {str(e)}")
|
|
87
|
+
return errnos.WRITE_PROFILE_FAILED
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
user_profile = UserProfile()
|
bizyengine/bizy_server/resp.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from aiohttp import web
|
|
2
2
|
|
|
3
3
|
from .errno import ErrorNo, errnos
|
|
4
|
+
from .profile import user_profile
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
def JsonResponse(http_status_code, data):
|
|
@@ -12,13 +13,16 @@ def JsonResponse(http_status_code, data):
|
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
def OKResponse(data):
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
)
|
|
16
|
+
message = "成功" if user_profile.getLang() == "zh" else "success"
|
|
17
|
+
return JsonResponse(200, {"message": message, "code": errnos.OK.code, "data": data})
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
def ErrResponse(err: ErrorNo):
|
|
21
|
+
err_msg = err.messages.get(user_profile.getLang())
|
|
22
|
+
if not err_msg:
|
|
23
|
+
err.messages["zh"]
|
|
24
|
+
|
|
21
25
|
return JsonResponse(
|
|
22
26
|
err.http_status_code,
|
|
23
|
-
{"message":
|
|
27
|
+
{"message": err_msg, "code": err.code, "data": err.data},
|
|
24
28
|
)
|