uapi-sdk-python 0.1.15__tar.gz → 0.1.16__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uapi-sdk-python
3
- Version: 0.1.15
3
+ Version: 0.1.16
4
4
  Summary: Idiomatic UAPI SDK for Python
5
5
  Author-email: UAPI <dev@uapis.cn>
6
6
  Requires-Python: >=3.9
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "uapi-sdk-python"
7
- version = "0.1.15"
7
+ version = "0.1.16"
8
8
  description = "Idiomatic UAPI SDK for Python"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -464,7 +464,9 @@ class _GameApi:
464
464
  想在加入服务器前看看有多少人在线?或者检查一下服务器开没开?用这个接口就对了!
465
465
 
466
466
  ## 功能概述
467
- 你可以通过提供服务器地址(域名或IP),来获取一个 Minecraft Java 版服务器的实时状态。返回信息非常丰富,包括服务器是否在线、当前玩家数、最大玩家数、服务器版本、MOTD(每日消息)以及服务器图标等。
467
+ 你可以通过提供服务器地址(域名或IP),来获取一个 Minecraft Java 版服务器的实时状态。返回信息包括服务器是否在线、当前玩家数、最大玩家数、服务器版本、MOTD(每日消息)以及服务器图标等。
468
+
469
+ 如果服务器返回当前在线玩家列表,响应里还会带上 `online_players` 字段。这个字段可能省略,部分服务器返回的列表也可能不完整。
468
470
  """
469
471
  params = {}
470
472
  body = {}
@@ -533,8 +535,8 @@ class _GameApi:
533
535
  ## 使用须知
534
536
 
535
537
  > [!IMPORTANT]
536
- > **API Key 安全**
537
- > 此接口需要一个 Steam Web API Key。我们强烈建议由后端统一配置和调用,以避免在客户端泄露。当然,你也可以通过 `key` 查询参数临时提供一个Key来覆盖后端配置。
538
+ > **访问凭证说明**
539
+ > 这个接口可以传 `key` 使用您自己的访问凭证。如果您选择传入,请注意妥善保管,不要把它写进公开的前端代码中。
538
540
 
539
541
  在处理响应时,请注意以下数字代码的含义:
540
542
  - **`personastate` (用户状态)**: 0-离线, 1-在线, 2-忙碌, 3-离开, 4-打盹, 5-想交易, 6-想玩。
@@ -578,7 +580,7 @@ class _ImageApi:
578
580
 
579
581
  def get_avatar_gravatar(self, **kwargs):
580
582
  r"""获取Gravatar头像
581
- 提供一个超高速、高可用的Gravatar头像代理服务。内置了强大的ETag条件缓存,确保用户在更新Gravatar头像后能几乎立刻看到变化,同时最大化地利用缓存。
583
+ 提供稳定、易用的头像获取能力,适合在网页或应用中直接展示头像。
582
584
  """
583
585
  params = {}
584
586
  body = {}
@@ -614,18 +616,32 @@ class _ImageApi:
614
616
  )
615
617
 
616
618
  def get_image_bing_daily(self, **kwargs):
617
- r"""必应壁纸
618
- 每天都想换张新壁纸?让必应的美图点亮你的一天吧!
619
+ r"""获取必应每日壁纸
620
+ 这个接口可以获取最新或指定日期的必应壁纸。默认直接返回图片,也可以传 `format=json` 获取元数据,或者传 `format=redirect` 直接跳转到最终图片地址。
619
621
 
620
622
  ## 功能概述
621
- 这个接口会获取 Bing 搜索引擎当天全球同步的每日壁纸,并直接以图片形式返回。你可以用它来做应用的启动页、网站背景,或者任何需要每日更新精美图片的地方。
623
+ - 不传参数时,默认返回当天壁纸图片二进制
624
+ - 可以传 `date` 查询指定日期的壁纸
625
+ - 可以传 `resolution` 选择 `4k` 或 `1080`
626
+ - 可以传 `format` 控制返回图片、JSON 或 302 跳转
627
+ - 当传 `format=json` 时,返回的是扁平 JSON 对象,里面会包含标题、副标题、说明文案、版权信息、问答信息和图片地址等字段
622
628
 
623
- ## 使用须知
624
- 此接口成功时直接返回图片二进制数据,通常是 `image/jpeg`,不是 JSON 格式。接入时请按图片响应来处理。
629
+ ## 参数说明
630
+ `resolution` 默认是 `4k`。
631
+ `format` 默认是 `image`。
625
632
  """
626
633
  params = {}
627
634
  body = {}
628
635
 
636
+ if "query" == "query" and "date" in kwargs:
637
+ params["date"] = kwargs["date"]
638
+
639
+ if "query" == "query" and "resolution" in kwargs:
640
+ params["resolution"] = kwargs["resolution"]
641
+
642
+ if "query" == "query" and "format" in kwargs:
643
+ params["format"] = kwargs["format"]
644
+
629
645
  if "_t" in kwargs:
630
646
  params["_t"] = kwargs["_t"]
631
647
  disable_cache = kwargs.get("disable_cache")
@@ -641,6 +657,52 @@ class _ImageApi:
641
657
  disable_cache=_coerce_optional_bool(disable_cache),
642
658
  )
643
659
 
660
+ def get_image_bing_daily_history(self, **kwargs):
661
+ r"""查询必应壁纸历史
662
+ 这个接口用于查询必应壁纸历史列表,也可以按日期精确查询某一天。默认按时间倒序返回 JSON。
663
+
664
+ ## 功能概述
665
+ - 可以传 `date` 精确查询某一天,命中后只返回 1 条数据
666
+ - 不传 `date` 时,按时间倒序分页返回历史列表
667
+ - 可以传 `resolution` 让 `image_url` 直接对应 `4k` 或 `1080`
668
+ - 可以传 `page` 和 `page_size` 控制分页
669
+ - 每条记录都是扁平 JSON 对象,里面会包含标题、副标题、说明文案、版权信息、问答信息和图片地址等字段
670
+
671
+ ## 参数说明
672
+ `resolution` 默认是 `4k`。
673
+ `page` 默认是 `1`,`page_size` 默认是 `30`,最大是 `100`。
674
+ 当传了 `date` 以后,`page` 和 `page_size` 不生效。
675
+ """
676
+ params = {}
677
+ body = {}
678
+
679
+ if "query" == "query" and "date" in kwargs:
680
+ params["date"] = kwargs["date"]
681
+
682
+ if "query" == "query" and "resolution" in kwargs:
683
+ params["resolution"] = kwargs["resolution"]
684
+
685
+ if "query" == "query" and "page" in kwargs:
686
+ params["page"] = kwargs["page"]
687
+
688
+ if "query" == "query" and "page_size" in kwargs:
689
+ params["page_size"] = kwargs["page_size"]
690
+
691
+ if "_t" in kwargs:
692
+ params["_t"] = kwargs["_t"]
693
+ disable_cache = kwargs.get("disable_cache")
694
+ if disable_cache is None and "disableCache" in kwargs:
695
+ disable_cache = kwargs["disableCache"]
696
+ path = "/api/v1/image/bing-daily/history"
697
+
698
+ return self._http.request(
699
+ "GET",
700
+ path,
701
+ params=params,
702
+ json=body if body else None,
703
+ disable_cache=_coerce_optional_bool(disable_cache),
704
+ )
705
+
644
706
  def get_image_motou(self, **kwargs):
645
707
  r"""生成摸摸头GIF (QQ号)
646
708
  想在线rua一下好友的头像吗?这个趣味接口可以满足你。
@@ -756,11 +818,11 @@ class _ImageApi:
756
818
 
757
819
  ## 使用须知
758
820
  > [!TIP]
759
- > 为了给您最好的压缩效果,我们的算法需要进行复杂计算,处理时间可能会稍长一些,请耐心等待。
821
+ > 图片越大或压缩等级越高,处理时间可能越长,请您耐心等待。
760
822
 
761
823
  > [!WARNING]
762
- > **服务排队提醒**
763
- > 这是一个计算密集型服务。在高并发时,您的请求可能会被排队等待处理。如果您需要将其集成到对延迟敏感的生产服务中,请注意这一点。
824
+ > **处理时间提醒**
825
+ > 在访问量较高时,处理时间可能进一步延长。如果您的业务对返回时间比较敏感,建议预留充足的处理时间。
764
826
 
765
827
  ### 请求与响应格式
766
828
  - 请求必须使用 `multipart/form-data` 格式上传文件。
@@ -807,6 +869,69 @@ class _ImageApi:
807
869
  disable_cache=_coerce_optional_bool(disable_cache),
808
870
  )
809
871
 
872
+ def post_image_decode(self, **kwargs):
873
+ r"""解码并缩放图片
874
+ 在 RAM 和 Flash 极其有限的设备上解码图片是一项繁重的任务。这个接口专为 IoT 和嵌入式开发设计,将复杂的图像解码和缩放操作转移到云端,直接输出适用于单片机屏幕的二进制像素流。
875
+
876
+ ## 功能概述
877
+ 此接口提供了灵活的云端图像预处理能力,帮助硬件开发者跳过繁琐的图像处理逻辑:
878
+ - **直接推流渲染**:如果选择输出纯像素流(如 RGB565),单片机收到网络数据后无需解析文件头,可直接将其写入显存,实现极低内存占用的边下边播。
879
+ - **完美适配屏幕**:无需在设备端编写裁剪或补边代码。只需传入目标屏幕的物理分辨率,接口会自动完成等比缩放、居中补色或铺满裁剪,确保最终显示画面不变形。
880
+ - **精准内存分配**:在动态缩放图片的场景下,服务端会在 HTTP 响应头中提前注入 `X-Image-Width` 和 `X-Image-Height`,方便设备在读取真实的二进制数据前进行准确的内存分配。
881
+
882
+ ## 使用须知
883
+ - **请求格式**:无论是上传本地文件还是传递图片链接,请求体都必须使用 `multipart/form-data` 编码格式。
884
+ - **网络资源获取**:当您选择传递图片链接时,服务端会自动尝试获取该资源。请确保您提供的图片链接是公网直接可访问的,且不需要任何形式的登录鉴权。
885
+ """
886
+ params = {}
887
+ body = {}
888
+
889
+ if "query" == "query" and "width" in kwargs:
890
+ params["width"] = kwargs["width"]
891
+
892
+ if "query" == "query" and "height" in kwargs:
893
+ params["height"] = kwargs["height"]
894
+
895
+ if "query" == "query" and "max_width" in kwargs:
896
+ params["max_width"] = kwargs["max_width"]
897
+
898
+ if "query" == "query" and "max_height" in kwargs:
899
+ params["max_height"] = kwargs["max_height"]
900
+
901
+ if "query" == "query" and "format" in kwargs:
902
+ params["format"] = kwargs["format"]
903
+
904
+ if "query" == "query" and "color_mode" in kwargs:
905
+ params["color_mode"] = kwargs["color_mode"]
906
+
907
+ if "query" == "query" and "fit" in kwargs:
908
+ params["fit"] = kwargs["fit"]
909
+
910
+ if "query" == "query" and "background" in kwargs:
911
+ params["background"] = kwargs["background"]
912
+
913
+ if "_t" in kwargs:
914
+ params["_t"] = kwargs["_t"]
915
+
916
+ if "file" in kwargs:
917
+ body["file"] = kwargs["file"]
918
+
919
+ if "url" in kwargs:
920
+ body["url"] = kwargs["url"]
921
+
922
+ disable_cache = kwargs.get("disable_cache")
923
+ if disable_cache is None and "disableCache" in kwargs:
924
+ disable_cache = kwargs["disableCache"]
925
+ path = "/api/v1/image/decode"
926
+
927
+ return self._http.request(
928
+ "POST",
929
+ path,
930
+ params=params,
931
+ json=body if body else None,
932
+ disable_cache=_coerce_optional_bool(disable_cache),
933
+ )
934
+
810
935
  def post_image_frombase_64(self, **kwargs):
811
936
  r"""通过Base64编码上传图片
812
937
  当你需要在前端处理完图片(比如裁剪、加滤镜后),不通过传统表单,而是直接上传图片的场景,这个接口就派上用场了。
@@ -932,6 +1057,59 @@ class _ImageApi:
932
1057
  disable_cache=_coerce_optional_bool(disable_cache),
933
1058
  )
934
1059
 
1060
+ def post_image_ocr(self, **kwargs):
1061
+ r"""通用 OCR 文字识别
1062
+ 无论您是需要实现票据的自动化录入,还是在网页前端对图片上的文字进行坐标框选,这个高精度的 OCR 接口都能为您提供强大的基础能力。
1063
+
1064
+ ## 功能概述
1065
+ > [!IMPORTANT]
1066
+ > 如果您只关心图片上写了什么(例如截图取字或内容安全审核),强烈建议将 `need_location` 设置为 `false`。这会大幅精简返回的 JSON 数据体积,提升网络传输与系统解析效率。
1067
+
1068
+ 除了常规的图片转文字,这个接口还针对实际开发场景做了一些实用设计:
1069
+ - **前端文字高亮与结构化分析**:默认返回每一段文字的矩形坐标和四个顶点坐标。这非常适合使用 Canvas 在原图上画框高亮,或者在后端根据相对位置提取票据中的键值对信息。
1070
+ - **复杂拍摄环境下的抗畸变**:针对手机拍摄导致的旋转或倾斜,可以开启 `enable_cls=true`。服务端在识别前会自动进行方向预校正,显著提升识别准确率。
1071
+ - **灵活的输入与请求要求**:接口支持 `file`、`url` 或 `image_base64` 三种方式输入。请确保请求格式为 `multipart/form-data`,且图片链接在公网可直接访问。
1072
+ """
1073
+ params = {}
1074
+ body = {}
1075
+
1076
+ if "_t" in kwargs:
1077
+ params["_t"] = kwargs["_t"]
1078
+
1079
+ if "enable_cls" in kwargs:
1080
+ body["enable_cls"] = kwargs["enable_cls"]
1081
+
1082
+ if "file" in kwargs:
1083
+ body["file"] = kwargs["file"]
1084
+
1085
+ if "image_base64" in kwargs:
1086
+ body["image_base64"] = kwargs["image_base64"]
1087
+
1088
+ if "image_name" in kwargs:
1089
+ body["image_name"] = kwargs["image_name"]
1090
+
1091
+ if "need_location" in kwargs:
1092
+ body["need_location"] = kwargs["need_location"]
1093
+
1094
+ if "return_markdown" in kwargs:
1095
+ body["return_markdown"] = kwargs["return_markdown"]
1096
+
1097
+ if "url" in kwargs:
1098
+ body["url"] = kwargs["url"]
1099
+
1100
+ disable_cache = kwargs.get("disable_cache")
1101
+ if disable_cache is None and "disableCache" in kwargs:
1102
+ disable_cache = kwargs["disableCache"]
1103
+ path = "/api/v1/image/ocr"
1104
+
1105
+ return self._http.request(
1106
+ "POST",
1107
+ path,
1108
+ params=params,
1109
+ json=body if body else None,
1110
+ disable_cache=_coerce_optional_bool(disable_cache),
1111
+ )
1112
+
935
1113
  def post_image_speechless(self, **kwargs):
936
1114
  r"""生成你们怎么不说话了表情包
937
1115
  你们怎么不说话了?是不是都在偷偷玩Uapi,求求你们不要玩Uapi了
@@ -1136,6 +1314,8 @@ class _MiscApi:
1136
1314
  如果你只关心某一类事件,可以通过 `holiday_type` 进行筛选,例如只看法定休假/调休、公历节日、农历节日或节气。
1137
1315
 
1138
1316
  在 `date` 模式下,传 `include_nearby=true` 可以额外返回该日期前后最近的节日;返回数量由 `nearby_limit` 控制,默认 7,最大 30。
1317
+
1318
+ 如果你只想保留今天和之后的节日,可以再传 `exclude_past=true` 过滤已经过去的节日。
1139
1319
  """
1140
1320
  params = {}
1141
1321
  body = {}
@@ -1161,6 +1341,9 @@ class _MiscApi:
1161
1341
  if "query" == "query" and "nearby_limit" in kwargs:
1162
1342
  params["nearby_limit"] = kwargs["nearby_limit"]
1163
1343
 
1344
+ if "query" == "query" and "exclude_past" in kwargs:
1345
+ params["exclude_past"] = kwargs["exclude_past"]
1346
+
1164
1347
  if "_t" in kwargs:
1165
1348
  params["_t"] = kwargs["_t"]
1166
1349
  disable_cache = kwargs.get("disable_cache")
@@ -1193,9 +1376,6 @@ class _MiscApi:
1193
1376
 
1194
1377
  ### 搜索模式
1195
1378
  传 `type` + `keyword` + `time_start` + `time_end` 参数,在指定时间范围内搜索包含关键词的热榜条目。可选传 `limit` 限制返回数量。
1196
-
1197
- ### 数据源列表
1198
- 传 `sources=true`,返回所有支持历史数据的平台列表。
1199
1379
  """
1200
1380
  params = {}
1201
1381
  body = {}
@@ -1218,9 +1398,6 @@ class _MiscApi:
1218
1398
  if "query" == "query" and "limit" in kwargs:
1219
1399
  params["limit"] = kwargs["limit"]
1220
1400
 
1221
- if "query" == "query" and "sources" in kwargs:
1222
- params["sources"] = kwargs["sources"]
1223
-
1224
1401
  if "_t" in kwargs:
1225
1402
  params["_t"] = kwargs["_t"]
1226
1403
  disable_cache = kwargs.get("disable_cache")
@@ -1464,14 +1641,12 @@ graph TD
1464
1641
  买了东西想知道快递到哪儿了?这个接口帮你实时追踪物流状态。
1465
1642
 
1466
1643
  ## 功能概述
1467
- 提供一个快递单号,系统会自动识别快递公司并返回完整的物流轨迹信息。这个接口目前可以查询中通、圆通、韵达、申通、极兔、京东、EMS、德邦等主流快递公司的物流信息。
1644
+ 提供一个快递单号,系统会自动识别快递公司并返回完整的物流轨迹信息。这个接口目前可以查询中通、圆通、韵达、申通、极兔、顺丰、京东、EMS、德邦等主流快递公司的物流信息。
1468
1645
 
1469
1646
  ## 使用须知
1470
- 目前暂不支持顺丰快递单号的物流查询。
1471
-
1472
1647
  - **自动识别**:不知道是哪家快递?系统会根据单号规则自动识别快递公司(推荐使用)
1473
1648
  - **手动指定**:如果已知快递公司,可以传递 `carrier_code` 参数,查询速度会更快
1474
- - **手机尾号验证**:部分快递公司需要验证收件人手机尾号才能查询详细物流,如果返回 `暂无物流信息`,建议尝试传入 `phone` 参数
1649
+ - **手机尾号验证**:顺丰等部分快递公司需要验证收件人手机尾号才能查询详细物流,如果返回 `暂无物流信息`,建议尝试传入 `phone` 参数
1475
1650
  - **查询时效**:物流信息实时查询,响应时间通常在1-2秒内
1476
1651
  """
1477
1652
  params = {}
@@ -1486,6 +1661,9 @@ graph TD
1486
1661
  if "query" == "query" and "phone" in kwargs:
1487
1662
  params["phone"] = kwargs["phone"]
1488
1663
 
1664
+ if "query" == "query" and "full" in kwargs:
1665
+ params["full"] = kwargs["full"]
1666
+
1489
1667
  if "_t" in kwargs:
1490
1668
  params["_t"] = kwargs["_t"]
1491
1669
  disable_cache = kwargs.get("disable_cache")
@@ -1709,12 +1887,12 @@ class _NetworkApi:
1709
1887
 
1710
1888
  def get_network_ipinfo(self, **kwargs):
1711
1889
  r"""查询 IP
1712
- 想知道一个IP地址或域名来自地球的哪个角落?这个接口可以帮你定位它。你可以使用默认数据源,也可以指定 `source=commercial` 参数来查询更详细的商业级IP归属信息。
1890
+ 想知道一个IP地址或域名来自哪里?这个接口可以帮你定位它。默认返回标准结果;如果传 `source=commercial`,可以返回更完整的位置信息。
1713
1891
 
1714
1892
  ## 功能概述
1715
1893
  提供一个公网IPv4、IPv6地址或域名,我们会查询并返回它的地理位置(国家、省份、城市)、经纬度、以及所属的运营商(ISP)和自治系统(ASN)信息。这在网络安全分析、访问来源统计等领域非常有用。
1716
1894
 
1717
- 当使用 `source=commercial` 参数时,接口将调用高性能商业API,提供更精确的市、区、运营商、时区、海拔等信息。请注意,商业查询的响应时间可能会稍长。
1895
+ 当传 `source=commercial` 时,响应中会补充更完整的市、区、运营商、时区、海拔等信息,响应时间可能会稍长。
1718
1896
  """
1719
1897
  params = {}
1720
1898
  body = {}
@@ -1742,12 +1920,12 @@ class _NetworkApi:
1742
1920
 
1743
1921
  def get_network_myip(self, **kwargs):
1744
1922
  r"""查询我的 IP
1745
- 想知道你自己的出口公网IP是多少吗?这个接口就是你的“网络身份证”。你可以使用默认数据源,也可以指定 `source=commercial` 参数来查询更详细的商业级IP归属信息。
1923
+ 想知道你自己的出口公网IP是多少吗?这个接口就是你的“网络身份证”。默认返回标准结果;如果传 `source=commercial`,可以返回更完整的位置信息。
1746
1924
 
1747
1925
  ## 功能概述
1748
1926
  调用此接口,它会返回你(即发起请求的客户端)的公网IP地址,并附带与 `/network/ipinfo` 接口相同的地理位置和网络归属信息。非常适合用于在网页上向用户展示他们自己的IP和地理位置。
1749
1927
 
1750
- 当使用 `source=commercial` 参数时,接口将调用高性能商业API,提供更精确的市、区、运营商、时区、海拔等信息。请注意,商业查询的响应时间可能会稍长。
1928
+ 当传 `source=commercial` 时,响应中会补充更完整的市、区、运营商、时区、海拔等信息,响应时间可能会稍长。
1751
1929
  """
1752
1930
  params = {}
1753
1931
  body = {}
@@ -2174,19 +2352,16 @@ class _SocialApi:
2174
2352
 
2175
2353
  def get_github_repo(self, **kwargs):
2176
2354
  r"""查询 GitHub 仓库
2177
- 需要快速获取一个GitHub仓库的核心信息?这个接口为你聚合了最有价值的数据,避免了多次调用GitHub官方API的麻烦,并且内置了缓存优化,速度更快、更稳定。
2355
+ 需要快速获取一个GitHub仓库的核心信息?这个接口一次请求就能返回仓库的关键数据,适合项目展示、统计和分析场景。
2178
2356
 
2179
- ### 聚合高价值数据
2357
+ ### 可获取的数据
2180
2358
  一次请求,即可获得以下信息:
2181
2359
  - **核心指标**: `star`, `fork`, `open_issues` 等关键统计数据。
2182
2360
  - **项目详情**: 描述、主页、分支、语言、话题标签、开源协议。
2183
- - **参与者信息**: 获取协作者(`collaborators`)和推断的维护者(`maintainers`)列表,包括他们的公开邮箱(如果可用)。
2361
+ - **参与者信息**: 获取协作者(`collaborators`)和维护者参考信息(`maintainers`)列表,包括他们的公开邮箱(如果可用)。
2184
2362
 
2185
2363
  > [!NOTE]
2186
- > `collaborators` 字段在私有仓库或权限受限时可能为空。`maintainers` 是根据最新提交记录推断的,仅供参考。
2187
-
2188
- ### 性能与稳定性
2189
- 我们内置了多级缓存,有效避免触发GitHub的API速率限制。对于需要更高请求额度的用户,可以联系我们定制接口。
2364
+ > `collaborators` 字段在私有仓库或权限受限时可能为空。`maintainers` 为整理后的参考信息,仅供参考。
2190
2365
  """
2191
2366
  params = {}
2192
2367
  body = {}
@@ -2209,6 +2384,45 @@ class _SocialApi:
2209
2384
  disable_cache=_coerce_optional_bool(disable_cache),
2210
2385
  )
2211
2386
 
2387
+ def get_github_user(self, **kwargs):
2388
+ r"""查询 GitHub 用户信息
2389
+ 需要获取开发者的 GitHub 画像?这个接口不仅能返回详尽的基础资料和所属的公开组织列表,还能一键拉取开发者的绿格子数据。
2390
+
2391
+ ## 功能概述
2392
+ - **开发者基础画像**:返回用户的仓库数、关注数、公司、地理位置和社交媒体链接等,非常适合用来自动生成技术博客的作者名片或建立开发者档案。
2393
+ - **贡献日历与时间线**:只要开启 `activity=true`,就能获取该用户最近一年的全量贡献数据。返回的 JSON 已经将数据按周(weeks)和天(days)整理好,前端通过简单的双重循环就能画出和 GitHub 主页一模一样的贡献日历。
2394
+ - **组织级贡献过滤**:如果你只想评估某个人在特定团队开源项目中的活跃度,直接传入 `org` 参数。接口会自动剥离他在其他私有项目或个人仓库的提交,只返回针对该组织的贡献数据。
2395
+ """
2396
+ params = {}
2397
+ body = {}
2398
+
2399
+ if "query" == "query" and "user" in kwargs:
2400
+ params["user"] = kwargs["user"]
2401
+
2402
+ if "query" == "query" and "activity" in kwargs:
2403
+ params["activity"] = kwargs["activity"]
2404
+
2405
+ if "query" == "query" and "activity_scope" in kwargs:
2406
+ params["activity_scope"] = kwargs["activity_scope"]
2407
+
2408
+ if "query" == "query" and "org" in kwargs:
2409
+ params["org"] = kwargs["org"]
2410
+
2411
+ if "_t" in kwargs:
2412
+ params["_t"] = kwargs["_t"]
2413
+ disable_cache = kwargs.get("disable_cache")
2414
+ if disable_cache is None and "disableCache" in kwargs:
2415
+ disable_cache = kwargs["disableCache"]
2416
+ path = "/api/v1/github/user"
2417
+
2418
+ return self._http.request(
2419
+ "GET",
2420
+ path,
2421
+ params=params,
2422
+ json=body if body else None,
2423
+ disable_cache=_coerce_optional_bool(disable_cache),
2424
+ )
2425
+
2212
2426
  def get_social_bilibili_archives(self, **kwargs):
2213
2427
  r"""查询 B站投稿
2214
2428
  想要获取UP主的所有投稿视频?或者想在你的应用里展示创作者的作品集?这个接口能帮你轻松实现。
@@ -2475,15 +2689,15 @@ class _SocialApi:
2475
2689
 
2476
2690
  def get_social_qq_userinfo(self, **kwargs):
2477
2691
  r"""查询 QQ 信息
2478
- 这是一个功能丰富的QQ用户信息查询接口,能够获取QQ用户的详细公开信息。
2692
+ 通过 QQ 号查询用户资料,返回头像、昵称、个性签名、等级和 VIP 信息。
2479
2693
 
2480
2694
  ## 功能概述
2481
- 通过QQ号查询用户的详细信息,包括基础资料、等级信息、VIP状态等。返回的信息丰富全面,适合用于用户画像分析、社交应用集成等场景。
2695
+ 这个接口适合用在用户资料展示、头像卡片、账号绑定结果展示等场景。若用户把 QQ 等级设为隐藏,`qq_level` 会返回 `null`。
2482
2696
 
2483
2697
  ## 数据字段说明
2484
2698
  - **基础信息**: 昵称、个性签名、头像、年龄、性别
2485
- - **联系信息**: QQ邮箱、个性域名(QID)
2486
- - **等级信息**: QQ等级、VIP状态和等级
2699
+ - **联系信息**: QQ 邮箱、个性域名(QID
2700
+ - **等级信息**: QQ 等级、VIP 状态和等级
2487
2701
  - **时间信息**: 注册时间、最后更新时间
2488
2702
  """
2489
2703
  params = {}
@@ -2515,10 +2729,10 @@ class _StatusApi:
2515
2729
 
2516
2730
  def get_status_ratelimit(self, **kwargs):
2517
2731
  r"""限流状态
2518
- 想了解我们API的当前负载情况吗?这个接口为你提供了服务的“心电图”。
2732
+ 想了解当前服务的运行状态吗?这个接口可以返回关键监控指标。
2519
2733
 
2520
2734
  ## 功能概述
2521
- 此接口返回我们后端自适应限流器的实时状态。你可以看到当前并发请求数、并发上限、系统负载、请求接受/拒绝数等核心指标。这对于监控API健康状况和性能表现至关重要。
2735
+ 此接口用于查看当前服务状态,包括并发请求数、当前限制值、系统负载等信息,适合管理员排查运行情况。
2522
2736
 
2523
2737
  > [!IMPORTANT]
2524
2738
  > 此接口为管理接口,需要提供有效的管理员级别API密钥才能访问。
@@ -2792,7 +3006,7 @@ class _TextApi:
2792
3006
 
2793
3007
  ### 输出格式支持
2794
3008
  - **base64**(默认):标准Base64编码输出,适合传输和存储
2795
- - **hex**:十六进制编码输出,方便与在线加密工具对比验证
3009
+ - **hex**:十六进制编码输出,方便进行结果核对
2796
3010
 
2797
3011
  通过 `output_format` 参数可以直接获取HEX格式的密文,无需额外调用转换接口。
2798
3012
 
@@ -2847,7 +3061,6 @@ class _TextApi:
2847
3061
  - **加密算法**: AES-256
2848
3062
  - **编码格式**: Base64/HEX(输入/输出)
2849
3063
  - **IV长度**: 16字节(128位)
2850
- - **版本标注**: v3.4.8+
2851
3064
 
2852
3065
  > [!NOTE]
2853
3066
  > **关于IV(初始化向量)**
@@ -2858,7 +3071,7 @@ class _TextApi:
2858
3071
 
2859
3072
  > [!TIP]
2860
3073
  > **关于输出格式**
2861
- > - 如需与在线加密工具(如 toolhelper.cn)对比结果,建议使用 `output_format: "hex"`
3074
+ > - 如需核对输出结果,建议使用 `output_format: "hex"`
2862
3075
  > - Base64格式更适合网络传输和API调用
2863
3076
  > - 两种格式可以相互转换,数据完全一致
2864
3077
  """
@@ -3032,6 +3245,84 @@ class _TextApi:
3032
3245
  disable_cache=_coerce_optional_bool(disable_cache),
3033
3246
  )
3034
3247
 
3248
+ def post_text_markdown_to_html(self, **kwargs):
3249
+ r"""Markdown 转 HTML
3250
+ 直接调用这个接口,就可以把 Markdown 文本转换成带样式的 HTML,而且它不只适合程序里动态注入,也适合在开发阶段直接预览。
3251
+
3252
+ ## 如何使用与预览
3253
+ - **默认模式:返回 JSON 里的 HTML 片段**:不传 `format` 时,接口会返回 JSON。您只需要读取响应里的 `data.html`,再赋值给前端容器,例如 `element.innerHTML = data.html`、Vue 的 `v-html`,或者 React 里配合 `dangerouslySetInnerHTML` 使用。
3254
+ - **预览模式:直接返回完整 HTML 网页**:如果您想在浏览器里直接打开结果,或者想把响应保存成一个独立的 `.html` 文件,请传 `format="html"`。这个模式下,接口会直接返回带 `<!DOCTYPE html><html>...` 的完整网页源码。
3255
+
3256
+ ## 功能概述
3257
+ - **自带精美排版,无需手写 CSS**:返回结果已经内置样式,标题、引用、表格、任务列表和代码块都可以直接显示。
3258
+ - **支持丰富的排版元素**:除了标准 Markdown,这个接口也可以正确处理 GFM 常见语法,例如表格、任务列表和带语言标记的代码块。
3259
+ - **安全处理用户内容**:默认开启安全模式,会自动过滤原始 HTML 里的风险脚本。如果内容来源绝对可信,并且您确实需要保留原始 HTML,可以把 `sanitize` 设为 `false`。
3260
+ """
3261
+ params = {}
3262
+ body = {}
3263
+
3264
+ if "_t" in kwargs:
3265
+ params["_t"] = kwargs["_t"]
3266
+
3267
+ if "format" in kwargs:
3268
+ body["format"] = kwargs["format"]
3269
+
3270
+ if "sanitize" in kwargs:
3271
+ body["sanitize"] = kwargs["sanitize"]
3272
+
3273
+ if "text" in kwargs:
3274
+ body["text"] = kwargs["text"]
3275
+
3276
+ disable_cache = kwargs.get("disable_cache")
3277
+ if disable_cache is None and "disableCache" in kwargs:
3278
+ disable_cache = kwargs["disableCache"]
3279
+ path = "/api/v1/text/markdown-to-html"
3280
+
3281
+ return self._http.request(
3282
+ "POST",
3283
+ path,
3284
+ params=params,
3285
+ json=body if body else None,
3286
+ disable_cache=_coerce_optional_bool(disable_cache),
3287
+ )
3288
+
3289
+ def post_text_markdown_to_pdf(self, **kwargs):
3290
+ r"""Markdown 转 PDF
3291
+ 当您的业务系统需要提供“导出为 PDF”的功能时,无需在后端部署复杂的排版引擎,只需将 Markdown 文本发给这个接口,即可直接获取打印级的 PDF 文件。
3292
+
3293
+ ## 功能概述
3294
+ - **服务端直接生成**:接口直接返回 PDF 文件二进制流,前端无需任何处理即可触发下载,后端也能轻松存盘归档。
3295
+ - **多种精美主题与纸张**:内置了 GitHub、暗黑等多种专业排版主题,并支持 A4、Letter 等标准纸张。只需简单配置,就能生成符合业务场景的专业文档。
3296
+ - **公网图片也可以直接带入 PDF**:除了纯文本和标准 Markdown 语法,这个接口也可以处理 `data URI` 图片,或者公网可访问的 `http`、`https` 图片链接。服务端会先通过代理抓取图片,并在渲染前内联到文档里,同时带有超时控制。
3297
+ """
3298
+ params = {}
3299
+ body = {}
3300
+
3301
+ if "_t" in kwargs:
3302
+ params["_t"] = kwargs["_t"]
3303
+
3304
+ if "paper_size" in kwargs:
3305
+ body["paper_size"] = kwargs["paper_size"]
3306
+
3307
+ if "text" in kwargs:
3308
+ body["text"] = kwargs["text"]
3309
+
3310
+ if "theme" in kwargs:
3311
+ body["theme"] = kwargs["theme"]
3312
+
3313
+ disable_cache = kwargs.get("disable_cache")
3314
+ if disable_cache is None and "disableCache" in kwargs:
3315
+ disable_cache = kwargs["disableCache"]
3316
+ path = "/api/v1/text/markdown-to-pdf"
3317
+
3318
+ return self._http.request(
3319
+ "POST",
3320
+ path,
3321
+ params=params,
3322
+ json=body if body else None,
3323
+ disable_cache=_coerce_optional_bool(disable_cache),
3324
+ )
3325
+
3035
3326
  def post_text_md_5(self, **kwargs):
3036
3327
  r"""MD5 哈希 (POST)
3037
3328
  一个用于计算文本 MD5 哈希值的标准工具,推荐使用此版本。
@@ -3123,7 +3414,7 @@ class _TranslateApi:
3123
3414
 
3124
3415
  def post_ai_translate(self, **kwargs):
3125
3416
  r"""AI智能翻译
3126
- 这是一个商业级的AI智能翻译服务,采用最新的神经网络翻译技术和大语言模型,提供远超传统机器翻译的质量。
3417
+ 这是一个高质量的智能翻译服务,支持多种翻译风格和专业场景,适合对译文质量有更高要求的业务场景。
3127
3418
 
3128
3419
  ## 功能概述
3129
3420
 
@@ -3432,8 +3723,8 @@ class _MinGanCiShiBieApi:
3432
3723
 
3433
3724
  ## 功能概述
3434
3725
 
3435
- - **模型驱动**: 使用先进的分析模型进行语义分析。
3436
- - **高性能**: 采用三级缓存策略(持久化存储 → 统一缓存 → 模型分析),确保高频请求的响应速度。
3726
+ - **风险分析**: 结合文本内容给出语义层面的风险判断。
3727
+ - **响应稳定**: 兼顾高频调用场景下的处理效率和响应速度。
3437
3728
  - **并发支持**: 支持批量并发处理,单次最多可分析100个关键词。
3438
3729
  - **输入限制**: 单条关键词最多 1,000 字符,总字符数最多 20,000。
3439
3730
  - **标准标签**: 返回 `label` 字段,明确区分 `sensitive` 与 `normal`。
@@ -3476,18 +3767,18 @@ class _MinGanCiShiBieApi:
3476
3767
 
3477
3768
  def post_sensitive_word_quick_check(self, **kwargs):
3478
3769
  r"""敏感词检测(快速)
3479
- 在你的社区或应用中,需要来过滤掉不和谐的声音吗?这个接口可以助你一臂之力。
3770
+ 在你的社区或应用中,需要过滤不适合展示的内容时,这个接口可以帮你快速完成检测。
3480
3771
 
3481
3772
  ## 功能概述
3482
3773
 
3483
- 我们对敏感词检测接口进行了大幅升级,现在采用高效的 **Aho-Corasick 算法**,实现了多模式字符串匹配。这意味着你不再需要手动编写复杂的正则表达式,系统会自动高效地检测出文本中的所有敏感词。
3774
+ 这个接口可以识别文本中的敏感词,并返回是否命中、命中词列表等结果,适合用于评论区、社区、论坛和内容发布场景。
3484
3775
 
3485
3776
  ### 主要特性
3486
3777
 
3487
- - **高性能算法**:基于 Aho-Corasick 算法,单次扫描即可检测多个敏感词模式
3488
- - **简繁体支持**:自动识别和处理简体中文、繁体中文内容
3489
- - **多模匹配**:无需编写正则表达式,系统内置智能匹配逻辑
3490
- - **快速响应**:相比传统方法,检测速度显著提升
3778
+ - **快速检测**:能够一次处理整段文本中的多个命中内容
3779
+ - **简繁体支持**:支持简体中文、繁体中文和混合文本检测
3780
+ - **结果直观**:返回清晰的检测结果,方便直接接入审核流程
3781
+ - **响应稳定**:适合日常内容审核和批量检查场景
3491
3782
 
3492
3783
  无论是论坛、社交平台还是评论系统,这个接口都能帮你快速构建内容审核功能。
3493
3784
  """
@@ -3521,14 +3812,14 @@ class _ZhiNengSouSuoApi:
3521
3812
 
3522
3813
  def get_search_engines(self, **kwargs):
3523
3814
  r"""搜索引擎配置
3524
- 获取 UAPI Pro Search 引擎的详细信息,包括支持的功能特性、参数限制和使用说明。
3815
+ 获取搜索功能的详细信息,包括支持的能力、参数限制和使用说明。
3525
3816
 
3526
3817
  ## 功能概述
3527
3818
 
3528
- 此接口返回搜索引擎的完整配置信息,你可以用它来:
3529
- - 了解搜索引擎支持哪些功能(如站内搜索、文件类型过滤等)
3819
+ 此接口返回搜索功能的完整配置信息,你可以用它来:
3820
+ - 了解当前可用的搜索能力(如站内搜索、文件类型过滤等)
3530
3821
  - 获取参数的默认值和限制范围
3531
- - 查看当前引擎版本和可用状态
3822
+ - 查看当前配置版本和可用状态
3532
3823
 
3533
3824
  适合在应用初始化时调用,或用于动态配置搜索界面。
3534
3825
 
@@ -3553,14 +3844,14 @@ class _ZhiNengSouSuoApi:
3553
3844
 
3554
3845
  def post_search_aggregate(self, **kwargs):
3555
3846
  r"""智能搜索
3556
- 想在你的应用中集成搜索功能?我们提供了一个强大的搜索引擎API,让你可以轻松实现实时网页搜索。
3847
+ 想在你的应用中集成搜索功能?这个接口可以帮你轻松实现实时网页搜索。
3557
3848
 
3558
3849
  ## 功能概述
3559
3850
 
3560
- UAPI Pro Search 是一个智能搜索引擎,采用机器学习算法对搜索结果进行智能排序,确保最相关的内容排在前面。你可以用它搜索任何关键词,也可以限定在特定网站或特定文件类型中搜索。
3851
+ UAPI Pro Search 可以根据查询内容返回更相关的搜索结果。你可以用它搜索任何关键词,也可以限定在特定网站或特定文件类型中搜索。
3561
3852
 
3562
3853
  - **实时网页搜索**: 毫秒级响应,快速返回搜索结果
3563
- - **智能排序**: 采用机器学习回归排序算法,结果更精准
3854
+ - **智能排序**: 根据查询内容返回更相关的结果
3564
3855
  - **时间排序**: 支持按发布时间排序,获取最新内容
3565
3856
  - **时间范围过滤**: 支持按天/周/月/年过滤结果
3566
3857
  - **站内搜索**: 支持 `site:` 操作符,在指定网站内搜索
@@ -3591,9 +3882,6 @@ UAPI Pro Search 是一个智能搜索引擎,采用机器学习算法对搜索
3591
3882
  if "time_range" in kwargs:
3592
3883
  body["time_range"] = kwargs["time_range"]
3593
3884
 
3594
- if "timeout_ms" in kwargs:
3595
- body["timeout_ms"] = kwargs["timeout_ms"]
3596
-
3597
3885
  disable_cache = kwargs.get("disable_cache")
3598
3886
  if disable_cache is None and "disableCache" in kwargs:
3599
3887
  disable_cache = kwargs["disableCache"]
@@ -67,7 +67,7 @@ class UapiError(Exception):
67
67
 
68
68
  class ApiErrorError(UapiError):
69
69
  """上游/内部错误 (API_ERROR)"""
70
- DEFAULT_STATUS = 502
70
+ DEFAULT_STATUS = 504
71
71
 
72
72
  class AvatarNotFoundError(UapiError):
73
73
  """头像未找到 (AVATAR_NOT_FOUND)"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uapi-sdk-python
3
- Version: 0.1.15
3
+ Version: 0.1.16
4
4
  Summary: Idiomatic UAPI SDK for Python
5
5
  Author-email: UAPI <dev@uapis.cn>
6
6
  Requires-Python: >=3.9