uapi-sdk-python 0.1.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.
- uapi/__init__.py +2 -0
- uapi/client.py +2005 -0
- uapi/errors.py +153 -0
- uapi_sdk_python-0.1.1.dist-info/METADATA +82 -0
- uapi_sdk_python-0.1.1.dist-info/RECORD +7 -0
- uapi_sdk_python-0.1.1.dist-info/WHEEL +5 -0
- uapi_sdk_python-0.1.1.dist-info/top_level.txt +1 -0
uapi/client.py
ADDED
|
@@ -0,0 +1,2005 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from typing import Any, Dict, Optional
|
|
4
|
+
import httpx
|
|
5
|
+
|
|
6
|
+
from .errors import *
|
|
7
|
+
# internal models live under ./internal (generated by openapi-generator-cli)
|
|
8
|
+
|
|
9
|
+
@dataclass(frozen=True)
|
|
10
|
+
class _Config:
|
|
11
|
+
base_url: str
|
|
12
|
+
token: Optional[str] = None
|
|
13
|
+
timeout: float = 15.0
|
|
14
|
+
|
|
15
|
+
class _HTTP:
|
|
16
|
+
def __init__(self, cfg: _Config):
|
|
17
|
+
self._cfg = cfg
|
|
18
|
+
self._client = httpx.Client(timeout=cfg.timeout)
|
|
19
|
+
|
|
20
|
+
def request(self, method: str, path: str, *, params: Dict[str, Any] | None = None, json: Any | None = None, headers: Dict[str, str] | None = None):
|
|
21
|
+
url = self._cfg.base_url.rstrip("/") + path
|
|
22
|
+
headers = headers or {}
|
|
23
|
+
if self._cfg.token:
|
|
24
|
+
headers["Authorization"] = f"Bearer {self._cfg.token}"
|
|
25
|
+
r = self._client.request(method, url, params=params, json=json, headers=headers)
|
|
26
|
+
if r.status_code >= 400:
|
|
27
|
+
raise map_error(r)
|
|
28
|
+
# try json else bytes
|
|
29
|
+
try:
|
|
30
|
+
return r.json()
|
|
31
|
+
except Exception:
|
|
32
|
+
return r.content
|
|
33
|
+
|
|
34
|
+
class UapiClient:
|
|
35
|
+
"""领域驱动的 UAPI 客户端。
|
|
36
|
+
- 子模块按 Tag 划分:如 `client.image`
|
|
37
|
+
- 方法名来源于 operationId 的惯用命名 (snake_case)
|
|
38
|
+
- 错误以具名异常抛出
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
def __init__(self, base_url: str, token: str | None = None, timeout: float = 15.0):
|
|
42
|
+
self._http = _HTTP(_Config(base_url, token, timeout))
|
|
43
|
+
# 动态挂载每个 Tag 的 API 门面
|
|
44
|
+
_clipzy_zai_xian_jian_tie_ban = _ClipzyZaiXianJianTieBanApi(self._http)
|
|
45
|
+
self.clipzy_zai_xian_jian_tie_ban = _clipzy_zai_xian_jian_tie_ban
|
|
46
|
+
setattr(self, "Clipzy 在线剪贴板", _clipzy_zai_xian_jian_tie_ban)
|
|
47
|
+
_convert = _ConvertApi(self._http)
|
|
48
|
+
self.convert = _convert
|
|
49
|
+
setattr(self, "Convert", _convert)
|
|
50
|
+
_daily = _DailyApi(self._http)
|
|
51
|
+
self.daily = _daily
|
|
52
|
+
setattr(self, "Daily", _daily)
|
|
53
|
+
_game = _GameApi(self._http)
|
|
54
|
+
self.game = _game
|
|
55
|
+
setattr(self, "Game", _game)
|
|
56
|
+
_image = _ImageApi(self._http)
|
|
57
|
+
self.image = _image
|
|
58
|
+
setattr(self, "Image", _image)
|
|
59
|
+
_misc = _MiscApi(self._http)
|
|
60
|
+
self.misc = _misc
|
|
61
|
+
setattr(self, "Misc", _misc)
|
|
62
|
+
_network = _NetworkApi(self._http)
|
|
63
|
+
self.network = _network
|
|
64
|
+
setattr(self, "Network", _network)
|
|
65
|
+
_poem = _PoemApi(self._http)
|
|
66
|
+
self.poem = _poem
|
|
67
|
+
setattr(self, "Poem", _poem)
|
|
68
|
+
_random = _RandomApi(self._http)
|
|
69
|
+
self.random = _random
|
|
70
|
+
setattr(self, "Random", _random)
|
|
71
|
+
_social = _SocialApi(self._http)
|
|
72
|
+
self.social = _social
|
|
73
|
+
setattr(self, "Social", _social)
|
|
74
|
+
_status = _StatusApi(self._http)
|
|
75
|
+
self.status = _status
|
|
76
|
+
setattr(self, "Status", _status)
|
|
77
|
+
_text = _TextApi(self._http)
|
|
78
|
+
self.text = _text
|
|
79
|
+
setattr(self, "Text", _text)
|
|
80
|
+
_translate = _TranslateApi(self._http)
|
|
81
|
+
self.translate = _translate
|
|
82
|
+
setattr(self, "Translate", _translate)
|
|
83
|
+
_webparse = _WebparseApi(self._http)
|
|
84
|
+
self.webparse = _webparse
|
|
85
|
+
setattr(self, "WebParse", _webparse)
|
|
86
|
+
_min_gan_ci_shi_bie = _MinGanCiShiBieApi(self._http)
|
|
87
|
+
self.min_gan_ci_shi_bie = _min_gan_ci_shi_bie
|
|
88
|
+
setattr(self, "敏感词识别", _min_gan_ci_shi_bie)
|
|
89
|
+
_zhi_neng_sou_suo = _ZhiNengSouSuoApi(self._http)
|
|
90
|
+
self.zhi_neng_sou_suo = _zhi_neng_sou_suo
|
|
91
|
+
setattr(self, "智能搜索", _zhi_neng_sou_suo)
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
class _ClipzyZaiXianJianTieBanApi:
|
|
95
|
+
def __init__(self, http: _HTTP):
|
|
96
|
+
self._http = http
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def get_clipzy_get(self, **kwargs):
|
|
100
|
+
"""步骤2 (方法一): 获取加密数据
|
|
101
|
+
**此接口用于“最高安全等级”方法。**
|
|
102
|
+
|
|
103
|
+
您提供第一步中获得的ID,它会返回存储在服务器上的**加密数据**。您需要在自己的客户端中,使用您自己保管的密钥来解密它。
|
|
104
|
+
"""
|
|
105
|
+
params = {}
|
|
106
|
+
body = None
|
|
107
|
+
|
|
108
|
+
if "query" == "query" and "id" in kwargs:
|
|
109
|
+
params["id"] = kwargs["id"]
|
|
110
|
+
|
|
111
|
+
path = "/api/get"
|
|
112
|
+
|
|
113
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
114
|
+
|
|
115
|
+
def get_clipzy_raw(self, **kwargs):
|
|
116
|
+
"""步骤2 (方法二): 获取原始文本
|
|
117
|
+
**此接口用于“方便自动化”方法。**
|
|
118
|
+
|
|
119
|
+
您提供第一步获得的ID,并附上您自己保管的**解密密钥**作为 `key` 参数。服务器会直接为您解密,并返回纯文本内容。
|
|
120
|
+
|
|
121
|
+
> [!IMPORTANT]
|
|
122
|
+
> 查看文档首页的 **cURL 示例**,了解此接口最典型的用法。
|
|
123
|
+
"""
|
|
124
|
+
params = {}
|
|
125
|
+
body = None
|
|
126
|
+
|
|
127
|
+
if "path" == "query" and "id" in kwargs:
|
|
128
|
+
params["id"] = kwargs["id"]
|
|
129
|
+
|
|
130
|
+
if "query" == "query" and "key" in kwargs:
|
|
131
|
+
params["key"] = kwargs["key"]
|
|
132
|
+
|
|
133
|
+
path = "/api/raw/{id}"
|
|
134
|
+
|
|
135
|
+
if "id" in kwargs:
|
|
136
|
+
path = path.replace("{" + "id" + "}", str(kwargs["id"]))
|
|
137
|
+
|
|
138
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
139
|
+
|
|
140
|
+
def post_clipzy_store(self, **kwargs):
|
|
141
|
+
"""步骤1:上传加密数据
|
|
142
|
+
这是所有流程的第一步。您的客户端应用需要先在本地准备好 **加密后的数据**,然后调用此接口进行上传。成功后,您会得到一个用于后续操作的唯一ID。
|
|
143
|
+
|
|
144
|
+
> [!NOTE]
|
|
145
|
+
> 您发送给此接口的应该是**密文**,而不是原始文本。请参考文档首页的JavaScript示例来了解如何在客户端进行加密。
|
|
146
|
+
"""
|
|
147
|
+
params = {}
|
|
148
|
+
body = None
|
|
149
|
+
|
|
150
|
+
path = "/api/store"
|
|
151
|
+
|
|
152
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
class _ConvertApi:
|
|
156
|
+
def __init__(self, http: _HTTP):
|
|
157
|
+
self._http = http
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def get_convert_unixtime(self, **kwargs):
|
|
161
|
+
"""Unix时间戳与日期字符串双向转换
|
|
162
|
+
时间戳和日期字符串,哪个用着更顺手?别纠结了,这个接口让你轻松拥有两种格式!
|
|
163
|
+
|
|
164
|
+
## 功能概述
|
|
165
|
+
这是一个非常智能的转换器。你给它一个 Unix 时间戳,它还你一个人类可读的日期时间;你给它一个日期时间字符串,它还你一个 Unix 时间戳。它会自动识别你输入的是哪种格式。
|
|
166
|
+
|
|
167
|
+
## 使用须知
|
|
168
|
+
这个接口非常智能,能够自动识别输入格式:
|
|
169
|
+
|
|
170
|
+
- **输入时间戳**:支持10位秒级(如 `1672531200`)和13位毫秒级(如 `1672531200000`)。
|
|
171
|
+
- **输入日期字符串**:为了确保准确性,推荐使用 `YYYY-MM-DD HH:mm:ss` 标准格式(如 `2023-01-01 08:00:00`)。
|
|
172
|
+
|
|
173
|
+
> [!TIP]
|
|
174
|
+
> 无论你输入哪种格式,响应中都会同时包含标准日期字符串和秒级Unix时间戳,方便你按需取用。
|
|
175
|
+
|
|
176
|
+
## 错误处理指南
|
|
177
|
+
- **400 Bad Request**: 如果你提供的 `time` 参数既不是有效的时间戳,也不是我们支持的日期格式,就会收到这个错误。请检查你的输入值。
|
|
178
|
+
"""
|
|
179
|
+
params = {}
|
|
180
|
+
body = None
|
|
181
|
+
|
|
182
|
+
if "query" == "query" and "time" in kwargs:
|
|
183
|
+
params["time"] = kwargs["time"]
|
|
184
|
+
|
|
185
|
+
path = "/convert/unixtime"
|
|
186
|
+
|
|
187
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
188
|
+
|
|
189
|
+
def post_convert_json(self, **kwargs):
|
|
190
|
+
"""美化并格式化JSON字符串
|
|
191
|
+
还在为一团乱麻的 JSON 字符串头疼吗?这个接口能瞬间让它变得井井有条,赏心悦目。
|
|
192
|
+
|
|
193
|
+
## 功能概述
|
|
194
|
+
你只需要提供一个原始的、可能是压缩过的或者格式混乱的 JSON 字符串,这个 API 就会返回一个经过美化(带标准缩进和换行)的版本。这在调试 API 响应、或者需要在前端界面清晰展示 JSON 数据时非常有用。
|
|
195
|
+
|
|
196
|
+
## 使用须知
|
|
197
|
+
> [!NOTE]
|
|
198
|
+
> **请求格式**
|
|
199
|
+
> 请注意,待格式化的 JSON 字符串需要被包裹在另一个 JSON 对象中,作为 `content` 字段的值提交。具体格式请参考请求体示例。
|
|
200
|
+
|
|
201
|
+
## 错误处理指南
|
|
202
|
+
- **400 Bad Request**: 最常见的原因是你提供的 `content` 字符串本身不是一个有效的 JSON。请仔细检查括号、引号是否正确闭合,或者有没有多余的逗号等语法错误。
|
|
203
|
+
"""
|
|
204
|
+
params = {}
|
|
205
|
+
body = None
|
|
206
|
+
|
|
207
|
+
path = "/convert/json"
|
|
208
|
+
|
|
209
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
class _DailyApi:
|
|
213
|
+
def __init__(self, http: _HTTP):
|
|
214
|
+
self._http = http
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
def get_daily_news_image(self, **kwargs):
|
|
218
|
+
"""生成每日新闻摘要图片
|
|
219
|
+
想用一张图快速了解天下大事?这个接口为你一键生成今日新闻摘要,非常适合用在早报、数字看板或应用首页等场景。
|
|
220
|
+
|
|
221
|
+
## 功能概述
|
|
222
|
+
此接口会实时抓取各大平台的热点新闻,并动态地将它们渲染成一张清晰、美观的摘要图片。你调用接口,直接就能得到一张可以展示的图片。
|
|
223
|
+
|
|
224
|
+
## 使用须知
|
|
225
|
+
调用此接口时,请务必注意以下两点:
|
|
226
|
+
|
|
227
|
+
1. **响应格式是图片**:接口成功时直接返回 `image/jpeg` 格式的二进制数据,而非 JSON。请确保你的客户端能正确处理二进制流,例如直接在 `<img>` 标签中显示,或保存为 `.jpg` 文件。
|
|
228
|
+
|
|
229
|
+
2. **设置合理超时**:由于涉及实时新闻抓取和图片渲染,处理过程可能耗时数秒。建议将客户端请求超时时间设置为至少10秒,以防止因等待过久而失败。
|
|
230
|
+
|
|
231
|
+
> [!IMPORTANT]
|
|
232
|
+
> 未能正确处理图片响应或超时设置过短,是导致调用失败的最常见原因。
|
|
233
|
+
"""
|
|
234
|
+
params = {}
|
|
235
|
+
body = None
|
|
236
|
+
|
|
237
|
+
path = "/daily/news-image"
|
|
238
|
+
|
|
239
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
class _GameApi:
|
|
243
|
+
def __init__(self, http: _HTTP):
|
|
244
|
+
self._http = http
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def get_game_epic_free(self, **kwargs):
|
|
248
|
+
"""获取Epic Games免费游戏
|
|
249
|
+
白嫖党的福音来了!想第一时间知道Epic商店本周送了哪些游戏大作吗?
|
|
250
|
+
|
|
251
|
+
## 功能概述
|
|
252
|
+
这个接口帮你实时追踪Epic Games商店的每周免费游戏活动。无需任何参数,调用后即可获得当前所有免费游戏的完整信息,包括游戏封面、原价、剩余时间等,再也不用担心错过心仪的免费游戏了!
|
|
253
|
+
|
|
254
|
+
## 使用场景
|
|
255
|
+
- 开发游戏资讯应用或网站
|
|
256
|
+
- 制作Epic免费游戏推送机器人
|
|
257
|
+
- 为用户提供游戏收藏建议
|
|
258
|
+
- 构建个人游戏库管理工具
|
|
259
|
+
|
|
260
|
+
> [!TIP]
|
|
261
|
+
> **关于时间格式**
|
|
262
|
+
> 为了方便不同场景的使用,我们同时提供了可读的时间字符串(如 `2025/01/10 00:00:00`)和13位毫秒时间戳。前端显示用字符串,程序逻辑用时间戳
|
|
263
|
+
"""
|
|
264
|
+
params = {}
|
|
265
|
+
body = None
|
|
266
|
+
|
|
267
|
+
path = "/game/epic-free"
|
|
268
|
+
|
|
269
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
270
|
+
|
|
271
|
+
def get_game_minecraft_historyid(self, **kwargs):
|
|
272
|
+
"""查询Minecraft玩家历史用户名
|
|
273
|
+
想知道某个大佬以前叫什么名字吗?这个接口可以帮你追溯一个 Minecraft 玩家的“黑历史”!
|
|
274
|
+
|
|
275
|
+
## 功能概述
|
|
276
|
+
通过提供一个玩家的 UUID,你可以获取到该玩家所有曾用名及其变更时间的列表。这对于识别回归的老玩家或者社区管理非常有用。
|
|
277
|
+
|
|
278
|
+
## 使用须知
|
|
279
|
+
> [!NOTE]
|
|
280
|
+
> **UUID 格式**
|
|
281
|
+
> 查询时,请务必提供玩家的 **32位无破折号** Minecraft UUID,例如 `ee9b4ed1aac1491eb7611471be374b80`。
|
|
282
|
+
"""
|
|
283
|
+
params = {}
|
|
284
|
+
body = None
|
|
285
|
+
|
|
286
|
+
if "query" == "query" and "uuid" in kwargs:
|
|
287
|
+
params["uuid"] = kwargs["uuid"]
|
|
288
|
+
|
|
289
|
+
path = "/game/minecraft/historyid"
|
|
290
|
+
|
|
291
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
292
|
+
|
|
293
|
+
def get_game_minecraft_serverstatus(self, **kwargs):
|
|
294
|
+
"""查询Minecraft服务器状态
|
|
295
|
+
想在加入服务器前看看有多少人在线?或者检查一下服务器开没开?用这个接口就对了!
|
|
296
|
+
|
|
297
|
+
## 功能概述
|
|
298
|
+
你可以通过提供服务器地址(域名或IP),来获取一个 Minecraft Java 版服务器的实时状态。返回信息非常丰富,包括服务器是否在线、当前玩家数、最大玩家数、服务器版本、MOTD(每日消息)以及服务器图标等。
|
|
299
|
+
"""
|
|
300
|
+
params = {}
|
|
301
|
+
body = None
|
|
302
|
+
|
|
303
|
+
if "query" == "query" and "server" in kwargs:
|
|
304
|
+
params["server"] = kwargs["server"]
|
|
305
|
+
|
|
306
|
+
path = "/game/minecraft/serverstatus"
|
|
307
|
+
|
|
308
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
309
|
+
|
|
310
|
+
def get_game_minecraft_userinfo(self, **kwargs):
|
|
311
|
+
"""查询Minecraft玩家信息
|
|
312
|
+
只需要一个玩家的用户名,就能快速获取到他的正版皮肤和独一无二的UUID!
|
|
313
|
+
|
|
314
|
+
## 功能概述
|
|
315
|
+
这是一个基础但非常实用的接口。通过玩家当前的游戏内名称(Username),你可以查询到他对应的UUID(唯一标识符)和当前皮肤的URL地址。这是构建许多其他玩家相关服务的第一步。
|
|
316
|
+
"""
|
|
317
|
+
params = {}
|
|
318
|
+
body = None
|
|
319
|
+
|
|
320
|
+
if "query" == "query" and "username" in kwargs:
|
|
321
|
+
params["username"] = kwargs["username"]
|
|
322
|
+
|
|
323
|
+
path = "/game/minecraft/userinfo"
|
|
324
|
+
|
|
325
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
326
|
+
|
|
327
|
+
def get_game_steam_summary(self, **kwargs):
|
|
328
|
+
"""获取Steam用户公开摘要
|
|
329
|
+
想在你的网站或应用中展示用户的 Steam 个人资料?这个接口就是为你准备的。
|
|
330
|
+
|
|
331
|
+
## 功能概述
|
|
332
|
+
通过一个用户的 Steam 标识(支持多种格式),你可以获取到他公开的个人资料摘要,包括昵称、头像、在线状态、真实姓名(如果公开)和个人资料主页URL等信息。
|
|
333
|
+
|
|
334
|
+
## 支持的参数格式
|
|
335
|
+
接口现在支持以下几种标识符格式:
|
|
336
|
+
- **`steamid`**: 64位SteamID(如 `76561197960287930`)
|
|
337
|
+
- **`id`**: 自定义URL名称(如 `gabelogannewell`)
|
|
338
|
+
- **`id3`**: Steam ID3格式(如 `STEAM_0:0:22202`)
|
|
339
|
+
- 完整的个人资料链接
|
|
340
|
+
- 好友代码
|
|
341
|
+
|
|
342
|
+
## 使用须知
|
|
343
|
+
|
|
344
|
+
> [!IMPORTANT]
|
|
345
|
+
> **API Key 安全**
|
|
346
|
+
> 此接口需要一个 Steam Web API Key。我们强烈建议由后端统一配置和调用,以避免在客户端泄露。当然,你也可以通过 `key` 查询参数临时提供一个Key来覆盖后端配置。
|
|
347
|
+
|
|
348
|
+
在处理响应时,请注意以下数字代码的含义:
|
|
349
|
+
- **`personastate` (用户状态)**: 0-离线, 1-在线, 2-忙碌, 3-离开, 4-打盹, 5-想交易, 6-想玩。
|
|
350
|
+
- **`communityvisibilitystate` (社区可见性)**: 1-私密, 3-公开 (API通常只能查到这两种状态)。
|
|
351
|
+
"""
|
|
352
|
+
params = {}
|
|
353
|
+
body = None
|
|
354
|
+
|
|
355
|
+
if "query" == "query" and "steamid" in kwargs:
|
|
356
|
+
params["steamid"] = kwargs["steamid"]
|
|
357
|
+
|
|
358
|
+
if "query" == "query" and "id" in kwargs:
|
|
359
|
+
params["id"] = kwargs["id"]
|
|
360
|
+
|
|
361
|
+
if "query" == "query" and "id3" in kwargs:
|
|
362
|
+
params["id3"] = kwargs["id3"]
|
|
363
|
+
|
|
364
|
+
if "query" == "query" and "key" in kwargs:
|
|
365
|
+
params["key"] = kwargs["key"]
|
|
366
|
+
|
|
367
|
+
path = "/game/steam/summary"
|
|
368
|
+
|
|
369
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
class _ImageApi:
|
|
373
|
+
def __init__(self, http: _HTTP):
|
|
374
|
+
self._http = http
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
def get_avatar_gravatar(self, **kwargs):
|
|
378
|
+
"""获取Gravatar头像
|
|
379
|
+
提供一个超高速、高可用的Gravatar头像代理服务。内置了强大的ETag条件缓存,确保用户在更新Gravatar头像后能几乎立刻看到变化,同时最大化地利用缓存。
|
|
380
|
+
"""
|
|
381
|
+
params = {}
|
|
382
|
+
body = None
|
|
383
|
+
|
|
384
|
+
if "query" == "query" and "email" in kwargs:
|
|
385
|
+
params["email"] = kwargs["email"]
|
|
386
|
+
|
|
387
|
+
if "query" == "query" and "hash" in kwargs:
|
|
388
|
+
params["hash"] = kwargs["hash"]
|
|
389
|
+
|
|
390
|
+
if "query" == "query" and "s" in kwargs:
|
|
391
|
+
params["s"] = kwargs["s"]
|
|
392
|
+
|
|
393
|
+
if "query" == "query" and "d" in kwargs:
|
|
394
|
+
params["d"] = kwargs["d"]
|
|
395
|
+
|
|
396
|
+
if "query" == "query" and "r" in kwargs:
|
|
397
|
+
params["r"] = kwargs["r"]
|
|
398
|
+
|
|
399
|
+
path = "/avatar/gravatar"
|
|
400
|
+
|
|
401
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
402
|
+
|
|
403
|
+
def get_image_bing_daily(self, **kwargs):
|
|
404
|
+
"""获取必应每日壁纸
|
|
405
|
+
每天都想换张新壁纸?让必应的美图点亮你的一天吧!
|
|
406
|
+
|
|
407
|
+
## 功能概述
|
|
408
|
+
这个接口会获取 Bing 搜索引擎当天全球同步的每日壁纸,并直接以图片形式返回。你可以用它来做应用的启动页、网站背景,或者任何需要每日更新精美图片的地方。
|
|
409
|
+
|
|
410
|
+
## 使用须知
|
|
411
|
+
|
|
412
|
+
> [!NOTE]
|
|
413
|
+
> **响应格式是图片**
|
|
414
|
+
> 请注意,此接口成功时直接返回图片二进制数据(通常为 `image/jpeg`),而非 JSON 格式。请确保客户端能够正确处理。
|
|
415
|
+
|
|
416
|
+
我们内置了备用方案:如果从必应官方获取图片失败,系统会尝试返回一张预存的高质量风景图,以保证服务的稳定性。
|
|
417
|
+
"""
|
|
418
|
+
params = {}
|
|
419
|
+
body = None
|
|
420
|
+
|
|
421
|
+
path = "/image/bing-daily"
|
|
422
|
+
|
|
423
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
424
|
+
|
|
425
|
+
def get_image_motou(self, **kwargs):
|
|
426
|
+
"""生成摸摸头GIF (QQ号方式)
|
|
427
|
+
想在线rua一下好友的头像吗?这个趣味接口可以满足你。
|
|
428
|
+
|
|
429
|
+
## 功能概述
|
|
430
|
+
此接口通过GET方法,专门用于通过QQ号生成摸摸头GIF。你只需要提供一个QQ号码,我们就会自动获取其公开头像,并制作成一个可爱的动图。
|
|
431
|
+
|
|
432
|
+
## 使用须知
|
|
433
|
+
- **响应格式**:接口成功时直接返回 `image/gif` 格式的二进制数据。
|
|
434
|
+
- **背景颜色**:你可以通过 `bg_color` 参数来控制GIF的背景。使用 `transparent` 选项可以让它更好地融入各种聊天背景中。
|
|
435
|
+
"""
|
|
436
|
+
params = {}
|
|
437
|
+
body = None
|
|
438
|
+
|
|
439
|
+
if "query" == "query" and "qq" in kwargs:
|
|
440
|
+
params["qq"] = kwargs["qq"]
|
|
441
|
+
|
|
442
|
+
if "query" == "query" and "bg_color" in kwargs:
|
|
443
|
+
params["bg_color"] = kwargs["bg_color"]
|
|
444
|
+
|
|
445
|
+
path = "/image/motou"
|
|
446
|
+
|
|
447
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
448
|
+
|
|
449
|
+
def get_image_qrcode(self, **kwargs):
|
|
450
|
+
"""动态生成二维码
|
|
451
|
+
无论是网址、文本还是联系方式,通通可以变成一个二维码!这是一个非常灵活的二维码生成工具。
|
|
452
|
+
|
|
453
|
+
## 功能概述
|
|
454
|
+
你提供一段文本内容,我们为你生成对应的二维码图片。你可以自定义尺寸,并选择不同的返回格式以适应不同场景。
|
|
455
|
+
|
|
456
|
+
## 使用须知
|
|
457
|
+
|
|
458
|
+
> [!IMPORTANT]
|
|
459
|
+
> **关键参数 `format`**
|
|
460
|
+
> 此参数决定了成功响应的内容类型和结构,请务必根据你的需求选择并正确处理响应:
|
|
461
|
+
> - **`image`** (默认): 直接返回 `image/png` 格式的图片二进制数据,适合在 `<img>` 标签中直接使用。
|
|
462
|
+
> - **`json`**: 返回一个包含 Base64 Data URI 的 JSON 对象,适合需要在前端直接嵌入CSS或HTML的场景。
|
|
463
|
+
> - **`json_url`**: 返回一个包含图片临时URL的JSON对象,适合需要图片链接的场景。
|
|
464
|
+
"""
|
|
465
|
+
params = {}
|
|
466
|
+
body = None
|
|
467
|
+
|
|
468
|
+
if "query" == "query" and "text" in kwargs:
|
|
469
|
+
params["text"] = kwargs["text"]
|
|
470
|
+
|
|
471
|
+
if "query" == "query" and "size" in kwargs:
|
|
472
|
+
params["size"] = kwargs["size"]
|
|
473
|
+
|
|
474
|
+
if "query" == "query" and "format" in kwargs:
|
|
475
|
+
params["format"] = kwargs["format"]
|
|
476
|
+
|
|
477
|
+
path = "/image/qrcode"
|
|
478
|
+
|
|
479
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
480
|
+
|
|
481
|
+
def get_image_tobase_64(self, **kwargs):
|
|
482
|
+
"""将在线图片转换为Base64
|
|
483
|
+
看到一张网上的图片,想把它转换成 Base64 编码以便嵌入到你的 HTML 或 CSS 中?用这个接口就对了。
|
|
484
|
+
|
|
485
|
+
## 功能概述
|
|
486
|
+
你提供一个公开可访问的图片 URL,我们帮你把它下载下来,并转换成包含 MIME 类型的 Base64 Data URI 字符串返回给你。
|
|
487
|
+
"""
|
|
488
|
+
params = {}
|
|
489
|
+
body = None
|
|
490
|
+
|
|
491
|
+
if "query" == "query" and "url" in kwargs:
|
|
492
|
+
params["url"] = kwargs["url"]
|
|
493
|
+
|
|
494
|
+
path = "/image/tobase64"
|
|
495
|
+
|
|
496
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
497
|
+
|
|
498
|
+
def post_image_compress(self, **kwargs):
|
|
499
|
+
"""无损压缩图片
|
|
500
|
+
还在为图片体积和加载速度发愁吗?体验一下我们强大的**无损压缩服务**,它能在几乎不牺牲任何肉眼可感知的画质的前提下,将图片体积压缩到极致。
|
|
501
|
+
|
|
502
|
+
## 功能概述
|
|
503
|
+
你只需要上传一张常见的图片(如 PNG, JPG),选择一个压缩等级,就能获得一个体积小到惊人的压缩文件。这对于需要大量展示高清图片的网站、App 或小程序来说,是优化用户体验、节省带宽和存储成本的利器。
|
|
504
|
+
|
|
505
|
+
## 使用须知
|
|
506
|
+
> [!TIP]
|
|
507
|
+
> 为了给您最好的压缩效果,我们的算法需要进行复杂计算,处理时间可能会稍长一些,请耐心等待。
|
|
508
|
+
|
|
509
|
+
> [!WARNING]
|
|
510
|
+
> **服务排队提醒**
|
|
511
|
+
> 这是一个计算密集型服务。在高并发时,您的请求可能会被排队等待处理。如果您需要将其集成到对延迟敏感的生产服务中,请注意这一点。
|
|
512
|
+
|
|
513
|
+
### 请求与响应格式
|
|
514
|
+
- 请求必须使用 `multipart/form-data` 格式上传文件。
|
|
515
|
+
- 成功响应将直接返回压缩后的文件二进制流 (`application/octet-stream`),并附带 `Content-Disposition` 头,建议客户端根据此头信息保存文件。
|
|
516
|
+
|
|
517
|
+
## 参数详解
|
|
518
|
+
### `level` (压缩等级)
|
|
519
|
+
这是一个从 `1` 到 `5` 的整数,它决定了压缩的强度和策略,数字越小,压缩率越高。所有等级都经过精心调校,以在最大化压缩率的同时保证出色的视觉质量。
|
|
520
|
+
- `1`: **极限压缩** (推荐,体积最小,画质优异)
|
|
521
|
+
- `2`: **高效压缩**
|
|
522
|
+
- `3`: **智能均衡** (默认选项)
|
|
523
|
+
- `4`: **画质优先**
|
|
524
|
+
- `5`: **专业保真** (压缩率稍低,保留最多图像信息)
|
|
525
|
+
|
|
526
|
+
## 错误处理指南
|
|
527
|
+
- **400 Bad Request**: 通常因为没有上传文件,或者 `level` 参数不在 1-5 的范围内。
|
|
528
|
+
- **500 Internal Server Error**: 如果在压缩过程中服务器发生内部错误,会返回此状态码。
|
|
529
|
+
"""
|
|
530
|
+
params = {}
|
|
531
|
+
body = None
|
|
532
|
+
|
|
533
|
+
if "query" == "query" and "level" in kwargs:
|
|
534
|
+
params["level"] = kwargs["level"]
|
|
535
|
+
|
|
536
|
+
if "query" == "query" and "format" in kwargs:
|
|
537
|
+
params["format"] = kwargs["format"]
|
|
538
|
+
|
|
539
|
+
path = "/image/compress"
|
|
540
|
+
|
|
541
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
542
|
+
|
|
543
|
+
def post_image_frombase_64(self, **kwargs):
|
|
544
|
+
"""通过Base64编码上传图片
|
|
545
|
+
当你需要在前端处理完图片(比如裁剪、加滤镜后),不通过传统表单,而是直接上传图片的场景,这个接口就派上用场了。
|
|
546
|
+
|
|
547
|
+
## 功能概述
|
|
548
|
+
你只需要将图片的 Base64 编码字符串发送过来,我们就会把它解码、保存为图片文件,并返回一个可供访问的公开 URL。
|
|
549
|
+
|
|
550
|
+
## 使用须知
|
|
551
|
+
|
|
552
|
+
> [!IMPORTANT]
|
|
553
|
+
> **关于 `imageData` 格式**
|
|
554
|
+
> 你发送的 `imageData` 字符串必须是完整的 Base64 Data URI 格式,它需要包含 MIME 类型信息,例如 `data:image/png;base64,iVBORw0KGgo...`。缺少 `data:image/...;base64,` 前缀将导致解码失败。
|
|
555
|
+
"""
|
|
556
|
+
params = {}
|
|
557
|
+
body = None
|
|
558
|
+
|
|
559
|
+
path = "/image/frombase64"
|
|
560
|
+
|
|
561
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
562
|
+
|
|
563
|
+
def post_image_motou(self, **kwargs):
|
|
564
|
+
"""生成摸摸头GIF (图片上传或URL方式)
|
|
565
|
+
除了使用QQ头像,你还可以通过上传自己的图片或提供图片URL来制作独一无二的摸摸头GIF。
|
|
566
|
+
|
|
567
|
+
## 功能概述
|
|
568
|
+
此接口通过POST方法,支持两种方式生成GIF:
|
|
569
|
+
1. **图片URL**:在表单中提供 `image_url` 字段。
|
|
570
|
+
2. **上传图片**:在表单中上传 `file` 文件。
|
|
571
|
+
|
|
572
|
+
## 使用须知
|
|
573
|
+
- **响应格式**:接口成功时直接返回 `image/gif` 格式的二进制数据。
|
|
574
|
+
- **参数优先级**:如果同时提供了 `image_url` 和上传的 `file` 文件,系统将 **优先使用 `image_url`**。
|
|
575
|
+
- **背景颜色**:同样支持 `bg_color` 表单字段来控制GIF背景。
|
|
576
|
+
"""
|
|
577
|
+
params = {}
|
|
578
|
+
body = None
|
|
579
|
+
|
|
580
|
+
path = "/image/motou"
|
|
581
|
+
|
|
582
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
583
|
+
|
|
584
|
+
def post_image_speechless(self, **kwargs):
|
|
585
|
+
"""生成你们怎么不说话了表情包
|
|
586
|
+
你们怎么不说话了?是不是都在偷偷玩Uapi,求求你们不要玩Uapi了
|
|
587
|
+
|
|
588
|
+
## 效果展示
|
|
589
|
+

|
|
590
|
+
|
|
591
|
+
## 使用须知
|
|
592
|
+
- **响应格式**:接口成功时直接返回 `image/jpeg` 格式的二进制数据。
|
|
593
|
+
- **文字内容**:至少需要提供 `top_text`(上方文字)或 `bottom_text`(下方文字)之一。
|
|
594
|
+
- **梗图逻辑**:上方描述某个行为,下方通常以「们」开头表示劝阻,形成戏谑的对比效果。
|
|
595
|
+
"""
|
|
596
|
+
params = {}
|
|
597
|
+
body = None
|
|
598
|
+
|
|
599
|
+
path = "/image/speechless"
|
|
600
|
+
|
|
601
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
602
|
+
|
|
603
|
+
def post_image_svg(self, **kwargs):
|
|
604
|
+
"""SVG转图片
|
|
605
|
+
需要将灵活的 SVG 矢量图形转换为常见的光栅图像格式吗?这个接口可以帮你轻松实现。
|
|
606
|
+
|
|
607
|
+
## 功能概述
|
|
608
|
+
上传一个 SVG 文件,并指定目标格式(如 PNG、JPEG 等),接口将返回转换后的图像。你还可以调整输出图像的尺寸和(对于JPEG)压缩质量,以满足不同场景的需求。
|
|
609
|
+
"""
|
|
610
|
+
params = {}
|
|
611
|
+
body = None
|
|
612
|
+
|
|
613
|
+
if "query" == "query" and "format" in kwargs:
|
|
614
|
+
params["format"] = kwargs["format"]
|
|
615
|
+
|
|
616
|
+
if "query" == "query" and "width" in kwargs:
|
|
617
|
+
params["width"] = kwargs["width"]
|
|
618
|
+
|
|
619
|
+
if "query" == "query" and "height" in kwargs:
|
|
620
|
+
params["height"] = kwargs["height"]
|
|
621
|
+
|
|
622
|
+
if "query" == "query" and "quality" in kwargs:
|
|
623
|
+
params["quality"] = kwargs["quality"]
|
|
624
|
+
|
|
625
|
+
path = "/image/svg"
|
|
626
|
+
|
|
627
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
class _MiscApi:
|
|
631
|
+
def __init__(self, http: _HTTP):
|
|
632
|
+
self._http = http
|
|
633
|
+
|
|
634
|
+
|
|
635
|
+
def get_history_programmer(self, **kwargs):
|
|
636
|
+
"""获取指定日期的程序员历史事件
|
|
637
|
+
想查看程序员历史上某个特定日期发生的大事件?指定月份和日期,我们就能告诉你!
|
|
638
|
+
|
|
639
|
+
## 功能概述
|
|
640
|
+
通过指定月份和日期,获取该日发生的程序员相关历史事件。同样使用AI智能筛选,确保事件的相关性和重要性。
|
|
641
|
+
"""
|
|
642
|
+
params = {}
|
|
643
|
+
body = None
|
|
644
|
+
|
|
645
|
+
if "query" == "query" and "month" in kwargs:
|
|
646
|
+
params["month"] = kwargs["month"]
|
|
647
|
+
|
|
648
|
+
if "query" == "query" and "day" in kwargs:
|
|
649
|
+
params["day"] = kwargs["day"]
|
|
650
|
+
|
|
651
|
+
path = "/history/programmer"
|
|
652
|
+
|
|
653
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
654
|
+
|
|
655
|
+
def get_history_programmer_today(self, **kwargs):
|
|
656
|
+
"""获取今天的程序员历史事件
|
|
657
|
+
想知道程序员历史上的今天发生了什么大事吗?这个接口告诉你答案!
|
|
658
|
+
|
|
659
|
+
## 功能概述
|
|
660
|
+
我们使用AI智能筛选从海量历史事件中挑选出与程序员、计算机科学相关的重要事件。每个事件都经过重要性评分和相关性评分,确保内容质量。
|
|
661
|
+
"""
|
|
662
|
+
params = {}
|
|
663
|
+
body = None
|
|
664
|
+
|
|
665
|
+
path = "/history/programmer/today"
|
|
666
|
+
|
|
667
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
668
|
+
|
|
669
|
+
def get_misc_hotboard(self, **kwargs):
|
|
670
|
+
"""获取多平台实时热榜
|
|
671
|
+
想快速跟上网络热点?这个接口让你一网打尽各大主流平台的实时热榜/热搜!
|
|
672
|
+
|
|
673
|
+
## 功能概述
|
|
674
|
+
你只需要指定一个平台类型,就能获取到该平台当前的热榜数据列表。每个热榜条目都包含标题、热度值和原始链接。非常适合用于制作信息聚合类应用或看板。
|
|
675
|
+
|
|
676
|
+
## 可选值
|
|
677
|
+
`type` 参数接受多种不同的值,每种值对应一个不同的热榜来源。以下是目前支持的所有值:
|
|
678
|
+
|
|
679
|
+
| 分类 | 支持的 type 值 |
|
|
680
|
+
|------------|-----------------------------------------------------------------------------------------------------------------------------------|
|
|
681
|
+
| 视频/社区 | bilibili(哔哩哔哩弹幕网), acfun(A站弹幕视频网站), weibo(新浪微博热搜), zhihu(知乎热榜), zhihu-daily(知乎日报热榜), douyin(抖音热榜), kuaishou(快手热榜), douban-movie(豆瓣电影榜单), douban-group(豆瓣小组话题), tieba(百度贴吧热帖), hupu(虎扑热帖), miyoushe(米游社话题榜), ngabbs(NGA游戏论坛热帖), v2ex(V2EX技术社区热帖), 52pojie(吾爱破解热帖), hostloc(全球主机交流论坛), coolapk(酷安热榜) |
|
|
682
|
+
| 新闻/资讯 | baidu(百度热搜), thepaper(澎湃新闻热榜), toutiao(今日头条热榜), qq-news(腾讯新闻热榜), sina(新浪热搜), sina-news(新浪新闻热榜), netease-news(网易新闻热榜), huxiu(虎嗅网热榜), ifanr(爱范儿热榜) |
|
|
683
|
+
| 技术/IT | sspai(少数派热榜), ithome(IT之家热榜), ithome-xijiayi(IT之家·喜加一栏目), juejin(掘金社区热榜), jianshu(简书热榜), guokr(果壳热榜), 36kr(36氪热榜), 51cto(51CTO热榜), csdn(CSDN博客热榜), nodeseek(NodeSeek 技术社区), hellogithub(HelloGitHub 项目推荐) |
|
|
684
|
+
| 游戏 | lol(英雄联盟热帖), genshin(原神热榜), honkai(崩坏3热榜), starrail(星穹铁道热榜) |
|
|
685
|
+
| 其他 | weread(微信读书热门书籍), weatheralarm(天气预警信息), earthquake(地震速报), history(历史上的今天) |
|
|
686
|
+
|
|
687
|
+
"""
|
|
688
|
+
params = {}
|
|
689
|
+
body = None
|
|
690
|
+
|
|
691
|
+
if "query" == "query" and "type" in kwargs:
|
|
692
|
+
params["type"] = kwargs["type"]
|
|
693
|
+
|
|
694
|
+
path = "/misc/hotboard"
|
|
695
|
+
|
|
696
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
697
|
+
|
|
698
|
+
def get_misc_phoneinfo(self, **kwargs):
|
|
699
|
+
"""查询手机号码归属地信息
|
|
700
|
+
想知道一个手机号码来自哪里?是移动、联通还是电信?这个接口可以告诉你答案。
|
|
701
|
+
|
|
702
|
+
## 功能概述
|
|
703
|
+
提供一个国内的手机号码,我们会查询并返回它的归属地(省份和城市)以及所属的运营商信息。
|
|
704
|
+
"""
|
|
705
|
+
params = {}
|
|
706
|
+
body = None
|
|
707
|
+
|
|
708
|
+
if "query" == "query" and "phone" in kwargs:
|
|
709
|
+
params["phone"] = kwargs["phone"]
|
|
710
|
+
|
|
711
|
+
path = "/misc/phoneinfo"
|
|
712
|
+
|
|
713
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
714
|
+
|
|
715
|
+
def get_misc_randomnumber(self, **kwargs):
|
|
716
|
+
"""生成高度可定制的随机数
|
|
717
|
+
需要一个简单的随机数,还是需要一串不重复的、带小数的随机数?这个接口都能满足你!
|
|
718
|
+
|
|
719
|
+
## 功能概述
|
|
720
|
+
这是一个强大的随机数生成器。你可以指定生成的范围(最大/最小值)、数量、是否允许重复、以及是否生成小数(并指定小数位数)。
|
|
721
|
+
|
|
722
|
+
## 流程图
|
|
723
|
+
```mermaid
|
|
724
|
+
graph TD
|
|
725
|
+
A[开始] --> B{参数校验};
|
|
726
|
+
B --> |通过| C{是否允许小数?};
|
|
727
|
+
C --> |是| D[生成随机小数];
|
|
728
|
+
C --> |否| E[生成随机整数];
|
|
729
|
+
D --> F{是否允许重复?};
|
|
730
|
+
E --> F;
|
|
731
|
+
F --> |是| G[直接生成指定数量];
|
|
732
|
+
F --> |否| H[生成不重复的数字];
|
|
733
|
+
G --> I[返回结果];
|
|
734
|
+
H --> I;
|
|
735
|
+
B --> |失败| J[返回 400 错误];
|
|
736
|
+
```
|
|
737
|
+
## 使用须知
|
|
738
|
+
> [!WARNING]
|
|
739
|
+
> **不重复生成的逻辑限制**
|
|
740
|
+
> 当设置 `allow_repeat=false` 时,请确保取值范围 `(max - min + 1)` 大于或等于你请求的数量 `count`。否则,系统将无法生成足够的不重复数字,请求会失败并返回 400 错误。
|
|
741
|
+
"""
|
|
742
|
+
params = {}
|
|
743
|
+
body = None
|
|
744
|
+
|
|
745
|
+
if "query" == "query" and "min" in kwargs:
|
|
746
|
+
params["min"] = kwargs["min"]
|
|
747
|
+
|
|
748
|
+
if "query" == "query" and "max" in kwargs:
|
|
749
|
+
params["max"] = kwargs["max"]
|
|
750
|
+
|
|
751
|
+
if "query" == "query" and "count" in kwargs:
|
|
752
|
+
params["count"] = kwargs["count"]
|
|
753
|
+
|
|
754
|
+
if "query" == "query" and "allow_repeat" in kwargs:
|
|
755
|
+
params["allow_repeat"] = kwargs["allow_repeat"]
|
|
756
|
+
|
|
757
|
+
if "query" == "query" and "allow_decimal" in kwargs:
|
|
758
|
+
params["allow_decimal"] = kwargs["allow_decimal"]
|
|
759
|
+
|
|
760
|
+
if "query" == "query" and "decimal_places" in kwargs:
|
|
761
|
+
params["decimal_places"] = kwargs["decimal_places"]
|
|
762
|
+
|
|
763
|
+
path = "/misc/randomnumber"
|
|
764
|
+
|
|
765
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
766
|
+
|
|
767
|
+
def get_misc_timestamp(self, **kwargs):
|
|
768
|
+
"""转换时间戳 (旧版,推荐使用/convert/unixtime)
|
|
769
|
+
这是一个用于将Unix时间戳转换为人类可读日期时间的旧版接口。
|
|
770
|
+
|
|
771
|
+
## 功能概述
|
|
772
|
+
输入一个秒级或毫秒级的时间戳,返回其对应的本地时间和UTC时间。
|
|
773
|
+
|
|
774
|
+
> [!WARNING]
|
|
775
|
+
> **接口已过时**:这个接口已被新的 `/convert/unixtime` 取代。新接口功能更强大,支持双向转换。我们建议你迁移到新接口。
|
|
776
|
+
|
|
777
|
+
[👉 前往新版接口文档](/docs/api-reference/get-convert-unixtime)
|
|
778
|
+
"""
|
|
779
|
+
params = {}
|
|
780
|
+
body = None
|
|
781
|
+
|
|
782
|
+
if "query" == "query" and "ts" in kwargs:
|
|
783
|
+
params["ts"] = kwargs["ts"]
|
|
784
|
+
|
|
785
|
+
path = "/misc/timestamp"
|
|
786
|
+
|
|
787
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
788
|
+
|
|
789
|
+
def get_misc_tracking_carriers(self, **kwargs):
|
|
790
|
+
"""获取支持的快递公司列表
|
|
791
|
+
不确定系统支持哪些快递公司?这个接口返回完整的支持列表。
|
|
792
|
+
|
|
793
|
+
> [!VIP]
|
|
794
|
+
> 本API目前处于**限时免费**阶段,我们鼓励开发者集成和测试。未来,它将转为付费API,为用户提供更稳定和强大的服务。
|
|
795
|
+
|
|
796
|
+
## 功能概述
|
|
797
|
+
获取系统当前支持的所有快递公司列表,包括每家公司的标准编码(code)和中文名称(name)。
|
|
798
|
+
|
|
799
|
+
## 使用建议
|
|
800
|
+
- **推荐缓存**:这个列表基本不会频繁变动,建议在应用启动时调用一次并缓存到本地
|
|
801
|
+
- **应用场景**:适合用于构建快递公司选择器、下拉菜单等UI组件
|
|
802
|
+
- **缓存时长**:建议缓存24小时或更久
|
|
803
|
+
"""
|
|
804
|
+
params = {}
|
|
805
|
+
body = None
|
|
806
|
+
|
|
807
|
+
path = "/misc/tracking/carriers"
|
|
808
|
+
|
|
809
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
810
|
+
|
|
811
|
+
def get_misc_tracking_detect(self, **kwargs):
|
|
812
|
+
"""识别快递公司
|
|
813
|
+
不确定手里的快递单号属于哪家快递公司?这个接口专门做识别,不查物流。
|
|
814
|
+
|
|
815
|
+
> [!VIP]
|
|
816
|
+
> 本API目前处于**限时免费**阶段,我们鼓励开发者集成和测试。未来,它将转为付费API,为用户提供更稳定和强大的服务。
|
|
817
|
+
|
|
818
|
+
## 功能概述
|
|
819
|
+
输入快递单号,系统会根据单号规则快速识别出最可能的快递公司。如果存在多个可能的匹配结果,还会在 `alternatives` 字段中返回备选项,供你参考选择。
|
|
820
|
+
|
|
821
|
+
## 使用须知
|
|
822
|
+
- **识别速度快**:只做规则匹配,不查询物流信息,响应速度通常在100ms内
|
|
823
|
+
- **准确率高**:基于各快递公司的单号规则进行智能识别,准确率超过95%
|
|
824
|
+
- **备选方案**:当单号规则可能匹配多家快递公司时,会提供所有可能的选项
|
|
825
|
+
"""
|
|
826
|
+
params = {}
|
|
827
|
+
body = None
|
|
828
|
+
|
|
829
|
+
if "query" == "query" and "tracking_number" in kwargs:
|
|
830
|
+
params["tracking_number"] = kwargs["tracking_number"]
|
|
831
|
+
|
|
832
|
+
path = "/misc/tracking/detect"
|
|
833
|
+
|
|
834
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
835
|
+
|
|
836
|
+
def get_misc_tracking_query(self, **kwargs):
|
|
837
|
+
"""查询快递物流信息
|
|
838
|
+
买了东西想知道快递到哪儿了?这个接口帮你实时追踪物流状态。
|
|
839
|
+
|
|
840
|
+
> [!VIP]
|
|
841
|
+
> 本API目前处于**限时免费**阶段,我们鼓励开发者集成和测试。未来,它将转为付费API,为用户提供更稳定和强大的服务。
|
|
842
|
+
|
|
843
|
+
## 功能概述
|
|
844
|
+
提供一个快递单号,系统会自动识别快递公司并返回完整的物流轨迹信息。支持中通、圆通、韵达、申通、极兔、顺丰、京东、EMS、德邦等60+国内外主流快递公司。
|
|
845
|
+
|
|
846
|
+
## 使用须知
|
|
847
|
+
- **自动识别**:不知道是哪家快递?系统会根据单号规则自动识别快递公司(推荐使用)
|
|
848
|
+
- **手动指定**:如果已知快递公司,可以传递 `carrier_code` 参数,查询速度会更快
|
|
849
|
+
- **查询时效**:物流信息实时查询,响应时间通常在1-2秒内
|
|
850
|
+
"""
|
|
851
|
+
params = {}
|
|
852
|
+
body = None
|
|
853
|
+
|
|
854
|
+
if "query" == "query" and "tracking_number" in kwargs:
|
|
855
|
+
params["tracking_number"] = kwargs["tracking_number"]
|
|
856
|
+
|
|
857
|
+
if "query" == "query" and "carrier_code" in kwargs:
|
|
858
|
+
params["carrier_code"] = kwargs["carrier_code"]
|
|
859
|
+
|
|
860
|
+
path = "/misc/tracking/query"
|
|
861
|
+
|
|
862
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
863
|
+
|
|
864
|
+
def get_misc_weather(self, **kwargs):
|
|
865
|
+
"""查询实时天气信息
|
|
866
|
+
出门前,查一下天气总是个好习惯。这个接口为你提供精准、实时的天气数据。
|
|
867
|
+
|
|
868
|
+
## 功能概述
|
|
869
|
+
你可以通过城市名称或高德地图的Adcode来查询指定地区的实时天气状况,包括天气现象、温度、湿度、风向和风力等。
|
|
870
|
+
|
|
871
|
+
## 使用须知
|
|
872
|
+
- **参数优先级**:当你同时提供了 `city` (城市名) 和 `adcode` (城市编码) 两个参数时,系统会 **优先使用 `adcode`** 进行查询,因为它更精确。
|
|
873
|
+
- **查询范围**:为了保证查询的准确性,我们的服务仅支持标准的“省”、“市”、“区/县”级别的行政区划名称查询,不保证能查询到乡镇或具体地点。
|
|
874
|
+
|
|
875
|
+
## 错误处理指南
|
|
876
|
+
- **410 Gone**: 这个特殊的错误码意味着你查询的地区无效或不受我们支持。比如你输入了“火星”,或者某个我们无法识别的村庄名称。这个状态码告诉你,这个“资源”是永久性地不可用了。
|
|
877
|
+
"""
|
|
878
|
+
params = {}
|
|
879
|
+
body = None
|
|
880
|
+
|
|
881
|
+
if "query" == "query" and "city" in kwargs:
|
|
882
|
+
params["city"] = kwargs["city"]
|
|
883
|
+
|
|
884
|
+
if "query" == "query" and "adcode" in kwargs:
|
|
885
|
+
params["adcode"] = kwargs["adcode"]
|
|
886
|
+
|
|
887
|
+
path = "/misc/weather"
|
|
888
|
+
|
|
889
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
890
|
+
|
|
891
|
+
def get_misc_worldtime(self, **kwargs):
|
|
892
|
+
"""查询全球任意时区的时间
|
|
893
|
+
需要和国外的朋友开会,想知道他那边现在几点?用这个接口一查便知。
|
|
894
|
+
|
|
895
|
+
## 功能概述
|
|
896
|
+
根据标准的时区名称(例如 'Asia/Shanghai' 或 'Europe/London'),获取该时区的当前准确时间、UTC偏移量、星期等信息。
|
|
897
|
+
"""
|
|
898
|
+
params = {}
|
|
899
|
+
body = None
|
|
900
|
+
|
|
901
|
+
if "query" == "query" and "city" in kwargs:
|
|
902
|
+
params["city"] = kwargs["city"]
|
|
903
|
+
|
|
904
|
+
path = "/misc/worldtime"
|
|
905
|
+
|
|
906
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
class _NetworkApi:
|
|
910
|
+
def __init__(self, http: _HTTP):
|
|
911
|
+
self._http = http
|
|
912
|
+
|
|
913
|
+
|
|
914
|
+
def get_network_dns(self, **kwargs):
|
|
915
|
+
"""执行DNS解析查询
|
|
916
|
+
想知道一个域名指向了哪个IP?或者它的邮件服务器是谁?这个接口就像一个在线的 `dig` 或 `nslookup` 工具。
|
|
917
|
+
|
|
918
|
+
## 功能概述
|
|
919
|
+
你可以查询指定域名的各种DNS记录,包括 `A` (IPv4), `AAAA` (IPv6), `CNAME` (别名), `MX` (邮件交换), `NS` (域名服务器) 和 `TXT` (文本记录)。
|
|
920
|
+
"""
|
|
921
|
+
params = {}
|
|
922
|
+
body = None
|
|
923
|
+
|
|
924
|
+
if "query" == "query" and "domain" in kwargs:
|
|
925
|
+
params["domain"] = kwargs["domain"]
|
|
926
|
+
|
|
927
|
+
if "query" == "query" and "type" in kwargs:
|
|
928
|
+
params["type"] = kwargs["type"]
|
|
929
|
+
|
|
930
|
+
path = "/network/dns"
|
|
931
|
+
|
|
932
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
933
|
+
|
|
934
|
+
def get_network_icp(self, **kwargs):
|
|
935
|
+
"""查询域名ICP备案信息
|
|
936
|
+
想知道一个网站的背后运营主体是谁吗?如果它是在中国大陆运营的,ICP备案信息可以告诉你答案。
|
|
937
|
+
|
|
938
|
+
## 功能概述
|
|
939
|
+
提供一个域名,查询其在中国工信部的ICP(Internet Content Provider)备案信息。这对于商业合作前的背景调查、验证网站合法性等场景很有帮助。
|
|
940
|
+
|
|
941
|
+
> [!NOTE]
|
|
942
|
+
> **查询范围**
|
|
943
|
+
> 此查询仅对在中国大陆工信部进行过备案的域名有效。对于国外域名或未备案的域名,将查询不到结果。
|
|
944
|
+
"""
|
|
945
|
+
params = {}
|
|
946
|
+
body = None
|
|
947
|
+
|
|
948
|
+
if "query" == "query" and "domain" in kwargs:
|
|
949
|
+
params["domain"] = kwargs["domain"]
|
|
950
|
+
|
|
951
|
+
path = "/network/icp"
|
|
952
|
+
|
|
953
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
954
|
+
|
|
955
|
+
def get_network_ipinfo(self, **kwargs):
|
|
956
|
+
"""查询指定IP或域名的归属信息
|
|
957
|
+
想知道一个IP地址或域名来自地球的哪个角落?这个接口可以帮你定位它。你可以选择使用默认的GeoIP数据库,也可以指定 `source=commercial` 参数来查询更详细的商业级IP归属信息。
|
|
958
|
+
|
|
959
|
+
## 功能概述
|
|
960
|
+
提供一个公网IPv4、IPv6地址或域名,我们会利用GeoIP数据库查询并返回它的地理位置(国家、省份、城市)、经纬度、以及所属的运营商(ISP)和自治系统(ASN)信息。这在网络安全分析、访问来源统计等领域非常有用。
|
|
961
|
+
|
|
962
|
+
当使用 `source=commercial` 参数时,接口将调用高性能商业API,提供更精确的市、区、运营商、时区、海拔等信息。请注意,商业查询的响应时间可能会稍长。
|
|
963
|
+
"""
|
|
964
|
+
params = {}
|
|
965
|
+
body = None
|
|
966
|
+
|
|
967
|
+
if "query" == "query" and "ip" in kwargs:
|
|
968
|
+
params["ip"] = kwargs["ip"]
|
|
969
|
+
|
|
970
|
+
if "query" == "query" and "source" in kwargs:
|
|
971
|
+
params["source"] = kwargs["source"]
|
|
972
|
+
|
|
973
|
+
path = "/network/ipinfo"
|
|
974
|
+
|
|
975
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
976
|
+
|
|
977
|
+
def get_network_myip(self, **kwargs):
|
|
978
|
+
"""获取你的公网IP及归属信息
|
|
979
|
+
想知道你自己的出口公网IP是多少吗?这个接口就是你的“网络身份证”。你可以选择使用默认的GeoIP数据库,也可以指定 `source=commercial` 参数来查询更详细的商业级IP归属信息。
|
|
980
|
+
|
|
981
|
+
## 功能概述
|
|
982
|
+
调用此接口,它会返回你(即发起请求的客户端)的公网IP地址,并附带与 `/network/ipinfo` 接口相同的地理位置和网络归属信息。非常适合用于在网页上向用户展示他们自己的IP和地理位置。
|
|
983
|
+
|
|
984
|
+
当使用 `source=commercial` 参数时,接口将调用高性能商业API,提供更精确的市、区、运营商、时区、海拔等信息。请注意,商业查询的响应时间可能会稍长。
|
|
985
|
+
"""
|
|
986
|
+
params = {}
|
|
987
|
+
body = None
|
|
988
|
+
|
|
989
|
+
if "query" == "query" and "source" in kwargs:
|
|
990
|
+
params["source"] = kwargs["source"]
|
|
991
|
+
|
|
992
|
+
path = "/network/myip"
|
|
993
|
+
|
|
994
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
995
|
+
|
|
996
|
+
def get_network_ping(self, **kwargs):
|
|
997
|
+
"""从服务器Ping指定主机
|
|
998
|
+
想知道从我们的服务器到你的服务器网络延迟高不高?这个工具可以帮你测试网络连通性。
|
|
999
|
+
|
|
1000
|
+
## 功能概述
|
|
1001
|
+
这个接口会从我们的服务器节点对你指定的主机(域名或IP地址)执行 ICMP Ping 操作。它会返回最小、最大、平均延迟以及丢包率等关键指标,是诊断网络问题的得力助手。
|
|
1002
|
+
"""
|
|
1003
|
+
params = {}
|
|
1004
|
+
body = None
|
|
1005
|
+
|
|
1006
|
+
if "query" == "query" and "host" in kwargs:
|
|
1007
|
+
params["host"] = kwargs["host"]
|
|
1008
|
+
|
|
1009
|
+
path = "/network/ping"
|
|
1010
|
+
|
|
1011
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1012
|
+
|
|
1013
|
+
def get_network_pingmyip(self, **kwargs):
|
|
1014
|
+
"""从服务器Ping你的客户端IP
|
|
1015
|
+
这是一个非常方便的快捷接口,想知道你的网络到我们服务器的回程延迟吗?点一下就行!
|
|
1016
|
+
|
|
1017
|
+
## 功能概述
|
|
1018
|
+
这个接口是 `/network/myip` 和 `/network/ping` 的结合体。它会自动获取你客户端的公网IP,然后从我们的服务器Ping这个IP,并返回延迟数据。这对于快速判断你本地网络到服务器的连接质量非常有用。
|
|
1019
|
+
"""
|
|
1020
|
+
params = {}
|
|
1021
|
+
body = None
|
|
1022
|
+
|
|
1023
|
+
path = "/network/pingmyip"
|
|
1024
|
+
|
|
1025
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1026
|
+
|
|
1027
|
+
def get_network_portscan(self, **kwargs):
|
|
1028
|
+
"""扫描远程主机的指定端口
|
|
1029
|
+
想检查一下你的服务器上某个端口(比如SSH的22端口或者Web的80端口)是否对外开放?这个工具可以帮你快速确认。
|
|
1030
|
+
|
|
1031
|
+
## 功能概述
|
|
1032
|
+
你可以指定一个主机和端口号,我们的服务器会尝试连接该端口,并告诉你它是开放的(open)、关闭的(closed)还是超时了(timeout)。这对于网络服务配置检查和基本的安全扫描很有用。
|
|
1033
|
+
"""
|
|
1034
|
+
params = {}
|
|
1035
|
+
body = None
|
|
1036
|
+
|
|
1037
|
+
if "query" == "query" and "host" in kwargs:
|
|
1038
|
+
params["host"] = kwargs["host"]
|
|
1039
|
+
|
|
1040
|
+
if "query" == "query" and "port" in kwargs:
|
|
1041
|
+
params["port"] = kwargs["port"]
|
|
1042
|
+
|
|
1043
|
+
if "query" == "query" and "protocol" in kwargs:
|
|
1044
|
+
params["protocol"] = kwargs["protocol"]
|
|
1045
|
+
|
|
1046
|
+
path = "/network/portscan"
|
|
1047
|
+
|
|
1048
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1049
|
+
|
|
1050
|
+
def get_network_urlstatus(self, **kwargs):
|
|
1051
|
+
"""检查URL的可访问性状态
|
|
1052
|
+
你的网站或API还好吗?用这个接口给它做个快速“体检”吧。
|
|
1053
|
+
|
|
1054
|
+
## 功能概述
|
|
1055
|
+
提供一个URL,我们会向它发起一个请求,并返回其HTTP响应状态码。这是一种简单而有效的服务可用性监控方法。
|
|
1056
|
+
|
|
1057
|
+
> [!TIP]
|
|
1058
|
+
> **性能优化**:为了提高效率并减少对目标服务器的负载,我们实际发送的是 `HEAD` 请求,而不是 `GET` 请求。`HEAD` 请求只会获取响应头,而不会下载整个页面内容,因此速度更快。
|
|
1059
|
+
"""
|
|
1060
|
+
params = {}
|
|
1061
|
+
body = None
|
|
1062
|
+
|
|
1063
|
+
if "query" == "query" and "url" in kwargs:
|
|
1064
|
+
params["url"] = kwargs["url"]
|
|
1065
|
+
|
|
1066
|
+
path = "/network/urlstatus"
|
|
1067
|
+
|
|
1068
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1069
|
+
|
|
1070
|
+
def get_network_whois(self, **kwargs):
|
|
1071
|
+
"""查询域名的WHOIS注册信息
|
|
1072
|
+
想知道一个域名是什么时候注册的、注册商是谁、什么时候到期?WHOIS信息可以告诉你这一切。
|
|
1073
|
+
|
|
1074
|
+
## 功能概述
|
|
1075
|
+
这是一个在线的WHOIS查询工具。你可以通过如下两种方式获取WHOIS信息:
|
|
1076
|
+
|
|
1077
|
+
- **默认行为**(不带参数):`GET /api/v1/network/whois?domain=google.com`
|
|
1078
|
+
- 返回一个JSON对象,`whois` 字段为原始、未处理的WHOIS文本字符串。
|
|
1079
|
+
- **JSON格式化**:`GET /api/v1/network/whois?domain=google.com&format=json`
|
|
1080
|
+
- 返回一个JSON对象,`whois` 字段为解析后的JSON对象,包含WHOIS信息中的键值对。
|
|
1081
|
+
|
|
1082
|
+
这样你既可以获得最全的原始信息,也可以方便地处理结构化数据。
|
|
1083
|
+
"""
|
|
1084
|
+
params = {}
|
|
1085
|
+
body = None
|
|
1086
|
+
|
|
1087
|
+
if "query" == "query" and "domain" in kwargs:
|
|
1088
|
+
params["domain"] = kwargs["domain"]
|
|
1089
|
+
|
|
1090
|
+
if "query" == "query" and "format" in kwargs:
|
|
1091
|
+
params["format"] = kwargs["format"]
|
|
1092
|
+
|
|
1093
|
+
path = "/network/whois"
|
|
1094
|
+
|
|
1095
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1096
|
+
|
|
1097
|
+
def get_network_wxdomain(self, **kwargs):
|
|
1098
|
+
"""检查域名在微信中的访问状态
|
|
1099
|
+
准备在微信里推广你的网站?最好先检查一下域名是否被“拉黑”了。
|
|
1100
|
+
|
|
1101
|
+
## 功能概述
|
|
1102
|
+
这个接口可以帮你查询一个域名在微信内置浏览器中的访问状态,即是否被微信封禁。这对于做微信生态推广和营销的开发者来说至关重要。
|
|
1103
|
+
"""
|
|
1104
|
+
params = {}
|
|
1105
|
+
body = None
|
|
1106
|
+
|
|
1107
|
+
if "query" == "query" and "domain" in kwargs:
|
|
1108
|
+
params["domain"] = kwargs["domain"]
|
|
1109
|
+
|
|
1110
|
+
path = "/network/wxdomain"
|
|
1111
|
+
|
|
1112
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1113
|
+
|
|
1114
|
+
|
|
1115
|
+
class _PoemApi:
|
|
1116
|
+
def __init__(self, http: _HTTP):
|
|
1117
|
+
self._http = http
|
|
1118
|
+
|
|
1119
|
+
|
|
1120
|
+
def get_saying(self, **kwargs):
|
|
1121
|
+
"""随机获取一句诗词或名言
|
|
1122
|
+
想在你的应用里每天展示一句不一样的话,给用户一点小小的惊喜吗?这个“一言”接口就是为此而生。
|
|
1123
|
+
|
|
1124
|
+
## 功能概述
|
|
1125
|
+
每次调用,它都会从我们精心收集的、包含数千条诗词、动漫台词、名人名言的语料库中,随机返回一条。你可以用它来做网站首页的Slogan、应用的启动语,或者任何需要灵感点缀的地方。
|
|
1126
|
+
"""
|
|
1127
|
+
params = {}
|
|
1128
|
+
body = None
|
|
1129
|
+
|
|
1130
|
+
path = "/saying"
|
|
1131
|
+
|
|
1132
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1133
|
+
|
|
1134
|
+
|
|
1135
|
+
class _RandomApi:
|
|
1136
|
+
def __init__(self, http: _HTTP):
|
|
1137
|
+
self._http = http
|
|
1138
|
+
|
|
1139
|
+
|
|
1140
|
+
def get_answerbook_ask(self, **kwargs):
|
|
1141
|
+
"""获取答案之书的神秘答案 (GET)
|
|
1142
|
+
想要获得人生问题的神秘答案吗?答案之书API提供了一个神奇8球风格的问答服务,你可以提问并获得随机的神秘答案。
|
|
1143
|
+
|
|
1144
|
+
## 功能概述
|
|
1145
|
+
通过向答案之书提问,你将获得一个充满智慧(或许)的随机答案。这个API支持通过查询参数或POST请求体两种方式提问。
|
|
1146
|
+
|
|
1147
|
+
## 使用须知
|
|
1148
|
+
|
|
1149
|
+
> [!TIP]
|
|
1150
|
+
> **提问技巧**
|
|
1151
|
+
> - 提出明确的问题会获得更好的体验
|
|
1152
|
+
> - 问题不能为空
|
|
1153
|
+
> - 支持中文问题
|
|
1154
|
+
> - 答案具有随机性,仅供娱乐参考
|
|
1155
|
+
"""
|
|
1156
|
+
params = {}
|
|
1157
|
+
body = None
|
|
1158
|
+
|
|
1159
|
+
if "query" == "query" and "question" in kwargs:
|
|
1160
|
+
params["question"] = kwargs["question"]
|
|
1161
|
+
|
|
1162
|
+
path = "/answerbook/ask"
|
|
1163
|
+
|
|
1164
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1165
|
+
|
|
1166
|
+
def get_random_image(self, **kwargs):
|
|
1167
|
+
"""随机二次元、风景、动漫图片壁纸
|
|
1168
|
+
需要一张随机图片作为占位符或者背景吗?这个接口是你的不二之选。
|
|
1169
|
+
|
|
1170
|
+
## 功能概述
|
|
1171
|
+
这是一个非常简单的接口,它会从我们庞大的图库和精选外部图床中随机挑选一张图片,然后通过 302 重定向让你直接访问到它。这使得它可以非常方便地直接用在 HTML 的 `<img>` 标签中。
|
|
1172
|
+
|
|
1173
|
+
你可以通过 `/api/v1/random/image?category=acg&type=4k` 这样的请求获取由UapiPro服务器提供的图片,也可以通过 `/api/v1/random/image?category=ai_drawing` 获取由外部图床精选的图片。
|
|
1174
|
+
|
|
1175
|
+
如果你不提供任何 category 参数,程序会从所有图片(包括本地的和URL的)中随机抽取一张(**全局随机图片不包含ikun和AI绘画**)。
|
|
1176
|
+
|
|
1177
|
+
> [!TIP]
|
|
1178
|
+
> 如果你需要更精确地控制图片类型,请使用 `/image/random/{category}/{type}` 接口。
|
|
1179
|
+
|
|
1180
|
+
### 支持的主类别与子类别
|
|
1181
|
+
- **UapiPro服务器图片**
|
|
1182
|
+
- **furry**(福瑞)
|
|
1183
|
+
- z4k
|
|
1184
|
+
- szs8k
|
|
1185
|
+
- s4k
|
|
1186
|
+
- 4k
|
|
1187
|
+
- **bq**(表情包/趣图)
|
|
1188
|
+
- youshou
|
|
1189
|
+
- xiongmao
|
|
1190
|
+
- waiguoren
|
|
1191
|
+
- maomao
|
|
1192
|
+
- ikun
|
|
1193
|
+
- eciyuan
|
|
1194
|
+
- **acg**(二次元动漫)
|
|
1195
|
+
- pc
|
|
1196
|
+
- mb
|
|
1197
|
+
- **外部图床精选图片**
|
|
1198
|
+
- **ai_drawing**: AI绘画。
|
|
1199
|
+
- **general_anime**: 动漫图。
|
|
1200
|
+
- **landscape**: 风景图。
|
|
1201
|
+
- **mobile_wallpaper**: 手机壁纸。
|
|
1202
|
+
- **pc_wallpaper**: 电脑壁纸。
|
|
1203
|
+
- **混合动漫**
|
|
1204
|
+
- **anime**: 混合了UapiPro服务器的acg和外部图床的general_anime分类下的图片。
|
|
1205
|
+
|
|
1206
|
+
> [!NOTE]
|
|
1207
|
+
> 默认全局随机(未指定category参数)时,不会包含ikun和AI绘画(ai_drawing)类别的图片。
|
|
1208
|
+
|
|
1209
|
+
"""
|
|
1210
|
+
params = {}
|
|
1211
|
+
body = None
|
|
1212
|
+
|
|
1213
|
+
if "query" == "query" and "category" in kwargs:
|
|
1214
|
+
params["category"] = kwargs["category"]
|
|
1215
|
+
|
|
1216
|
+
if "query" == "query" and "type" in kwargs:
|
|
1217
|
+
params["type"] = kwargs["type"]
|
|
1218
|
+
|
|
1219
|
+
path = "/random/image"
|
|
1220
|
+
|
|
1221
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1222
|
+
|
|
1223
|
+
def get_random_string(self, **kwargs):
|
|
1224
|
+
"""生成高度可定制的随机字符串
|
|
1225
|
+
无论是需要生成一个安全的随机密码、一个唯一的Token,还是一个简单的随机ID,这个接口都能满足你。
|
|
1226
|
+
|
|
1227
|
+
## 功能概述
|
|
1228
|
+
你可以精确地控制生成字符串的长度和字符集类型,非常灵活。
|
|
1229
|
+
|
|
1230
|
+
## 使用须知
|
|
1231
|
+
|
|
1232
|
+
> [!TIP]
|
|
1233
|
+
> **字符集类型 `type` 详解**
|
|
1234
|
+
> 你可以通过 `type` 参数精确控制生成的字符集:
|
|
1235
|
+
> - **`numeric`**: 纯数字 (0-9)
|
|
1236
|
+
> - **`lower`**: 纯小写字母 (a-z)
|
|
1237
|
+
> - **`upper`**: 纯大写字母 (A-Z)
|
|
1238
|
+
> - **`alpha`**: 大小写字母 (a-zA-Z)
|
|
1239
|
+
> - **`alphanumeric`** (默认): 数字和大小写字母 (0-9a-zA-Z)
|
|
1240
|
+
> - **`hex`**: 十六进制字符 (0-9a-f)
|
|
1241
|
+
"""
|
|
1242
|
+
params = {}
|
|
1243
|
+
body = None
|
|
1244
|
+
|
|
1245
|
+
if "query" == "query" and "length" in kwargs:
|
|
1246
|
+
params["length"] = kwargs["length"]
|
|
1247
|
+
|
|
1248
|
+
if "query" == "query" and "type" in kwargs:
|
|
1249
|
+
params["type"] = kwargs["type"]
|
|
1250
|
+
|
|
1251
|
+
path = "/random/string"
|
|
1252
|
+
|
|
1253
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1254
|
+
|
|
1255
|
+
def post_answerbook_ask(self, **kwargs):
|
|
1256
|
+
"""获取答案之书的神秘答案 (POST)
|
|
1257
|
+
通过POST请求向答案之书提问并获得神秘答案。
|
|
1258
|
+
|
|
1259
|
+
## 功能概述
|
|
1260
|
+
与GET方式相同,但通过JSON请求体发送问题,适合在需要发送较长问题或希望避免URL编码问题的场景中使用。
|
|
1261
|
+
|
|
1262
|
+
## 请求体格式
|
|
1263
|
+
请求体必须是有效的JSON格式,包含question字段。
|
|
1264
|
+
"""
|
|
1265
|
+
params = {}
|
|
1266
|
+
body = None
|
|
1267
|
+
|
|
1268
|
+
path = "/answerbook/ask"
|
|
1269
|
+
|
|
1270
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1271
|
+
|
|
1272
|
+
|
|
1273
|
+
class _SocialApi:
|
|
1274
|
+
def __init__(self, http: _HTTP):
|
|
1275
|
+
self._http = http
|
|
1276
|
+
|
|
1277
|
+
|
|
1278
|
+
def get_github_repo(self, **kwargs):
|
|
1279
|
+
"""获取GitHub仓库信息
|
|
1280
|
+
需要快速获取一个GitHub仓库的核心信息?这个接口为你聚合了最有价值的数据,避免了多次调用GitHub官方API的麻烦,并且内置了缓存优化,速度更快、更稳定。
|
|
1281
|
+
|
|
1282
|
+
### 聚合高价值数据
|
|
1283
|
+
一次请求,即可获得以下信息:
|
|
1284
|
+
- **核心指标**: `star`, `fork`, `open_issues` 等关键统计数据。
|
|
1285
|
+
- **项目详情**: 描述、主页、分支、语言、话题标签、开源协议。
|
|
1286
|
+
- **参与者信息**: 获取协作者(`collaborators`)和推断的维护者(`maintainers`)列表,包括他们的公开邮箱(如果可用)。
|
|
1287
|
+
|
|
1288
|
+
> [!NOTE]
|
|
1289
|
+
> `collaborators` 字段在私有仓库或权限受限时可能为空。`maintainers` 是根据最新提交记录推断的,仅供参考。
|
|
1290
|
+
|
|
1291
|
+
### 性能与稳定性
|
|
1292
|
+
我们内置了多级缓存,有效避免触发GitHub的API速率限制。对于需要更高请求额度的用户,可以联系我们定制接口。
|
|
1293
|
+
"""
|
|
1294
|
+
params = {}
|
|
1295
|
+
body = None
|
|
1296
|
+
|
|
1297
|
+
if "query" == "query" and "repo" in kwargs:
|
|
1298
|
+
params["repo"] = kwargs["repo"]
|
|
1299
|
+
|
|
1300
|
+
path = "/github/repo"
|
|
1301
|
+
|
|
1302
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1303
|
+
|
|
1304
|
+
def get_social_bilibili_archives(self, **kwargs):
|
|
1305
|
+
"""获取Bilibili用户投稿列表
|
|
1306
|
+
想要获取UP主的所有投稿视频?或者想在你的应用里展示创作者的作品集?这个接口能帮你轻松实现。
|
|
1307
|
+
|
|
1308
|
+
## 功能概述
|
|
1309
|
+
通过用户的 `mid`(用户ID),你可以获取该UP主的投稿视频列表。接口支持关键词搜索、分页加载和多种排序方式,让你能够灵活地展示和分析创作者的内容。
|
|
1310
|
+
|
|
1311
|
+
## 参数说明
|
|
1312
|
+
- **`mid` (用户ID)**: B站用户的mid,必填参数。
|
|
1313
|
+
- **`keywords` (搜索关键词)**: 可选,用于在该UP主的投稿中搜索特定关键词。
|
|
1314
|
+
- **`orderby` (排序方式)**:
|
|
1315
|
+
- `pubdate`: 按最新发布排序(默认)
|
|
1316
|
+
- `views`: 按最多播放排序
|
|
1317
|
+
- **`ps` (每页条数)**: 默认20条。
|
|
1318
|
+
- **`pn` (页码)**: 默认1,用于分页。
|
|
1319
|
+
|
|
1320
|
+
## 响应体字段说明
|
|
1321
|
+
- **`total` (总稿件数)**: UP主的投稿总数。
|
|
1322
|
+
- **`page` (当前页码)**: 当前返回的页码。
|
|
1323
|
+
- **`size` (每页数量)**: 每页返回的视频数量。
|
|
1324
|
+
- **`videos` (视频列表)**: 包含当前页的所有视频信息:
|
|
1325
|
+
- `aid`: 视频的AV号
|
|
1326
|
+
- `bvid`: 视频的BV号
|
|
1327
|
+
- `title`: 视频标题
|
|
1328
|
+
- `cover`: 封面URL
|
|
1329
|
+
- `duration`: 时长(秒)
|
|
1330
|
+
- `play_count`: 播放量
|
|
1331
|
+
- `publish_time`: 发布时间戳
|
|
1332
|
+
- `create_time`: 创建时间戳
|
|
1333
|
+
- `state`: 视频状态
|
|
1334
|
+
- `is_ugc_pay`: 是否付费视频(0=免费,1=付费)
|
|
1335
|
+
- `is_interactive`: 是否为互动视频
|
|
1336
|
+
"""
|
|
1337
|
+
params = {}
|
|
1338
|
+
body = None
|
|
1339
|
+
|
|
1340
|
+
if "query" == "query" and "mid" in kwargs:
|
|
1341
|
+
params["mid"] = kwargs["mid"]
|
|
1342
|
+
|
|
1343
|
+
if "query" == "query" and "keywords" in kwargs:
|
|
1344
|
+
params["keywords"] = kwargs["keywords"]
|
|
1345
|
+
|
|
1346
|
+
if "query" == "query" and "orderby" in kwargs:
|
|
1347
|
+
params["orderby"] = kwargs["orderby"]
|
|
1348
|
+
|
|
1349
|
+
if "query" == "query" and "ps" in kwargs:
|
|
1350
|
+
params["ps"] = kwargs["ps"]
|
|
1351
|
+
|
|
1352
|
+
if "query" == "query" and "pn" in kwargs:
|
|
1353
|
+
params["pn"] = kwargs["pn"]
|
|
1354
|
+
|
|
1355
|
+
path = "/social/bilibili/archives"
|
|
1356
|
+
|
|
1357
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1358
|
+
|
|
1359
|
+
def get_social_bilibili_liveroom(self, **kwargs):
|
|
1360
|
+
"""获取Bilibili直播间信息
|
|
1361
|
+
想知道你喜欢的主播开播了吗?或者想在你的应用里集成B站直播间状态?这个接口能满足你。
|
|
1362
|
+
|
|
1363
|
+
## 功能概述
|
|
1364
|
+
这是一个智能接口,你可以用主播的 `mid` (用户ID) 或者直播间的 `room_id` (长号或短号)来查询。它会返回直播间的详细信息,包括是否在直播、标题、封面、人气、分区等。
|
|
1365
|
+
|
|
1366
|
+
## 响应体字段说明
|
|
1367
|
+
- **`live_status` (直播状态)**: `0` 代表未开播,`1` 代表直播中,`2` 代表轮播中。
|
|
1368
|
+
"""
|
|
1369
|
+
params = {}
|
|
1370
|
+
body = None
|
|
1371
|
+
|
|
1372
|
+
if "query" == "query" and "mid" in kwargs:
|
|
1373
|
+
params["mid"] = kwargs["mid"]
|
|
1374
|
+
|
|
1375
|
+
if "query" == "query" and "room_id" in kwargs:
|
|
1376
|
+
params["room_id"] = kwargs["room_id"]
|
|
1377
|
+
|
|
1378
|
+
path = "/social/bilibili/liveroom"
|
|
1379
|
+
|
|
1380
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1381
|
+
|
|
1382
|
+
def get_social_bilibili_replies(self, **kwargs):
|
|
1383
|
+
"""获取Bilibili视频评论
|
|
1384
|
+
想要分析B站视频的评论区?这个接口可以帮你轻松获取评论数据,包括热门评论和最新评论,还支持分页加载。
|
|
1385
|
+
|
|
1386
|
+
## 功能概述
|
|
1387
|
+
通过视频的 `oid`(通常就是视频的`aid`),你可以分页获取该视频的评论区内容。你可以指定排序方式和分页参数,来精确地获取你需要的数据。
|
|
1388
|
+
|
|
1389
|
+
## 参数说明
|
|
1390
|
+
- **`sort` (排序方式)**: `0`=按时间排序, `1`=按点赞数排序, `2`=按回复数排序。默认为按时间排序。
|
|
1391
|
+
|
|
1392
|
+
## 响应体字段说明
|
|
1393
|
+
- **`hots` (热门评论)**: 仅在请求第一页时,可能会返回热门评论列表。其结构与 `replies` 中的对象一致。
|
|
1394
|
+
- **`replies` (评论列表)**: 这是一个数组,包含了当前页的评论。其中:
|
|
1395
|
+
- `root`: 指向根评论的ID。如果评论本身就是根评论,则为 `0`。
|
|
1396
|
+
- `parent`: 指向该条回复所回复的上一级评论ID。如果评论是根评论,则为 `0`。
|
|
1397
|
+
"""
|
|
1398
|
+
params = {}
|
|
1399
|
+
body = None
|
|
1400
|
+
|
|
1401
|
+
if "query" == "query" and "oid" in kwargs:
|
|
1402
|
+
params["oid"] = kwargs["oid"]
|
|
1403
|
+
|
|
1404
|
+
if "query" == "query" and "sort" in kwargs:
|
|
1405
|
+
params["sort"] = kwargs["sort"]
|
|
1406
|
+
|
|
1407
|
+
if "query" == "query" and "ps" in kwargs:
|
|
1408
|
+
params["ps"] = kwargs["ps"]
|
|
1409
|
+
|
|
1410
|
+
if "query" == "query" and "pn" in kwargs:
|
|
1411
|
+
params["pn"] = kwargs["pn"]
|
|
1412
|
+
|
|
1413
|
+
path = "/social/bilibili/replies"
|
|
1414
|
+
|
|
1415
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1416
|
+
|
|
1417
|
+
def get_social_bilibili_userinfo(self, **kwargs):
|
|
1418
|
+
"""查询Bilibili用户信息
|
|
1419
|
+
想在你的应用里集成B站用户资料展示?这个接口可以轻松获取用户的公开信息。
|
|
1420
|
+
|
|
1421
|
+
## 功能概述
|
|
1422
|
+
通过一个用户的UID(那一串纯数字ID),你可以查询到该用户的昵称、性别、头像、等级、签名等一系列公开的基本信息。
|
|
1423
|
+
"""
|
|
1424
|
+
params = {}
|
|
1425
|
+
body = None
|
|
1426
|
+
|
|
1427
|
+
if "query" == "query" and "uid" in kwargs:
|
|
1428
|
+
params["uid"] = kwargs["uid"]
|
|
1429
|
+
|
|
1430
|
+
path = "/social/bilibili/userinfo"
|
|
1431
|
+
|
|
1432
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1433
|
+
|
|
1434
|
+
def get_social_bilibili_videoinfo(self, **kwargs):
|
|
1435
|
+
"""获取Bilibili视频详细信息
|
|
1436
|
+
想在你的应用里展示B站视频的详细信息吗?无论是封面、标题,还是播放量、UP主信息,这个接口都能一网打尽。
|
|
1437
|
+
|
|
1438
|
+
## 功能概述
|
|
1439
|
+
通过提供视频的 `aid` 或 `bvid`,你可以获取到该视频的完整元数据,包括多P信息、UP主资料、数据统计等。
|
|
1440
|
+
|
|
1441
|
+
## 响应体字段说明
|
|
1442
|
+
- **`copyright` (视频类型)**: `1` 代表原创,`2` 代表转载。
|
|
1443
|
+
- **`owner` (UP主信息)**: 包含 `mid`, `name`, `face` 等UP主的基本资料。
|
|
1444
|
+
- **`stat` (数据统计)**: 包含了播放、弹幕、评论、点赞、投币、收藏、分享等核心数据。
|
|
1445
|
+
- **`pages` (分P列表)**: 这是一个数组,包含了视频的每一个分P的信息,即使是单P视频也会有一个元素。
|
|
1446
|
+
"""
|
|
1447
|
+
params = {}
|
|
1448
|
+
body = None
|
|
1449
|
+
|
|
1450
|
+
if "query" == "query" and "aid" in kwargs:
|
|
1451
|
+
params["aid"] = kwargs["aid"]
|
|
1452
|
+
|
|
1453
|
+
if "query" == "query" and "bvid" in kwargs:
|
|
1454
|
+
params["bvid"] = kwargs["bvid"]
|
|
1455
|
+
|
|
1456
|
+
path = "/social/bilibili/videoinfo"
|
|
1457
|
+
|
|
1458
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1459
|
+
|
|
1460
|
+
def get_social_qq_groupinfo(self, **kwargs):
|
|
1461
|
+
"""获取QQ群名称、头像、简介
|
|
1462
|
+
想在你的应用里展示QQ群信息?这个接口让你轻松获取群名称、群头像、群简介等公开信息。它能帮你快速构建社群导航站、群聊推荐系统,或是为你的数据分析工具提供可靠的数据源。无论是展示群聊卡片、生成加群链接,还是进行社群数据统计,这个接口都能满足你的需求。
|
|
1463
|
+
|
|
1464
|
+
> [!VIP]
|
|
1465
|
+
> 本API目前处于**限时免费**阶段,我们鼓励开发者集成和测试。未来,它将转为付费API,为用户提供更稳定和强大的服务。
|
|
1466
|
+
|
|
1467
|
+
## 功能概述
|
|
1468
|
+
你只需要提供一个QQ群号(5-12位纯数字),接口就会返回该群的完整公开信息。我们会先验证群号的有效性,确保返回的数据准确可靠。接口的响应速度快,数据结构清晰,非常适合集成到各类应用场景中。
|
|
1469
|
+
|
|
1470
|
+
## 返回数据说明
|
|
1471
|
+
接口会返回以下QQ群的关键信息:
|
|
1472
|
+
- **群基础信息**: 包括群号、群名称,让你能够准确识别和展示群聊。
|
|
1473
|
+
- **视觉素材**: 提供群头像URL(标准100x100尺寸),可直接用于在你的界面中展示群聊图标。
|
|
1474
|
+
- **群介绍资料**: 包含群描述/简介和群标签,帮助用户了解群聊的主题和特色。
|
|
1475
|
+
- **便捷入口**: 返回加群链接(二维码URL),方便用户一键加入感兴趣的群聊。
|
|
1476
|
+
- **数据时效**: 提供最后更新时间戳,让你了解数据的新鲜度。
|
|
1477
|
+
|
|
1478
|
+
所有返回的数据都遵循标准的JSON格式,字段命名清晰,便于解析和使用。无论你是在做网页端、移动端还是后端服务,都能轻松集成。
|
|
1479
|
+
"""
|
|
1480
|
+
params = {}
|
|
1481
|
+
body = None
|
|
1482
|
+
|
|
1483
|
+
if "query" == "query" and "group_id" in kwargs:
|
|
1484
|
+
params["group_id"] = kwargs["group_id"]
|
|
1485
|
+
|
|
1486
|
+
path = "/social/qq/groupinfo"
|
|
1487
|
+
|
|
1488
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1489
|
+
|
|
1490
|
+
def get_social_qq_userinfo(self, **kwargs):
|
|
1491
|
+
"""独家获取QQ号头像、昵称
|
|
1492
|
+
这是一个功能丰富的QQ用户信息查询接口,能够获取QQ用户的详细公开信息。
|
|
1493
|
+
|
|
1494
|
+
> [!VIP]
|
|
1495
|
+
> 我们在近日优化了此接口,速度应该会更加快了。
|
|
1496
|
+
|
|
1497
|
+
## 功能概述
|
|
1498
|
+
通过QQ号查询用户的详细信息,包括基础资料、等级信息、VIP状态等。返回的信息丰富全面,适合用于用户画像分析、社交应用集成等场景。
|
|
1499
|
+
|
|
1500
|
+
## 数据字段说明
|
|
1501
|
+
- **基础信息**: 昵称、个性签名、头像、年龄、性别
|
|
1502
|
+
- **联系信息**: QQ邮箱、个性域名(QID)
|
|
1503
|
+
- **等级信息**: QQ等级、VIP状态和等级
|
|
1504
|
+
- **时间信息**: 注册时间、最后更新时间
|
|
1505
|
+
"""
|
|
1506
|
+
params = {}
|
|
1507
|
+
body = None
|
|
1508
|
+
|
|
1509
|
+
if "query" == "query" and "qq" in kwargs:
|
|
1510
|
+
params["qq"] = kwargs["qq"]
|
|
1511
|
+
|
|
1512
|
+
path = "/social/qq/userinfo"
|
|
1513
|
+
|
|
1514
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1515
|
+
|
|
1516
|
+
|
|
1517
|
+
class _StatusApi:
|
|
1518
|
+
def __init__(self, http: _HTTP):
|
|
1519
|
+
self._http = http
|
|
1520
|
+
|
|
1521
|
+
|
|
1522
|
+
def get_status_ratelimit(self, **kwargs):
|
|
1523
|
+
"""获取API限流器实时状态
|
|
1524
|
+
想了解我们API的当前负载情况吗?这个接口为你提供了服务的“心电图”。
|
|
1525
|
+
|
|
1526
|
+
## 功能概述
|
|
1527
|
+
此接口返回我们后端自适应限流器的实时状态。你可以看到当前并发请求数、并发上限、系统负载、请求接受/拒绝数等核心指标。这对于监控API健康状况和性能表现至关重要。
|
|
1528
|
+
|
|
1529
|
+
> [!IMPORTANT]
|
|
1530
|
+
> 此接口为管理接口,需要提供有效的管理员级别API密钥才能访问。
|
|
1531
|
+
|
|
1532
|
+
### 认证方式
|
|
1533
|
+
请在请求头中添加 `Authorization: Bearer <你的API密钥>`。
|
|
1534
|
+
"""
|
|
1535
|
+
params = {}
|
|
1536
|
+
body = None
|
|
1537
|
+
|
|
1538
|
+
if "header" == "query" and "Authorization" in kwargs:
|
|
1539
|
+
params["Authorization"] = kwargs["Authorization"]
|
|
1540
|
+
|
|
1541
|
+
path = "/status/ratelimit"
|
|
1542
|
+
|
|
1543
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1544
|
+
|
|
1545
|
+
def get_status_usage(self, **kwargs):
|
|
1546
|
+
"""获取API端点使用统计
|
|
1547
|
+
想知道哪个API接口最受欢迎吗?这个接口提供了详细的“账单”。
|
|
1548
|
+
|
|
1549
|
+
## 功能概述
|
|
1550
|
+
此接口用于获取每个API端点(Endpoint)的使用情况统计。你可以查询所有端点的列表,也可以通过 `path` 参数指定查询某一个特定端点。返回信息包括调用次数和平均处理时长
|
|
1551
|
+
"""
|
|
1552
|
+
params = {}
|
|
1553
|
+
body = None
|
|
1554
|
+
|
|
1555
|
+
if "query" == "query" and "path" in kwargs:
|
|
1556
|
+
params["path"] = kwargs["path"]
|
|
1557
|
+
|
|
1558
|
+
path = "/status/usage"
|
|
1559
|
+
|
|
1560
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1561
|
+
|
|
1562
|
+
|
|
1563
|
+
class _TextApi:
|
|
1564
|
+
def __init__(self, http: _HTTP):
|
|
1565
|
+
self._http = http
|
|
1566
|
+
|
|
1567
|
+
|
|
1568
|
+
def get_text_md_5(self, **kwargs):
|
|
1569
|
+
"""计算文本的MD5哈希值(GET)
|
|
1570
|
+
一个快速计算文本 MD5 哈希值的工具,适用于短文本且不关心参数暴露的场景。
|
|
1571
|
+
|
|
1572
|
+
## 功能概述
|
|
1573
|
+
通过GET请求的查询参数传入文本,返回其32位小写的MD5哈希值。
|
|
1574
|
+
|
|
1575
|
+
> [!NOTE]
|
|
1576
|
+
> 对于较长或敏感的文本,我们推荐使用本接口的 POST 版本,以避免URL长度限制和参数暴露问题。
|
|
1577
|
+
"""
|
|
1578
|
+
params = {}
|
|
1579
|
+
body = None
|
|
1580
|
+
|
|
1581
|
+
if "query" == "query" and "text" in kwargs:
|
|
1582
|
+
params["text"] = kwargs["text"]
|
|
1583
|
+
|
|
1584
|
+
path = "/text/md5"
|
|
1585
|
+
|
|
1586
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1587
|
+
|
|
1588
|
+
def post_text_aes_decrypt(self, **kwargs):
|
|
1589
|
+
"""使用AES算法解密文本
|
|
1590
|
+
收到了用AES加密的密文?把它、密钥和随机数(nonce)交给我们,就能还原出原始内容。
|
|
1591
|
+
|
|
1592
|
+
## 功能概述
|
|
1593
|
+
这是一个标准的AES解密接口。你需要提供经过Base64编码的密文、加密时使用的密钥和nonce(随机数,通常为16字节字符串)。
|
|
1594
|
+
|
|
1595
|
+
> [!IMPORTANT]
|
|
1596
|
+
> **关于密钥 `key`**
|
|
1597
|
+
> 我们支持 AES-128, AES-192, 和 AES-256。请确保你提供的密钥 `key` 的长度(字节数)正好是 **16**、**24** 或 **32**,以分别对应这三种加密强度。
|
|
1598
|
+
>
|
|
1599
|
+
> **关于随机数 `nonce`**
|
|
1600
|
+
> 通常为16字节字符串,需与加密时一致。
|
|
1601
|
+
"""
|
|
1602
|
+
params = {}
|
|
1603
|
+
body = None
|
|
1604
|
+
|
|
1605
|
+
path = "/text/aes/decrypt"
|
|
1606
|
+
|
|
1607
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1608
|
+
|
|
1609
|
+
def post_text_aes_encrypt(self, **kwargs):
|
|
1610
|
+
"""使用AES算法加密文本
|
|
1611
|
+
需要安全地传输或存储一些文本信息?AES加密是一个可靠的选择。
|
|
1612
|
+
|
|
1613
|
+
## 功能概述
|
|
1614
|
+
这是一个标准的AES加密接口。你提供需要加密的明文和密钥,我们返回经过Base64编码的密文。
|
|
1615
|
+
|
|
1616
|
+
> [!IMPORTANT]
|
|
1617
|
+
> **关于密钥 `key`**
|
|
1618
|
+
> 我们支持 AES-128, AES-192, 和 AES-256。请确保你提供的密钥 `key` 的长度(字节数)正好是 **16**、**24** 或 **32**,以分别对应这三种加密强度。
|
|
1619
|
+
"""
|
|
1620
|
+
params = {}
|
|
1621
|
+
body = None
|
|
1622
|
+
|
|
1623
|
+
path = "/text/aes/encrypt"
|
|
1624
|
+
|
|
1625
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1626
|
+
|
|
1627
|
+
def post_text_analyze(self, **kwargs):
|
|
1628
|
+
"""多维度分析文本内容
|
|
1629
|
+
想知道一篇文章有多少字、多少个词、或者多少行?这个接口可以帮你快速统计。
|
|
1630
|
+
|
|
1631
|
+
## 功能概述
|
|
1632
|
+
你提供一段文本,我们会从多个维度进行分析,并返回其字符数、词数、句子数、段落数和行数。这对于文本编辑、内容管理等场景非常有用。
|
|
1633
|
+
"""
|
|
1634
|
+
params = {}
|
|
1635
|
+
body = None
|
|
1636
|
+
|
|
1637
|
+
path = "/text/analyze"
|
|
1638
|
+
|
|
1639
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1640
|
+
|
|
1641
|
+
def post_text_base_64_decode(self, **kwargs):
|
|
1642
|
+
"""解码Base64编码的文本
|
|
1643
|
+
这是一个简单实用的 Base64 解码工具。
|
|
1644
|
+
|
|
1645
|
+
## 功能概述
|
|
1646
|
+
你提供一个 Base64 编码的字符串,我们帮你解码成原始的 UTF-8 文本。
|
|
1647
|
+
"""
|
|
1648
|
+
params = {}
|
|
1649
|
+
body = None
|
|
1650
|
+
|
|
1651
|
+
path = "/text/base64/decode"
|
|
1652
|
+
|
|
1653
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1654
|
+
|
|
1655
|
+
def post_text_base_64_encode(self, **kwargs):
|
|
1656
|
+
"""将文本进行Base64编码
|
|
1657
|
+
这是一个简单实用的 Base64 编码工具。
|
|
1658
|
+
|
|
1659
|
+
## 功能概述
|
|
1660
|
+
你提供一段原始文本,我们帮你转换成 Base64 编码的字符串。
|
|
1661
|
+
"""
|
|
1662
|
+
params = {}
|
|
1663
|
+
body = None
|
|
1664
|
+
|
|
1665
|
+
path = "/text/base64/encode"
|
|
1666
|
+
|
|
1667
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1668
|
+
|
|
1669
|
+
def post_text_md_5(self, **kwargs):
|
|
1670
|
+
"""计算文本的MD5哈希值 (POST)
|
|
1671
|
+
一个用于计算文本 MD5 哈希值的标准工具,推荐使用此版本。
|
|
1672
|
+
|
|
1673
|
+
## 功能概述
|
|
1674
|
+
通过POST请求的表单体传入文本,返回其32位小写的MD5哈希值。相比GET版本,此方法更适合处理较长或包含敏感信息的文本。
|
|
1675
|
+
"""
|
|
1676
|
+
params = {}
|
|
1677
|
+
body = None
|
|
1678
|
+
|
|
1679
|
+
path = "/text/md5"
|
|
1680
|
+
|
|
1681
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1682
|
+
|
|
1683
|
+
def post_text_md_5_verify(self, **kwargs):
|
|
1684
|
+
"""校验MD5哈希值
|
|
1685
|
+
下载了一个文件,想确认它在传输过程中有没有损坏?校验MD5值是最常用的方法。
|
|
1686
|
+
|
|
1687
|
+
## 功能概述
|
|
1688
|
+
你提供原始文本和一个MD5哈希值,我们帮你计算文本的哈希,并与你提供的哈希进行比对,告诉你它们是否匹配。这在文件完整性校验等场景下非常有用。
|
|
1689
|
+
"""
|
|
1690
|
+
params = {}
|
|
1691
|
+
body = None
|
|
1692
|
+
|
|
1693
|
+
path = "/text/md5/verify"
|
|
1694
|
+
|
|
1695
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1696
|
+
|
|
1697
|
+
|
|
1698
|
+
class _TranslateApi:
|
|
1699
|
+
def __init__(self, http: _HTTP):
|
|
1700
|
+
self._http = http
|
|
1701
|
+
|
|
1702
|
+
|
|
1703
|
+
def get_ai_translate_languages(self, **kwargs):
|
|
1704
|
+
"""获取AI翻译支持的语言和配置
|
|
1705
|
+
获取AI智能翻译服务支持的完整语言列表、翻译风格选项、上下文场景选项以及性能指标信息。这个接口对于需要在前端动态展示翻译配置选项的应用非常有用,它会返回当前AI翻译服务所支持的所有语言代码、原生名称、翻译风格说明、上下文场景描述,以及服务的性能特征和限制信息。通过此接口,开发者可以构建用户友好的翻译界面,让用户选择合适的翻译参数。
|
|
1706
|
+
"""
|
|
1707
|
+
params = {}
|
|
1708
|
+
body = None
|
|
1709
|
+
|
|
1710
|
+
path = "/ai/translate/languages"
|
|
1711
|
+
|
|
1712
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1713
|
+
|
|
1714
|
+
def post_ai_translate(self, **kwargs):
|
|
1715
|
+
"""AI智能翻译
|
|
1716
|
+
这是一个商业级的AI智能翻译服务,采用最新的神经网络翻译技术和大语言模型,提供远超传统机器翻译的质量。它不仅能够智能处理单个文本翻译,还支持高效的批量文本翻译,并且具备上下文感知、风格适配、格式保留等高级功能。
|
|
1717
|
+
|
|
1718
|
+
> [!VIP]
|
|
1719
|
+
> 本API目前处于**限时免费**阶段,我们鼓励开发者深度集成和测试。未来,它将转为付费API,为用户提供更稳定、更智能的翻译服务。
|
|
1720
|
+
|
|
1721
|
+
## 功能概述
|
|
1722
|
+
|
|
1723
|
+
- **智能双模式**: 支持单个文本翻译和批量文本翻译的统一接口设计,自动识别请求类型并提供相应的翻译服务。系统会根据输入自动判断是处理单条文本还是批量文本,无需使用不同的接口。
|
|
1724
|
+
- **多风格适配**: 提供随意口语化、专业商务、学术正式、文学艺术四种翻译风格,能够根据不同场景需求调整翻译的语言风格和表达方式。
|
|
1725
|
+
- **上下文感知**: 支持通用、商务、技术、医疗、法律、市场营销、娱乐、教育、新闻等九种专业领域的上下文翻译,确保术语准确性和表达地道性。
|
|
1726
|
+
- **高质量保证**: 内置质量评估系统,对每次翻译结果进行流畅度、准确度、完整性评分,并提供置信度分数和替代翻译建议。
|
|
1727
|
+
- **智能解释**: 提供关键词组翻译注释、文化背景说明和语法结构分析,帮助用户理解翻译逻辑和文化差异。
|
|
1728
|
+
- **高效批量**: 批量翻译支持最多50条文本,总计10万字符,配备智能并发控制(1-10并发)和失败重试机制。
|
|
1729
|
+
- **快速模式**: 提供快速模式选项,在保证95%+准确率的前提下,响应时间缩短至800ms内,适合实时翻译和聊天应用。
|
|
1730
|
+
- **格式保留**: 智能识别并保持原文的格式结构,包括换行、缩进、特殊符号等,确保翻译后的文本保持良好的可读性。
|
|
1731
|
+
"""
|
|
1732
|
+
params = {}
|
|
1733
|
+
body = None
|
|
1734
|
+
|
|
1735
|
+
if "query" == "query" and "target_lang" in kwargs:
|
|
1736
|
+
params["target_lang"] = kwargs["target_lang"]
|
|
1737
|
+
|
|
1738
|
+
path = "/ai/translate"
|
|
1739
|
+
|
|
1740
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1741
|
+
|
|
1742
|
+
def post_translate_text(self, **kwargs):
|
|
1743
|
+
"""多语言文本翻译
|
|
1744
|
+
需要跨越语言的鸿沟进行交流?这个翻译接口是你可靠的'同声传译'。
|
|
1745
|
+
|
|
1746
|
+
## 功能概述
|
|
1747
|
+
你可以将一段源语言文本(我们能自动检测源语言)翻译成你指定的任何目标语言。无论是中译英、日译法,都不在话下。
|
|
1748
|
+
|
|
1749
|
+
## 支持的语言
|
|
1750
|
+
我们支持超过100种语言的互译,包括但不限于:中文(简体/繁体)、英语、日语、韩语、法语、德语、西班牙语、俄语、阿拉伯语等主流语言,以及各种小语种。详见下方参数列表。
|
|
1751
|
+
"""
|
|
1752
|
+
params = {}
|
|
1753
|
+
body = None
|
|
1754
|
+
|
|
1755
|
+
if "query" == "query" and "to_lang" in kwargs:
|
|
1756
|
+
params["to_lang"] = kwargs["to_lang"]
|
|
1757
|
+
|
|
1758
|
+
path = "/translate/text"
|
|
1759
|
+
|
|
1760
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1761
|
+
|
|
1762
|
+
|
|
1763
|
+
class _WebparseApi:
|
|
1764
|
+
def __init__(self, http: _HTTP):
|
|
1765
|
+
self._http = http
|
|
1766
|
+
|
|
1767
|
+
|
|
1768
|
+
def get_web_tomarkdown_async_status(self, **kwargs):
|
|
1769
|
+
"""查询网页转换任务状态和结果
|
|
1770
|
+
提交了URL转Markdown任务后,想知道处理进度和结果?这个接口可以帮你实时追踪。
|
|
1771
|
+
|
|
1772
|
+
## 功能概述
|
|
1773
|
+
|
|
1774
|
+
通过之前提交任务时获得的任务ID,你可以查询该任务的当前状态、处理进度以及最终结果。任务结果会在缓存中保存30分钟,期间可以重复查询,非常方便。
|
|
1775
|
+
|
|
1776
|
+
任务有五种状态:等待处理(pending)时进度为0%;处理中(processing)时进度在10-90%之间;已完成(completed)时进度为100%并返回Markdown内容;失败(failed)时会返回错误信息;超时(timeout)表示任务处理时间超过60秒已被取消。建议采用指数退避策略进行轮询,初始延迟1秒,每次延迟增加20%,最大延迟5秒。当状态为已完成、失败或超时时停止轮询。
|
|
1777
|
+
|
|
1778
|
+
系统会自动管理任务生命周期,单个任务最长处理时间为60秒,任务结果保存30分钟后自动清理,每5分钟清理一次过期任务。
|
|
1779
|
+
|
|
1780
|
+
## 任务状态说明
|
|
1781
|
+
|
|
1782
|
+
| 状态 | 说明 | 进度 | 轮询建议 |
|
|
1783
|
+
|------|------|------|----------|
|
|
1784
|
+
| `pending` | 等待处理 | 0% | 立即开始轮询 |
|
|
1785
|
+
| `processing` | 处理中 | 10-90% | 每2-5秒轮询一次 |
|
|
1786
|
+
| `completed` | 已完成 | 100% | 停止轮询,获取结果 |
|
|
1787
|
+
| `failed` | 失败 | 100% | 停止轮询,查看错误信息 |
|
|
1788
|
+
| `timeout` | 超时 | 100% | 停止轮询,任务已取消 |
|
|
1789
|
+
"""
|
|
1790
|
+
params = {}
|
|
1791
|
+
body = None
|
|
1792
|
+
|
|
1793
|
+
if "path" == "query" and "task_id" in kwargs:
|
|
1794
|
+
params["task_id"] = kwargs["task_id"]
|
|
1795
|
+
|
|
1796
|
+
path = "/web/tomarkdown/async/{task_id}"
|
|
1797
|
+
|
|
1798
|
+
if "task_id" in kwargs:
|
|
1799
|
+
path = path.replace("{" + "task_id" + "}", str(kwargs["task_id"]))
|
|
1800
|
+
|
|
1801
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1802
|
+
|
|
1803
|
+
def get_webparse_extractimages(self, **kwargs):
|
|
1804
|
+
"""提取网页中的所有图片
|
|
1805
|
+
想一次性“打包”一个网页上的所有图片吗?这个接口可以帮你实现。
|
|
1806
|
+
|
|
1807
|
+
## 功能概述
|
|
1808
|
+
你提供一个网页的URL,我们会访问该页面,解析其HTML内容,并提取出所有 `<img>` 标签中的图片链接,然后将这些链接列表返回给你。非常适合用于制作图片采集器或素材下载工具。
|
|
1809
|
+
"""
|
|
1810
|
+
params = {}
|
|
1811
|
+
body = None
|
|
1812
|
+
|
|
1813
|
+
if "query" == "query" and "url" in kwargs:
|
|
1814
|
+
params["url"] = kwargs["url"]
|
|
1815
|
+
|
|
1816
|
+
path = "/webparse/extractimages"
|
|
1817
|
+
|
|
1818
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1819
|
+
|
|
1820
|
+
def get_webparse_metadata(self, **kwargs):
|
|
1821
|
+
"""抓取并解析网页的元数据
|
|
1822
|
+
当你在应用中需要展示一个链接的预览时(就像微信或Telegram里那样),这个接口能帮你轻松获取所需信息。
|
|
1823
|
+
|
|
1824
|
+
## 功能概述
|
|
1825
|
+
你提供一个网页的URL,我们会抓取并解析它的 `<head>` 部分,提取出关键的元数据(Metadata),如页面标题(Title)、描述(Description)、关键词(Keywords)以及网站图标(Favicon)等。
|
|
1826
|
+
"""
|
|
1827
|
+
params = {}
|
|
1828
|
+
body = None
|
|
1829
|
+
|
|
1830
|
+
if "query" == "query" and "url" in kwargs:
|
|
1831
|
+
params["url"] = kwargs["url"]
|
|
1832
|
+
|
|
1833
|
+
path = "/webparse/metadata"
|
|
1834
|
+
|
|
1835
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1836
|
+
|
|
1837
|
+
def post_web_tomarkdown_async(self, **kwargs):
|
|
1838
|
+
"""深度抓取网页转Markdown
|
|
1839
|
+
想要将复杂的网页转换为结构清晰的Markdown?这个接口采用异步处理模式,特别适合处理大型网页、复杂网站或需要长时间处理的转换任务。
|
|
1840
|
+
|
|
1841
|
+
## 功能概述
|
|
1842
|
+
|
|
1843
|
+
> [!VIP]
|
|
1844
|
+
>本API目前处于**限时免费**阶段,我们鼓励开发者集成和测试。未来,它将转为付费API,为用户提供更稳定和强大的服务。
|
|
1845
|
+
|
|
1846
|
+
UAPI Pro平台推出的异步网页转Markdown API能够将任意网页URL转换为结构清晰、格式优美的Markdown文本。提交任务后立即返回任务ID,不会阻塞客户端等待。您可以通过任务ID实时查询转换进度和处理状态,支持长达60秒的处理时间,轻松应对大型网站、需要JS渲染的单页应用等复杂页面。任务结果会缓存30分钟,期间可重复查询,过期任务自动清理无需手动管理。
|
|
1847
|
+
|
|
1848
|
+
此API采用先进算法,自动识别并抓取网页主体内容,精准剔除广告、导航栏、页眉页脚等无关元素。完美保留原文的格式,包括标题、列表、代码块、表格、引用、图片等,并输出为兼容性强的GitHub Flavored Markdown (GFM) 格式。同时会自动解析并提取文章标题、作者、发布日期、站点名称等关键元数据,并将其格式化为标准的YAML Front Matter,方便后续处理和CMS集成。
|
|
1849
|
+
|
|
1850
|
+
## 使用流程
|
|
1851
|
+
|
|
1852
|
+
调用本接口提交URL转换任务后,会立即获得一个唯一的任务ID。随后使用任务ID调用查询接口,获取任务状态和进度。任务完成后,从查询接口的响应中获取Markdown内容。
|
|
1853
|
+
"""
|
|
1854
|
+
params = {}
|
|
1855
|
+
body = None
|
|
1856
|
+
|
|
1857
|
+
if "query" == "query" and "url" in kwargs:
|
|
1858
|
+
params["url"] = kwargs["url"]
|
|
1859
|
+
|
|
1860
|
+
path = "/web/tomarkdown/async"
|
|
1861
|
+
|
|
1862
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1863
|
+
|
|
1864
|
+
|
|
1865
|
+
class _MinGanCiShiBieApi:
|
|
1866
|
+
def __init__(self, http: _HTTP):
|
|
1867
|
+
self._http = http
|
|
1868
|
+
|
|
1869
|
+
|
|
1870
|
+
def get_sensitive_word_analyze_query(self, **kwargs):
|
|
1871
|
+
"""查询参数分析
|
|
1872
|
+
通过URL查询参数分析单个关键词,便于GET请求调用。
|
|
1873
|
+
"""
|
|
1874
|
+
params = {}
|
|
1875
|
+
body = None
|
|
1876
|
+
|
|
1877
|
+
if "query" == "query" and "keyword" in kwargs:
|
|
1878
|
+
params["keyword"] = kwargs["keyword"]
|
|
1879
|
+
|
|
1880
|
+
path = "/sensitive-word/analyze-query"
|
|
1881
|
+
|
|
1882
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1883
|
+
|
|
1884
|
+
def post_sensitive_word_analyze(self, **kwargs):
|
|
1885
|
+
"""分析敏感词
|
|
1886
|
+
分析单个或多个关键词的敏感程度,返回详细的风险评分和分析结果。
|
|
1887
|
+
|
|
1888
|
+
> [!VIP]
|
|
1889
|
+
> 本API基于先进的分析模型,提供三级缓存策略和并发处理能力。
|
|
1890
|
+
|
|
1891
|
+
## 功能概述
|
|
1892
|
+
|
|
1893
|
+
- **模型驱动**: 使用先进的分析模型进行语义分析。
|
|
1894
|
+
- **高性能**: 采用三级缓存策略(持久化存储 → 统一缓存 → 模型分析),确保高频请求的响应速度。
|
|
1895
|
+
- **并发支持**: 支持批量并发处理,单次最多可分析100个关键词。
|
|
1896
|
+
- **详细评分**: 提供色情、辱骂、暴力三个维度的详细风险评分。
|
|
1897
|
+
- **变体识别**: 能够自动识别关键词的常见变体形式,如拼音、缩写等。
|
|
1898
|
+
|
|
1899
|
+
## 风险评分说明
|
|
1900
|
+
|
|
1901
|
+
返回的 `s` 字段包含三个维度的风险评分,范围均为0.0至1.0:
|
|
1902
|
+
|
|
1903
|
+
- **s[0] - 色情风险**: 评估内容涉及色情信息的程度。
|
|
1904
|
+
- **s[1] - 辱骂/仇恨言论风险**: 评估内容是否包含侮辱性或仇恨性言论。
|
|
1905
|
+
- **s[2] - 暴力/威胁风险**: 评估内容是否涉及暴力或威胁信息。
|
|
1906
|
+
|
|
1907
|
+
风险等级可参考:0.0-0.3为低风险,0.3-0.7为中等风险,0.7-1.0为高风险。
|
|
1908
|
+
|
|
1909
|
+
## 响应字段说明
|
|
1910
|
+
|
|
1911
|
+
| 字段 | 类型 | 说明 |
|
|
1912
|
+
|------|------|------|
|
|
1913
|
+
| `results` | array | 分析结果对象的数组。 |
|
|
1914
|
+
| `results[].k` | string | 您在请求中提供的原始关键词。 |
|
|
1915
|
+
| `results[].r` | string | 模型对该关键词的分析过程和判断理由的简要说明。 |
|
|
1916
|
+
| `results[].s` | array[float] | 一个包含三个浮点数的数组,分别代表[色情, 辱骂, 暴力]三个维度的风险评分。分值范围从0.0到1.0,越高代表风险越大。 |
|
|
1917
|
+
| `results[].v` | array[string] | 模型识别出的该关键词的常见变体形式,例如拼音、谐音、缩写等。 |
|
|
1918
|
+
| `results[].t` | array[string] | 根据分析结果为关键词附加的分类标签,便于进行程序化处理和过滤。 |
|
|
1919
|
+
| `results[].d` | string | 对整体分析结果的一句简短总结,适合直接展示给用户或记录在日志中。 |
|
|
1920
|
+
| `total` | integer | 本次请求成功分析的关键词总数。 |
|
|
1921
|
+
|
|
1922
|
+
"""
|
|
1923
|
+
params = {}
|
|
1924
|
+
body = None
|
|
1925
|
+
|
|
1926
|
+
path = "/sensitive-word/analyze"
|
|
1927
|
+
|
|
1928
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1929
|
+
|
|
1930
|
+
def post_sensitive_word_quick_check(self, **kwargs):
|
|
1931
|
+
"""敏感词检测(快速)
|
|
1932
|
+
在你的社区或应用中,需要来过滤掉不和谐的声音吗?这个接口可以助你一臂之力。
|
|
1933
|
+
|
|
1934
|
+
## 功能概述
|
|
1935
|
+
|
|
1936
|
+
我们对敏感词检测接口进行了大幅升级,现在采用高效的 **Aho-Corasick 算法**,实现了多模式字符串匹配。这意味着你不再需要手动编写复杂的正则表达式,系统会自动高效地检测出文本中的所有敏感词。
|
|
1937
|
+
|
|
1938
|
+
### 主要特性
|
|
1939
|
+
|
|
1940
|
+
- **高性能算法**:基于 Aho-Corasick 算法,单次扫描即可检测多个敏感词模式
|
|
1941
|
+
- **简繁体支持**:自动识别和处理简体中文、繁体中文内容
|
|
1942
|
+
- **多模匹配**:无需编写正则表达式,系统内置智能匹配逻辑
|
|
1943
|
+
- **快速响应**:相比传统方法,检测速度显著提升
|
|
1944
|
+
|
|
1945
|
+
无论是论坛、社交平台还是评论系统,这个接口都能帮你快速构建内容审核功能。
|
|
1946
|
+
"""
|
|
1947
|
+
params = {}
|
|
1948
|
+
body = None
|
|
1949
|
+
|
|
1950
|
+
path = "/text/profanitycheck"
|
|
1951
|
+
|
|
1952
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
1953
|
+
|
|
1954
|
+
|
|
1955
|
+
class _ZhiNengSouSuoApi:
|
|
1956
|
+
def __init__(self, http: _HTTP):
|
|
1957
|
+
self._http = http
|
|
1958
|
+
|
|
1959
|
+
|
|
1960
|
+
def get_search_engines(self, **kwargs):
|
|
1961
|
+
"""获取搜索引擎信息
|
|
1962
|
+
获取 UAPI Pro Search 引擎的详细信息,包括支持的功能特性、参数限制和使用说明。
|
|
1963
|
+
|
|
1964
|
+
## 功能概述
|
|
1965
|
+
|
|
1966
|
+
此接口返回搜索引擎的完整配置信息,你可以用它来:
|
|
1967
|
+
- 了解搜索引擎支持哪些功能(如站内搜索、文件类型过滤等)
|
|
1968
|
+
- 获取参数的默认值和限制范围
|
|
1969
|
+
- 查看当前引擎版本和可用状态
|
|
1970
|
+
|
|
1971
|
+
适合在应用初始化时调用,或用于动态配置搜索界面。
|
|
1972
|
+
|
|
1973
|
+
"""
|
|
1974
|
+
params = {}
|
|
1975
|
+
body = None
|
|
1976
|
+
|
|
1977
|
+
path = "/search/engines"
|
|
1978
|
+
|
|
1979
|
+
return self._http.request("GET", path, params=params, json=body)
|
|
1980
|
+
|
|
1981
|
+
def post_search_aggregate(self, **kwargs):
|
|
1982
|
+
"""智能搜索
|
|
1983
|
+
想在你的应用中集成搜索功能?我们提供了一个强大的搜索引擎API,让你可以轻松实现实时网页搜索。
|
|
1984
|
+
|
|
1985
|
+
## 功能概述
|
|
1986
|
+
|
|
1987
|
+
UAPI Pro Search 是自研的智能搜索引擎,采用机器学习算法对搜索结果进行智能排序,确保最相关的内容排在前面。你可以用它搜索任何关键词,也可以限定在特定网站或特定文件类型中搜索。
|
|
1988
|
+
|
|
1989
|
+
- **实时网页搜索**: 毫秒级响应,快速返回搜索结果
|
|
1990
|
+
- **智能排序**: 采用机器学习回归排序算法,结果更精准
|
|
1991
|
+
- **站内搜索**: 支持 `site:` 操作符,在指定网站内搜索
|
|
1992
|
+
- **文件类型过滤**: 支持 `filetype:` 操作符,快速找到 PDF、Word 等特定格式文件
|
|
1993
|
+
|
|
1994
|
+
> [!VIP]
|
|
1995
|
+
> 本API目前处于**限时免费**阶段,我们鼓励开发者集成和测试。未来,它将转为付费API,为用户提供更稳定和强大的服务。
|
|
1996
|
+
|
|
1997
|
+
"""
|
|
1998
|
+
params = {}
|
|
1999
|
+
body = None
|
|
2000
|
+
|
|
2001
|
+
path = "/search/aggregate"
|
|
2002
|
+
|
|
2003
|
+
return self._http.request("POST", path, params=params, json=body)
|
|
2004
|
+
|
|
2005
|
+
|