p115client 0.0.5.14.3__py3-none-any.whl → 0.0.5.15__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.
- p115client/client.py +653 -523
- p115client/tool/edit.py +80 -5
- p115client/tool/iterdir.py +82 -58
- {p115client-0.0.5.14.3.dist-info → p115client-0.0.5.15.dist-info}/METADATA +2 -2
- {p115client-0.0.5.14.3.dist-info → p115client-0.0.5.15.dist-info}/RECORD +7 -7
- {p115client-0.0.5.14.3.dist-info → p115client-0.0.5.15.dist-info}/LICENSE +0 -0
- {p115client-0.0.5.14.3.dist-info → p115client-0.0.5.15.dist-info}/WHEEL +0 -0
p115client/client.py
CHANGED
@@ -396,6 +396,9 @@ def check_response(resp: dict | Awaitable[dict], /) -> dict | Coroutine[Any, Any
|
|
396
396
|
# {"state": false, "errno": 911, "error": "请验证账号"}
|
397
397
|
case 911:
|
398
398
|
raise AuthenticationError(errno.EAUTH, resp)
|
399
|
+
# {"state": false, "errno": 1001, "error": "参数错误"}
|
400
|
+
case 1001:
|
401
|
+
raise OperationalError(errno.EINVAL, resp)
|
399
402
|
# {"state": false, "errno": 10004, "error": "错误的链接"}
|
400
403
|
case 10004:
|
401
404
|
raise OperationalError(errno.EINVAL, resp)
|
@@ -693,7 +696,8 @@ def normalize_attr_web[D: dict[str, Any]](
|
|
693
696
|
if "te" in info:
|
694
697
|
attr["mtime"] = int(info["te"])
|
695
698
|
else:
|
696
|
-
|
699
|
+
if "pickcode" in attr:
|
700
|
+
attr["pick_code"] = attr["pickcode"]
|
697
701
|
attr["ico"] = info.get("ico", "folder" if is_dir else "")
|
698
702
|
if "te" in info:
|
699
703
|
attr["mtime"] = attr["user_utime"] = int(info["te"])
|
@@ -837,7 +841,8 @@ def normalize_attr_app[D: dict[str, Any]](
|
|
837
841
|
if "upt" in info:
|
838
842
|
attr["mtime"] = int(info["upt"])
|
839
843
|
else:
|
840
|
-
|
844
|
+
if "pickcode" in attr:
|
845
|
+
attr["pick_code"] = attr["pickcode"]
|
841
846
|
attr["ico"] = info.get("ico", "folder" if attr["is_dir"] else "")
|
842
847
|
if "thumb" in info:
|
843
848
|
thumb = info["thumb"]
|
@@ -980,7 +985,8 @@ def normalize_attr_app2[D: dict[str, Any]](
|
|
980
985
|
if "user_ptime" in info:
|
981
986
|
attr["mtime"] = int(info["user_ptime"])
|
982
987
|
else:
|
983
|
-
|
988
|
+
if "pickcode" in attr:
|
989
|
+
attr["pick_code"] = attr["pickcode"]
|
984
990
|
if is_dir:
|
985
991
|
if "thumb_url" in info:
|
986
992
|
attr["thumb"] = info["thumb_url"]
|
@@ -1620,7 +1626,7 @@ class ClientRequestMixin:
|
|
1620
1626
|
api = complete_api("/open/authorize", base_url=base_url)
|
1621
1627
|
payload = {"response_type": "code", **payload}
|
1622
1628
|
def parse(resp, content, /):
|
1623
|
-
if resp
|
1629
|
+
if get_status_code(resp) == 302:
|
1624
1630
|
return {
|
1625
1631
|
"state": True,
|
1626
1632
|
"url": resp.headers["location"],
|
@@ -2290,6 +2296,7 @@ class ClientRequestMixin:
|
|
2290
2296
|
|
2291
2297
|
:param app: 扫二维码后绑定的 `app` (或者叫 `device`)
|
2292
2298
|
:param console_qrcode: 在命令行输出二维码,否则在浏览器中打开
|
2299
|
+
:param base_url: 接口的基地址
|
2293
2300
|
:param async_: 是否异步
|
2294
2301
|
:param request_kwargs: 其它请求参数
|
2295
2302
|
|
@@ -3546,13 +3553,13 @@ class P115OpenClient(ClientRequestMixin):
|
|
3546
3553
|
- nf: str = <default> 💡 不要显示文件(即仅显示目录),但如果 show_dir=0,则此参数无效
|
3547
3554
|
- o: str = <default> 💡 用某字段排序(未定义的值会被视为 "user_utime")
|
3548
3555
|
|
3549
|
-
|
3550
|
-
|
3551
|
-
|
3552
|
-
|
3553
|
-
|
3554
|
-
|
3555
|
-
|
3556
|
+
- "file_name": 文件名
|
3557
|
+
- "file_size": 文件大小
|
3558
|
+
- "file_type": 文件种类
|
3559
|
+
- "user_etime": 事件时间(无效,效果相当于 "user_utime")
|
3560
|
+
- "user_utime": 修改时间
|
3561
|
+
- "user_ptime": 创建时间(无效,效果相当于 "user_utime")
|
3562
|
+
- "user_otime": 上一次打开时间(无效,效果相当于 "user_utime")
|
3556
3563
|
|
3557
3564
|
- qid: int = <default>
|
3558
3565
|
- r_all: 0 | 1 = <default>
|
@@ -3567,23 +3574,23 @@ class P115OpenClient(ClientRequestMixin):
|
|
3567
3574
|
- suffix: str = <default> 💡 后缀名(优先级高于 `type`)
|
3568
3575
|
- type: int = <default> 💡 文件类型
|
3569
3576
|
|
3570
|
-
|
3571
|
-
|
3572
|
-
|
3573
|
-
|
3574
|
-
|
3575
|
-
|
3576
|
-
|
3577
|
-
|
3578
|
-
|
3579
|
-
|
3580
|
-
|
3581
|
-
|
3582
|
-
|
3583
|
-
|
3584
|
-
|
3585
|
-
|
3586
|
-
|
3577
|
+
- 0: 全部(仅当前目录)
|
3578
|
+
- 1: 文档
|
3579
|
+
- 2: 图片
|
3580
|
+
- 3: 音频
|
3581
|
+
- 4: 视频
|
3582
|
+
- 5: 压缩包
|
3583
|
+
- 6: 软件/应用
|
3584
|
+
- 7: 书籍
|
3585
|
+
- 8: 其它
|
3586
|
+
- 9: 相当于 8
|
3587
|
+
- 10: 相当于 8
|
3588
|
+
- 11: 相当于 8
|
3589
|
+
- 12: ???
|
3590
|
+
- 13: ???
|
3591
|
+
- 14: ???
|
3592
|
+
- 15: 图片和视频,相当于 2 和 4
|
3593
|
+
- >= 16: 相当于 8
|
3587
3594
|
"""
|
3588
3595
|
api = complete_proapi("/open/ufile/files", base_url)
|
3589
3596
|
if isinstance(payload, (int, str)):
|
@@ -3842,12 +3849,12 @@ class P115OpenClient(ClientRequestMixin):
|
|
3842
3849
|
- lte_day: str 💡 搜索结果匹配的结束时间;格式:YYYY-MM-DD
|
3843
3850
|
- o: str = <default> 💡 用某字段排序
|
3844
3851
|
|
3845
|
-
|
3846
|
-
|
3847
|
-
|
3848
|
-
|
3849
|
-
|
3850
|
-
|
3852
|
+
- "file_name": 文件名
|
3853
|
+
- "file_size": 文件大小
|
3854
|
+
- "file_type": 文件种类
|
3855
|
+
- "user_utime": 修改时间
|
3856
|
+
- "user_ptime": 创建时间
|
3857
|
+
- "user_otime": 上一次打开时间
|
3851
3858
|
|
3852
3859
|
- offset: int = 0 💡 索引偏移,索引从 0 开始计算
|
3853
3860
|
- pick_code: str = <default> 💡 是否查询提取码,如果该值为 1 则查询提取码为 `search_value` 的文件
|
@@ -3858,15 +3865,15 @@ class P115OpenClient(ClientRequestMixin):
|
|
3858
3865
|
- suffix: str = <default> 💡 后缀名(优先级高于 `type`)
|
3859
3866
|
- type: int = <default> 💡 文件类型
|
3860
3867
|
|
3861
|
-
|
3862
|
-
|
3863
|
-
|
3864
|
-
|
3865
|
-
|
3866
|
-
|
3867
|
-
|
3868
|
-
|
3869
|
-
|
3868
|
+
- 0: 全部(仅当前目录)
|
3869
|
+
- 1: 文档
|
3870
|
+
- 2: 图片
|
3871
|
+
- 3: 音频
|
3872
|
+
- 4: 视频
|
3873
|
+
- 5: 压缩包
|
3874
|
+
- 6: 软件/应用
|
3875
|
+
- 7: 书籍
|
3876
|
+
- 99: 所有文件
|
3870
3877
|
|
3871
3878
|
- version: str = <default> 💡 版本号,比如 3.1
|
3872
3879
|
"""
|
@@ -4383,12 +4390,12 @@ class P115OpenClient(ClientRequestMixin):
|
|
4383
4390
|
:payload:
|
4384
4391
|
- flag: int = 0 💡 标识,用于对应某种情况
|
4385
4392
|
|
4386
|
-
|
4387
|
-
|
4388
|
-
|
4389
|
-
|
4390
|
-
|
4391
|
-
|
4393
|
+
- 0: 已完成
|
4394
|
+
- 1: 全部
|
4395
|
+
- 2: 已失败
|
4396
|
+
- 3: 进行中
|
4397
|
+
- 4: 已完成+删除源文件
|
4398
|
+
- 5: 全部+删除源文件
|
4392
4399
|
"""
|
4393
4400
|
api = complete_proapi("/open/offline/clear_task", base_url)
|
4394
4401
|
if isinstance(payload, int):
|
@@ -7322,9 +7329,9 @@ class P115Client(P115OpenClient):
|
|
7322
7329
|
:payload:
|
7323
7330
|
- type: 0 | 1 | 2 = 0 💡 类型
|
7324
7331
|
|
7325
|
-
|
7326
|
-
|
7327
|
-
|
7332
|
+
- 0: 全部
|
7333
|
+
- 1: 进行中
|
7334
|
+
- 2: 已实现
|
7328
7335
|
|
7329
7336
|
- start: int = 0 💡 开始索引
|
7330
7337
|
- page: int = 1 💡 第几页
|
@@ -7378,9 +7385,9 @@ class P115Client(P115OpenClient):
|
|
7378
7385
|
:payload:
|
7379
7386
|
- type: 0 | 1 | 2 = 0 💡 类型
|
7380
7387
|
|
7381
|
-
|
7382
|
-
|
7383
|
-
|
7388
|
+
- 0: 全部
|
7389
|
+
- 1: 进行中
|
7390
|
+
- 2: 已实现
|
7384
7391
|
|
7385
7392
|
- start: int = 0 💡 开始索引
|
7386
7393
|
- page: int = 1 💡 第几页
|
@@ -9265,9 +9272,9 @@ class P115Client(P115OpenClient):
|
|
9265
9272
|
- file_id: int | str 目录 id,多个用逗号 "," 隔开
|
9266
9273
|
- op: "add" | "delete" | "top" = "add" 操作代码
|
9267
9274
|
|
9268
|
-
|
9269
|
-
|
9270
|
-
|
9275
|
+
- "add": 添加
|
9276
|
+
- "delete": 删除
|
9277
|
+
- "top": 置顶
|
9271
9278
|
"""
|
9272
9279
|
api = complete_webapi("/category/shortcut", base_url=base_url)
|
9273
9280
|
if isinstance(payload, (int, str)):
|
@@ -10468,12 +10475,12 @@ class P115Client(P115OpenClient):
|
|
10468
10475
|
- nf: str = <default> 💡 不要显示文件(即仅显示目录),但如果 show_dir=0,则此参数无效
|
10469
10476
|
- o: str = <default> 💡 用某字段排序
|
10470
10477
|
|
10471
|
-
|
10472
|
-
|
10473
|
-
|
10474
|
-
|
10475
|
-
|
10476
|
-
|
10478
|
+
- "file_name": 文件名
|
10479
|
+
- "file_size": 文件大小
|
10480
|
+
- "file_type": 文件种类
|
10481
|
+
- "user_utime": 修改时间
|
10482
|
+
- "user_ptime": 创建时间
|
10483
|
+
- "user_otime": 上一次打开时间
|
10477
10484
|
|
10478
10485
|
- oof_token: str = <default>
|
10479
10486
|
- qid: int | str = <default>
|
@@ -10490,26 +10497,26 @@ class P115Client(P115OpenClient):
|
|
10490
10497
|
- suffix_type: int = <default>
|
10491
10498
|
- type: int = <default> 💡 文件类型
|
10492
10499
|
|
10493
|
-
|
10494
|
-
|
10495
|
-
|
10496
|
-
|
10497
|
-
|
10498
|
-
|
10499
|
-
|
10500
|
-
|
10501
|
-
|
10502
|
-
|
10503
|
-
|
10504
|
-
|
10505
|
-
|
10506
|
-
|
10507
|
-
|
10508
|
-
|
10509
|
-
|
10510
|
-
|
10511
|
-
|
10512
|
-
|
10500
|
+
- 0: 全部(仅当前目录)
|
10501
|
+
- 1: 文档
|
10502
|
+
- 2: 图片
|
10503
|
+
- 3: 音频
|
10504
|
+
- 4: 视频
|
10505
|
+
- 5: 压缩包
|
10506
|
+
- 6: 软件/应用
|
10507
|
+
- 7: 书籍
|
10508
|
+
- 8: 其它
|
10509
|
+
- 9: 相当于 8
|
10510
|
+
- 10: 相当于 8
|
10511
|
+
- 11: 相当于 8
|
10512
|
+
- 12: ???
|
10513
|
+
- 13: 相当于 3
|
10514
|
+
- 14: ???
|
10515
|
+
- 15: 图片和视频,相当于 2 和 4
|
10516
|
+
- 16: ???
|
10517
|
+
- 17~98: 相当于 8
|
10518
|
+
- 99: 所有文件
|
10519
|
+
- >=100: 相当于 8
|
10513
10520
|
"""
|
10514
10521
|
api = complete_webapi("/files", base_url=base_url)
|
10515
10522
|
if isinstance(payload, (int, str)):
|
@@ -10611,13 +10618,13 @@ class P115Client(P115OpenClient):
|
|
10611
10618
|
- nf: str = <default> 💡 不要显示文件(即仅显示目录),但如果 show_dir=0,则此参数无效
|
10612
10619
|
- o: str = <default> 💡 用某字段排序(未定义的值会被视为 "user_utime")
|
10613
10620
|
|
10614
|
-
|
10615
|
-
|
10616
|
-
|
10617
|
-
|
10618
|
-
|
10619
|
-
|
10620
|
-
|
10621
|
+
- "file_name": 文件名
|
10622
|
+
- "file_size": 文件大小
|
10623
|
+
- "file_type": 文件种类
|
10624
|
+
- "user_etime": 事件时间(无效,效果相当于 "user_utime")
|
10625
|
+
- "user_utime": 修改时间
|
10626
|
+
- "user_ptime": 创建时间(无效,效果相当于 "user_utime")
|
10627
|
+
- "user_otime": 上一次打开时间(无效,效果相当于 "user_utime")
|
10621
10628
|
|
10622
10629
|
- r_all: 0 | 1 = <default>
|
10623
10630
|
- record_open_time: 0 | 1 = 1 💡 是否要记录目录的打开时间
|
@@ -10631,23 +10638,23 @@ class P115Client(P115OpenClient):
|
|
10631
10638
|
- suffix: str = <default> 💡 后缀名(优先级高于 `type`)
|
10632
10639
|
- type: int = <default> 💡 文件类型
|
10633
10640
|
|
10634
|
-
|
10635
|
-
|
10636
|
-
|
10637
|
-
|
10638
|
-
|
10639
|
-
|
10640
|
-
|
10641
|
-
|
10642
|
-
|
10643
|
-
|
10644
|
-
|
10645
|
-
|
10646
|
-
|
10647
|
-
|
10648
|
-
|
10649
|
-
|
10650
|
-
|
10641
|
+
- 0: 全部(仅当前目录)
|
10642
|
+
- 1: 文档
|
10643
|
+
- 2: 图片
|
10644
|
+
- 3: 音频
|
10645
|
+
- 4: 视频
|
10646
|
+
- 5: 压缩包
|
10647
|
+
- 6: 软件/应用
|
10648
|
+
- 7: 书籍
|
10649
|
+
- 8: 其它
|
10650
|
+
- 9: 相当于 8
|
10651
|
+
- 10: 相当于 8
|
10652
|
+
- 11: 相当于 8
|
10653
|
+
- 12: ???
|
10654
|
+
- 13: ???
|
10655
|
+
- 14: ???
|
10656
|
+
- 15: 图片和视频,相当于 2 和 4
|
10657
|
+
- >= 16: 相当于 8
|
10651
10658
|
"""
|
10652
10659
|
api = complete_proapi("/2.0/ufile/files", base_url, app)
|
10653
10660
|
if isinstance(payload, (int, str)):
|
@@ -10741,13 +10748,13 @@ class P115Client(P115OpenClient):
|
|
10741
10748
|
- nf: str = <default> 💡 不要显示文件(即仅显示目录),但如果 show_dir=0,则此参数无效
|
10742
10749
|
- o: str = <default> 💡 用某字段排序(未定义的值会被视为 "user_utime")
|
10743
10750
|
|
10744
|
-
|
10745
|
-
|
10746
|
-
|
10747
|
-
|
10748
|
-
|
10749
|
-
|
10750
|
-
|
10751
|
+
- "file_name": 文件名
|
10752
|
+
- "file_size": 文件大小
|
10753
|
+
- "file_type": 文件种类
|
10754
|
+
- "user_etime": 事件时间(无效,效果相当于 "user_utime")
|
10755
|
+
- "user_utime": 修改时间
|
10756
|
+
- "user_ptime": 创建时间(无效,效果相当于 "user_utime")
|
10757
|
+
- "user_otime": 上一次打开时间(无效,效果相当于 "user_utime")
|
10751
10758
|
|
10752
10759
|
- r_all: 0 | 1 = <default>
|
10753
10760
|
- record_open_time: 0 | 1 = 1 💡 是否要记录目录的打开时间
|
@@ -10761,23 +10768,23 @@ class P115Client(P115OpenClient):
|
|
10761
10768
|
- suffix: str = <default> 💡 后缀名(优先级高于 `type`)
|
10762
10769
|
- type: int = <default> 💡 文件类型
|
10763
10770
|
|
10764
|
-
|
10765
|
-
|
10766
|
-
|
10767
|
-
|
10768
|
-
|
10769
|
-
|
10770
|
-
|
10771
|
-
|
10772
|
-
|
10773
|
-
|
10774
|
-
|
10775
|
-
|
10776
|
-
|
10777
|
-
|
10778
|
-
|
10779
|
-
|
10780
|
-
|
10771
|
+
- 0: 全部(仅当前目录)
|
10772
|
+
- 1: 文档
|
10773
|
+
- 2: 图片
|
10774
|
+
- 3: 音频
|
10775
|
+
- 4: 视频
|
10776
|
+
- 5: 压缩包
|
10777
|
+
- 6: 软件/应用
|
10778
|
+
- 7: 书籍
|
10779
|
+
- 8: 其它
|
10780
|
+
- 9: 相当于 8
|
10781
|
+
- 10: 相当于 8
|
10782
|
+
- 11: 相当于 8
|
10783
|
+
- 12: ???
|
10784
|
+
- 13: ???
|
10785
|
+
- 14: ???
|
10786
|
+
- 15: 图片和视频,相当于 2 和 4
|
10787
|
+
- >= 16: 相当于 8
|
10781
10788
|
"""
|
10782
10789
|
api = complete_proapi("/files", base_url, app)
|
10783
10790
|
if isinstance(payload, (int, str)):
|
@@ -10881,26 +10888,26 @@ class P115Client(P115OpenClient):
|
|
10881
10888
|
- suffix: str = <default> 💡 后缀名(优先级高于 `type`)
|
10882
10889
|
- type: int = <default> 💡 文件类型
|
10883
10890
|
|
10884
|
-
|
10885
|
-
|
10886
|
-
|
10887
|
-
|
10888
|
-
|
10889
|
-
|
10890
|
-
|
10891
|
-
|
10892
|
-
|
10893
|
-
|
10894
|
-
|
10895
|
-
|
10896
|
-
|
10897
|
-
|
10898
|
-
|
10899
|
-
|
10900
|
-
|
10901
|
-
|
10902
|
-
|
10903
|
-
|
10891
|
+
- 0: 全部(仅当前目录)
|
10892
|
+
- 1: 文档
|
10893
|
+
- 2: 图片
|
10894
|
+
- 3: 音频
|
10895
|
+
- 4: 视频
|
10896
|
+
- 5: 压缩包
|
10897
|
+
- 6: 软件/应用
|
10898
|
+
- 7: 书籍
|
10899
|
+
- 8: 其它
|
10900
|
+
- 9: 相当于 8
|
10901
|
+
- 10: 相当于 8
|
10902
|
+
- 11: 相当于 8
|
10903
|
+
- 12: ???
|
10904
|
+
- 13: 相当于 3
|
10905
|
+
- 14: ???
|
10906
|
+
- 15: 图片和视频,相当于 2 和 4
|
10907
|
+
- 16: ???
|
10908
|
+
- 17~98: 相当于 8
|
10909
|
+
- 99: 所有文件
|
10910
|
+
- >=100: 相当于 8
|
10904
10911
|
"""
|
10905
10912
|
api = complete_api("/natsort/files.php", "aps", base_url=base_url)
|
10906
10913
|
if isinstance(payload, (int, str)):
|
@@ -11068,6 +11075,209 @@ class P115Client(P115OpenClient):
|
|
11068
11075
|
|
11069
11076
|
fs_video_history_set = fs_files_history_set
|
11070
11077
|
|
11078
|
+
|
11079
|
+
@overload
|
11080
|
+
def fs_files_image(
|
11081
|
+
self,
|
11082
|
+
payload: int | str | dict,
|
11083
|
+
/,
|
11084
|
+
base_url: bool | str | Callable[[], str] = False,
|
11085
|
+
*,
|
11086
|
+
async_: Literal[False] = False,
|
11087
|
+
**request_kwargs,
|
11088
|
+
) -> dict:
|
11089
|
+
...
|
11090
|
+
@overload
|
11091
|
+
def fs_files_image(
|
11092
|
+
self,
|
11093
|
+
payload: int | str | dict,
|
11094
|
+
/,
|
11095
|
+
base_url: bool | str | Callable[[], str] = False,
|
11096
|
+
*,
|
11097
|
+
async_: Literal[True],
|
11098
|
+
**request_kwargs,
|
11099
|
+
) -> Coroutine[Any, Any, dict]:
|
11100
|
+
...
|
11101
|
+
def fs_files_image(
|
11102
|
+
self,
|
11103
|
+
payload: int | str | dict,
|
11104
|
+
/,
|
11105
|
+
base_url: bool | str | Callable[[], str] = False,
|
11106
|
+
*,
|
11107
|
+
async_: Literal[False, True] = False,
|
11108
|
+
**request_kwargs,
|
11109
|
+
) -> dict | Coroutine[Any, Any, dict]:
|
11110
|
+
"""获取目录中的图片列表和基本信息
|
11111
|
+
|
11112
|
+
GET https://webapi.115.com/files/imglist
|
11113
|
+
|
11114
|
+
.. danger::
|
11115
|
+
这个函数大概是有 bug 的,不推荐使用
|
11116
|
+
|
11117
|
+
.. attention::
|
11118
|
+
只能获取直属于 `cid` 所在目录的图片,不会遍历整个目录树
|
11119
|
+
|
11120
|
+
:payload:
|
11121
|
+
- cid: int | str 💡 目录 id,对应 parent_id
|
11122
|
+
- file_id: int | str 💡 不能是 0,可以不同于 `cid`,必须是任何一个有效的 id(单纯是被检查一下)
|
11123
|
+
- limit: int = <default> 💡 最多返回数量
|
11124
|
+
- offset: int = 0 💡 索引偏移,索引从 0 开始计算
|
11125
|
+
- is_asc: 0 | 1 = <default> 💡 是否升序排列
|
11126
|
+
- next: 0 | 1 = <default>
|
11127
|
+
- order: str = <default> 💡 用某字段排序
|
11128
|
+
|
11129
|
+
- 文件名:"file_name"
|
11130
|
+
- 文件大小:"file_size"
|
11131
|
+
- 文件种类:"file_type"
|
11132
|
+
- 修改时间:"user_utime"
|
11133
|
+
- 创建时间:"user_ptime"
|
11134
|
+
- 上一次打开时间:"user_otime"
|
11135
|
+
"""
|
11136
|
+
api = complete_webapi("/files/imglist", base_url=base_url)
|
11137
|
+
if isinstance(payload, (int, str)):
|
11138
|
+
payload = {"limit": 32, "offset": 0, "cid": payload}
|
11139
|
+
else:
|
11140
|
+
payload = {"limit": 32, "offset": 0, "cid": 0, **payload}
|
11141
|
+
if cid := payload.get("cid"):
|
11142
|
+
payload.setdefault("file_id", cid)
|
11143
|
+
return self.request(url=api, params=payload, async_=async_, **request_kwargs)
|
11144
|
+
|
11145
|
+
@overload
|
11146
|
+
def fs_files_image_app(
|
11147
|
+
self,
|
11148
|
+
payload: int | str | dict = 0,
|
11149
|
+
/,
|
11150
|
+
app: str = "android",
|
11151
|
+
base_url: bool | str | Callable[[], str] = False,
|
11152
|
+
*,
|
11153
|
+
async_: Literal[False] = False,
|
11154
|
+
**request_kwargs,
|
11155
|
+
) -> dict:
|
11156
|
+
...
|
11157
|
+
@overload
|
11158
|
+
def fs_files_image_app(
|
11159
|
+
self,
|
11160
|
+
payload: int | str | dict = 0,
|
11161
|
+
/,
|
11162
|
+
app: str = "android",
|
11163
|
+
base_url: bool | str | Callable[[], str] = False,
|
11164
|
+
*,
|
11165
|
+
async_: Literal[True],
|
11166
|
+
**request_kwargs,
|
11167
|
+
) -> Coroutine[Any, Any, dict]:
|
11168
|
+
...
|
11169
|
+
def fs_files_image_app(
|
11170
|
+
self,
|
11171
|
+
payload: int | str | dict = 0,
|
11172
|
+
/,
|
11173
|
+
app: str = "android",
|
11174
|
+
base_url: bool | str | Callable[[], str] = False,
|
11175
|
+
*,
|
11176
|
+
async_: Literal[False, True] = False,
|
11177
|
+
**request_kwargs,
|
11178
|
+
) -> dict | Coroutine[Any, Any, dict]:
|
11179
|
+
"""获取目录中的图片列表和基本信息
|
11180
|
+
|
11181
|
+
GET https://proapi.115.com/android/files/imglist
|
11182
|
+
|
11183
|
+
:payload:
|
11184
|
+
- cid: int | str = 0 💡 目录 id,对应 parent_id
|
11185
|
+
- limit: int = 32 💡 一页大小,建议控制在 <= 9000,不然会报错
|
11186
|
+
- offset: int = 0 💡 索引偏移,索引从 0 开始计算
|
11187
|
+
|
11188
|
+
- aid: int | str = 1 💡 area_id。1:正常文件 7:回收站文件 12:瞬间文件 120:彻底删除文件、简历附件
|
11189
|
+
- asc: 0 | 1 = <default> 💡 是否升序排列
|
11190
|
+
- cur: 0 | 1 = <default> 💡 只罗列当前目录
|
11191
|
+
- o: str = <default> 💡 用某字段排序
|
11192
|
+
|
11193
|
+
- 文件名:"file_name"
|
11194
|
+
- 文件大小:"file_size"
|
11195
|
+
- 文件种类:"file_type"
|
11196
|
+
- 修改时间:"user_utime"
|
11197
|
+
- 创建时间:"user_ptime"
|
11198
|
+
- 上一次打开时间:"user_otime"
|
11199
|
+
"""
|
11200
|
+
api = complete_proapi("/files/imglist", base_url, app)
|
11201
|
+
if isinstance(payload, (int, str)):
|
11202
|
+
payload = {"limit": 32, "offset": 0, "aid": 1, "cid": payload}
|
11203
|
+
else:
|
11204
|
+
payload = {"limit": 32, "offset": 0, "aid": 1, "cid": 0, **payload}
|
11205
|
+
return self.request(url=api, params=payload, async_=async_, **request_kwargs)
|
11206
|
+
|
11207
|
+
@overload
|
11208
|
+
def fs_files_media_app(
|
11209
|
+
self,
|
11210
|
+
payload: int | str | dict = 0,
|
11211
|
+
/,
|
11212
|
+
app: str = "android",
|
11213
|
+
base_url: bool | str | Callable[[], str] = False,
|
11214
|
+
*,
|
11215
|
+
async_: Literal[False] = False,
|
11216
|
+
**request_kwargs,
|
11217
|
+
) -> dict:
|
11218
|
+
...
|
11219
|
+
@overload
|
11220
|
+
def fs_files_media_app(
|
11221
|
+
self,
|
11222
|
+
payload: int | str | dict = 0,
|
11223
|
+
/,
|
11224
|
+
app: str = "android",
|
11225
|
+
base_url: bool | str | Callable[[], str] = False,
|
11226
|
+
*,
|
11227
|
+
async_: Literal[True],
|
11228
|
+
**request_kwargs,
|
11229
|
+
) -> Coroutine[Any, Any, dict]:
|
11230
|
+
...
|
11231
|
+
def fs_files_media_app(
|
11232
|
+
self,
|
11233
|
+
payload: int | str | dict = 0,
|
11234
|
+
/,
|
11235
|
+
app: str = "android",
|
11236
|
+
base_url: bool | str | Callable[[], str] = False,
|
11237
|
+
*,
|
11238
|
+
async_: Literal[False, True] = False,
|
11239
|
+
**request_kwargs,
|
11240
|
+
) -> dict | Coroutine[Any, Any, dict]:
|
11241
|
+
"""获取目录中的文件列表和基本信息
|
11242
|
+
|
11243
|
+
GET https://proapi.115.com/android/files/medialist
|
11244
|
+
|
11245
|
+
:payload:
|
11246
|
+
- cid: int | str = 0 💡 目录 id,对应 parent_id
|
11247
|
+
- limit: int = 32 💡 一页大小,建议控制在 <= 9000,不然会报错
|
11248
|
+
- offset: int = 0 💡 索引偏移,索引从 0 开始计算
|
11249
|
+
|
11250
|
+
- aid: int | str = 1 💡 area_id。1:正常文件 7:回收站文件 12:瞬间文件 120:彻底删除文件、简历附件
|
11251
|
+
- asc: 0 | 1 = <default> 💡 是否升序排列
|
11252
|
+
- cur: 0 | 1 = <default> 💡 只罗列当前目录
|
11253
|
+
- o: str = <default> 💡 用某字段排序
|
11254
|
+
|
11255
|
+
- 文件名:"file_name"
|
11256
|
+
- 文件大小:"file_size"
|
11257
|
+
- 文件种类:"file_type"
|
11258
|
+
- 修改时间:"user_utime"
|
11259
|
+
- 创建时间:"user_ptime"
|
11260
|
+
- 上一次打开时间:"user_otime"
|
11261
|
+
|
11262
|
+
- type: int = 0 💡 文件类型
|
11263
|
+
|
11264
|
+
- 0: 相当于 2
|
11265
|
+
- 1: 文档
|
11266
|
+
- 2: 图片
|
11267
|
+
- 3: 音频
|
11268
|
+
- 4: 视频
|
11269
|
+
- 5: 压缩包
|
11270
|
+
- 6: 软件/应用
|
11271
|
+
- 7: 书籍
|
11272
|
+
- ...: > 7 则相当于 1,< 0 则是全部文件
|
11273
|
+
"""
|
11274
|
+
api = complete_proapi("/files/medialist", base_url, app)
|
11275
|
+
if isinstance(payload, (int, str)):
|
11276
|
+
payload = {"limit": 32, "offset": 0, "aid": 1, "type": 0, "cid": payload}
|
11277
|
+
else:
|
11278
|
+
payload = {"limit": 32, "offset": 0, "aid": 1, "type": 0, "cid": 0, **payload}
|
11279
|
+
return self.request(url=api, params=payload, async_=async_, **request_kwargs)
|
11280
|
+
|
11071
11281
|
@overload
|
11072
11282
|
def fs_files_second_type(
|
11073
11283
|
self,
|
@@ -11107,13 +11317,13 @@ class P115Client(P115OpenClient):
|
|
11107
11317
|
- cid: int | str = 0 💡 目录 id,对应 parent_id
|
11108
11318
|
- type: int = 1 💡 文件类型
|
11109
11319
|
|
11110
|
-
|
11111
|
-
|
11112
|
-
|
11113
|
-
|
11114
|
-
|
11115
|
-
|
11116
|
-
|
11320
|
+
- 1: 文档
|
11321
|
+
- 2: 图片
|
11322
|
+
- 3: 音频
|
11323
|
+
- 4: 视频
|
11324
|
+
- 5: 压缩包
|
11325
|
+
- 6: 软件/应用
|
11326
|
+
- 7: 书籍
|
11117
11327
|
|
11118
11328
|
- file_label: int | str = <default> 💡 标签 id,多个用逗号 "," 隔开
|
11119
11329
|
"""
|
@@ -11672,15 +11882,15 @@ class P115Client(P115OpenClient):
|
|
11672
11882
|
:payload:
|
11673
11883
|
- type: int | str = 0 💡 类型(??表示还未搞清楚),多个用逗号 "," 隔开
|
11674
11884
|
|
11675
|
-
|
11676
|
-
|
11677
|
-
|
11678
|
-
|
11679
|
-
|
11680
|
-
|
11681
|
-
|
11682
|
-
|
11683
|
-
|
11885
|
+
- 全部: 0
|
11886
|
+
- ??: 1
|
11887
|
+
- 离线下载: 2
|
11888
|
+
- 播放视频: 3
|
11889
|
+
- 上传: 4
|
11890
|
+
- ??: 5
|
11891
|
+
- ??: 6(似乎是一些在离线、转存等过程中有重名的目录)
|
11892
|
+
- 接收: 7
|
11893
|
+
- 移动: 8
|
11684
11894
|
|
11685
11895
|
- with_file: 0 | 1 = 0
|
11686
11896
|
"""
|
@@ -11827,15 +12037,15 @@ class P115Client(P115OpenClient):
|
|
11827
12037
|
:payload:
|
11828
12038
|
- type: int | str = 0 💡 类型(??表示还未搞清楚),多个用逗号 "," 隔开
|
11829
12039
|
|
11830
|
-
|
11831
|
-
|
11832
|
-
|
11833
|
-
|
11834
|
-
|
11835
|
-
|
11836
|
-
|
11837
|
-
|
11838
|
-
|
12040
|
+
- 全部: 0
|
12041
|
+
- ??: 1
|
12042
|
+
- 离线下载: 2
|
12043
|
+
- 播放视频: 3
|
12044
|
+
- 上传: 4
|
12045
|
+
- ??: 5
|
12046
|
+
- ??: 6(似乎是一些在离线、转存等过程中有重名的目录)
|
12047
|
+
- 接收: 7
|
12048
|
+
- 移动: 8
|
11839
12049
|
|
11840
12050
|
- with_file: 0 | 1 = 0
|
11841
12051
|
"""
|
@@ -11887,15 +12097,15 @@ class P115Client(P115OpenClient):
|
|
11887
12097
|
- played_end: 0 | 1 = <default> 💡 是否已经播放完
|
11888
12098
|
- type: int = <default> 💡 类型(??表示还未搞清楚),多个用逗号 "," 隔开
|
11889
12099
|
|
11890
|
-
|
11891
|
-
|
11892
|
-
|
11893
|
-
|
11894
|
-
|
11895
|
-
|
11896
|
-
|
11897
|
-
|
11898
|
-
|
12100
|
+
- 全部: 0
|
12101
|
+
- ??: 1
|
12102
|
+
- 离线下载: 2
|
12103
|
+
- 播放视频: 3
|
12104
|
+
- 上传: 4
|
12105
|
+
- ??: 5
|
12106
|
+
- ??: 6(似乎是一些在离线、转存等过程中有重名的目录)
|
12107
|
+
- 接收: 7
|
12108
|
+
- 移动: 8
|
11899
12109
|
"""
|
11900
12110
|
api = complete_webapi("/history/list", base_url=base_url)
|
11901
12111
|
if isinstance(payload, (int, str)):
|
@@ -11948,15 +12158,15 @@ class P115Client(P115OpenClient):
|
|
11948
12158
|
- played_end: 0 | 1 = <default>
|
11949
12159
|
- type: int = <default> 💡 类型(??表示还未搞清楚),多个用逗号 "," 隔开
|
11950
12160
|
|
11951
|
-
|
11952
|
-
|
11953
|
-
|
11954
|
-
|
11955
|
-
|
11956
|
-
|
11957
|
-
|
11958
|
-
|
11959
|
-
|
12161
|
+
- 全部: 0
|
12162
|
+
- ??: 1
|
12163
|
+
- 离线下载: 2
|
12164
|
+
- 播放视频: 3
|
12165
|
+
- 上传: 4
|
12166
|
+
- ??: 5
|
12167
|
+
- ??: 6(似乎是一些在离线、转存等过程中有重名的目录)
|
12168
|
+
- 接收: 7
|
12169
|
+
- 移动: 8
|
11960
12170
|
"""
|
11961
12171
|
api = complete_proapi("/history/list", base_url, app)
|
11962
12172
|
if isinstance(payload, (int, str)):
|
@@ -12186,134 +12396,6 @@ class P115Client(P115OpenClient):
|
|
12186
12396
|
payload = {"imgurl": payload}
|
12187
12397
|
return self.request(url=api, method="POST", data=payload, async_=async_, **request_kwargs)
|
12188
12398
|
|
12189
|
-
@overload
|
12190
|
-
def fs_imglist(
|
12191
|
-
self,
|
12192
|
-
payload: int | str | dict,
|
12193
|
-
/,
|
12194
|
-
base_url: bool | str | Callable[[], str] = False,
|
12195
|
-
*,
|
12196
|
-
async_: Literal[False] = False,
|
12197
|
-
**request_kwargs,
|
12198
|
-
) -> dict:
|
12199
|
-
...
|
12200
|
-
@overload
|
12201
|
-
def fs_imglist(
|
12202
|
-
self,
|
12203
|
-
payload: int | str | dict,
|
12204
|
-
/,
|
12205
|
-
base_url: bool | str | Callable[[], str] = False,
|
12206
|
-
*,
|
12207
|
-
async_: Literal[True],
|
12208
|
-
**request_kwargs,
|
12209
|
-
) -> Coroutine[Any, Any, dict]:
|
12210
|
-
...
|
12211
|
-
def fs_imglist(
|
12212
|
-
self,
|
12213
|
-
payload: int | str | dict,
|
12214
|
-
/,
|
12215
|
-
base_url: bool | str | Callable[[], str] = False,
|
12216
|
-
*,
|
12217
|
-
async_: Literal[False, True] = False,
|
12218
|
-
**request_kwargs,
|
12219
|
-
) -> dict | Coroutine[Any, Any, dict]:
|
12220
|
-
"""获取目录中的图片列表和基本信息
|
12221
|
-
|
12222
|
-
GET https://webapi.115.com/files/imglist
|
12223
|
-
|
12224
|
-
.. danger::
|
12225
|
-
这个函数大概是有 bug 的,不推荐使用
|
12226
|
-
|
12227
|
-
.. attention::
|
12228
|
-
只能获取直属于 `cid` 所在目录的图片,不会遍历整个目录树
|
12229
|
-
|
12230
|
-
:payload:
|
12231
|
-
- cid: int | str 💡 目录 id,对应 parent_id
|
12232
|
-
- file_id: int | str 💡 不能是 0,可以不同于 `cid`,必须是任何一个有效的 id(单纯是被检查一下)
|
12233
|
-
- limit: int = <default> 💡 最多返回数量
|
12234
|
-
- offset: int = 0 💡 索引偏移,索引从 0 开始计算
|
12235
|
-
- is_asc: 0 | 1 = <default> 💡 是否升序排列
|
12236
|
-
- next: 0 | 1 = <default>
|
12237
|
-
- order: str = <default> 💡 用某字段排序
|
12238
|
-
|
12239
|
-
- 文件名:"file_name"
|
12240
|
-
- 文件大小:"file_size"
|
12241
|
-
- 文件种类:"file_type"
|
12242
|
-
- 修改时间:"user_utime"
|
12243
|
-
- 创建时间:"user_ptime"
|
12244
|
-
- 上一次打开时间:"user_otime"
|
12245
|
-
"""
|
12246
|
-
api = complete_webapi("/files/imglist", base_url=base_url)
|
12247
|
-
if isinstance(payload, (int, str)):
|
12248
|
-
payload = {"limit": 32, "offset": 0, "cid": payload}
|
12249
|
-
else:
|
12250
|
-
payload = {"limit": 32, "offset": 0, "cid": 0, **payload}
|
12251
|
-
if cid := payload.get("cid"):
|
12252
|
-
payload.setdefault("file_id", cid)
|
12253
|
-
return self.request(url=api, params=payload, async_=async_, **request_kwargs)
|
12254
|
-
|
12255
|
-
@overload
|
12256
|
-
def fs_imglist_app(
|
12257
|
-
self,
|
12258
|
-
payload: int | str | dict = 0,
|
12259
|
-
/,
|
12260
|
-
app: str = "android",
|
12261
|
-
base_url: bool | str | Callable[[], str] = False,
|
12262
|
-
*,
|
12263
|
-
async_: Literal[False] = False,
|
12264
|
-
**request_kwargs,
|
12265
|
-
) -> dict:
|
12266
|
-
...
|
12267
|
-
@overload
|
12268
|
-
def fs_imglist_app(
|
12269
|
-
self,
|
12270
|
-
payload: int | str | dict = 0,
|
12271
|
-
/,
|
12272
|
-
app: str = "android",
|
12273
|
-
base_url: bool | str | Callable[[], str] = False,
|
12274
|
-
*,
|
12275
|
-
async_: Literal[True],
|
12276
|
-
**request_kwargs,
|
12277
|
-
) -> Coroutine[Any, Any, dict]:
|
12278
|
-
...
|
12279
|
-
def fs_imglist_app(
|
12280
|
-
self,
|
12281
|
-
payload: int | str | dict = 0,
|
12282
|
-
/,
|
12283
|
-
app: str = "android",
|
12284
|
-
base_url: bool | str | Callable[[], str] = False,
|
12285
|
-
*,
|
12286
|
-
async_: Literal[False, True] = False,
|
12287
|
-
**request_kwargs,
|
12288
|
-
) -> dict | Coroutine[Any, Any, dict]:
|
12289
|
-
"""获取目录中的图片列表和基本信息
|
12290
|
-
|
12291
|
-
GET https://proapi.115.com/android/files/imglist
|
12292
|
-
|
12293
|
-
:payload:
|
12294
|
-
- cid: int | str = 0 💡 目录 id,对应 parent_id
|
12295
|
-
- limit: int = 32 💡 一页大小,建议控制在 <= 9000,不然会报错
|
12296
|
-
- offset: int = 0 💡 索引偏移,索引从 0 开始计算
|
12297
|
-
|
12298
|
-
- aid: int | str = 1 💡 area_id。1:正常文件 7:回收站文件 12:瞬间文件 120:彻底删除文件、简历附件
|
12299
|
-
- asc: 0 | 1 = <default> 💡 是否升序排列
|
12300
|
-
- cur: 0 | 1 = <default> 💡 只罗列当前目录
|
12301
|
-
- o: str = <default> 💡 用某字段排序
|
12302
|
-
|
12303
|
-
- 文件名:"file_name"
|
12304
|
-
- 文件大小:"file_size"
|
12305
|
-
- 文件种类:"file_type"
|
12306
|
-
- 修改时间:"user_utime"
|
12307
|
-
- 创建时间:"user_ptime"
|
12308
|
-
- 上一次打开时间:"user_otime"
|
12309
|
-
"""
|
12310
|
-
api = complete_proapi("/files/imglist", base_url, app)
|
12311
|
-
if isinstance(payload, (int, str)):
|
12312
|
-
payload = {"limit": 32, "offset": 0, "aid": 1, "cid": payload}
|
12313
|
-
else:
|
12314
|
-
payload = {"limit": 32, "offset": 0, "aid": 1, "cid": 0, **payload}
|
12315
|
-
return self.request(url=api, params=payload, async_=async_, **request_kwargs)
|
12316
|
-
|
12317
12399
|
@overload
|
12318
12400
|
def fs_index_info(
|
12319
12401
|
self,
|
@@ -12677,9 +12759,9 @@ class P115Client(P115OpenClient):
|
|
12677
12759
|
- keyword: str = <default> 💡 搜索关键词
|
12678
12760
|
- sort: "name" | "update_time" | "create_time" = <default> 💡 排序字段
|
12679
12761
|
|
12680
|
-
|
12681
|
-
|
12682
|
-
|
12762
|
+
- 名称: "name"
|
12763
|
+
- 创建时间: "create_time"
|
12764
|
+
- 更新时间: "update_time"
|
12683
12765
|
|
12684
12766
|
- order: "asc" | "desc" = <default> 💡 排序顺序:"asc"(升序), "desc"(降序)
|
12685
12767
|
"""
|
@@ -12734,9 +12816,9 @@ class P115Client(P115OpenClient):
|
|
12734
12816
|
- keyword: str = <default> 💡 搜索关键词
|
12735
12817
|
- sort: "name" | "update_time" | "create_time" = <default> 💡 排序字段
|
12736
12818
|
|
12737
|
-
|
12738
|
-
|
12739
|
-
|
12819
|
+
- 名称: "name"
|
12820
|
+
- 创建时间: "create_time"
|
12821
|
+
- 更新时间: "update_time"
|
12740
12822
|
|
12741
12823
|
- order: "asc" | "desc" = <default> 💡 排序顺序:"asc"(升序), "desc"(降序)
|
12742
12824
|
"""
|
@@ -12871,10 +12953,10 @@ class P115Client(P115OpenClient):
|
|
12871
12953
|
:payload:
|
12872
12954
|
- action: "add" | "remove" | "reset" | "replace" 💡 操作名
|
12873
12955
|
|
12874
|
-
|
12875
|
-
|
12876
|
-
|
12877
|
-
|
12956
|
+
- "add": 添加
|
12957
|
+
- "remove": 移除
|
12958
|
+
- "reset": 重设
|
12959
|
+
- "replace": 替换
|
12878
12960
|
|
12879
12961
|
- file_ids: int | str 💡 文件或目录 id,多个用逗号 "," 隔开
|
12880
12962
|
- file_label: int | str = <default> 💡 标签 id,多个用逗号 "," 隔开
|
@@ -12924,10 +13006,10 @@ class P115Client(P115OpenClient):
|
|
12924
13006
|
:payload:
|
12925
13007
|
- action: "add" | "remove" | "reset" | "replace" 💡 操作名
|
12926
13008
|
|
12927
|
-
|
12928
|
-
|
12929
|
-
|
12930
|
-
|
13009
|
+
- "add": 添加
|
13010
|
+
- "remove": 移除
|
13011
|
+
- "reset": 重设
|
13012
|
+
- "replace": 替换
|
12931
13013
|
|
12932
13014
|
- file_ids: int | str 💡 文件或目录 id,多个用逗号 "," 隔开
|
12933
13015
|
- file_label: int | str = <default> 💡 标签 id,多个用逗号 "," 隔开
|
@@ -14200,12 +14282,12 @@ class P115Client(P115OpenClient):
|
|
14200
14282
|
:payload:
|
14201
14283
|
- user_order: str 💡 用某字段排序
|
14202
14284
|
|
14203
|
-
|
14204
|
-
|
14205
|
-
|
14206
|
-
|
14207
|
-
|
14208
|
-
|
14285
|
+
- "file_name": 文件名
|
14286
|
+
- "file_size": 文件大小
|
14287
|
+
- "file_type": 文件种类
|
14288
|
+
- "user_utime": 修改时间
|
14289
|
+
- "user_ptime": 创建时间
|
14290
|
+
- "user_otime": 上一次打开时间
|
14209
14291
|
|
14210
14292
|
- file_id: int | str = 0 💡 目录 id,对应 parent_id
|
14211
14293
|
- user_asc: 0 | 1 = <default> 💡 是否升序排列
|
@@ -14263,12 +14345,12 @@ class P115Client(P115OpenClient):
|
|
14263
14345
|
:payload:
|
14264
14346
|
- user_order: str 💡 用某字段排序
|
14265
14347
|
|
14266
|
-
|
14267
|
-
|
14268
|
-
|
14269
|
-
|
14270
|
-
|
14271
|
-
|
14348
|
+
- "file_name": 文件名
|
14349
|
+
- "file_size": 文件大小
|
14350
|
+
- "file_type": 文件种类
|
14351
|
+
- "user_utime": 修改时间
|
14352
|
+
- "user_ptime": 创建时间
|
14353
|
+
- "user_otime": 上一次打开时间
|
14272
14354
|
|
14273
14355
|
- file_id: int | str = 0 💡 目录 id,对应 parent_id
|
14274
14356
|
- user_asc: 0 | 1 = <default> 💡 是否升序排列
|
@@ -14711,12 +14793,12 @@ class P115Client(P115OpenClient):
|
|
14711
14793
|
- limit: int = 32 💡 一页大小,意思就是 page_size
|
14712
14794
|
- o: str = <default> 💡 用某字段排序
|
14713
14795
|
|
14714
|
-
|
14715
|
-
|
14716
|
-
|
14717
|
-
|
14718
|
-
|
14719
|
-
|
14796
|
+
- "file_name": 文件名
|
14797
|
+
- "file_size": 文件大小
|
14798
|
+
- "file_type": 文件种类
|
14799
|
+
- "user_utime": 修改时间
|
14800
|
+
- "user_ptime": 创建时间
|
14801
|
+
- "user_otime": 上一次打开时间
|
14720
14802
|
|
14721
14803
|
- offset: int = 0 💡 索引偏移,索引从 0 开始计算
|
14722
14804
|
- pick_code: str = <default> 💡 是否查询提取码,如果该值为 1 则查询提取码为 `search_value` 的文件
|
@@ -14727,15 +14809,15 @@ class P115Client(P115OpenClient):
|
|
14727
14809
|
- suffix: str = <default> 💡 文件后缀(扩展名),优先级高于 `type`
|
14728
14810
|
- type: int = <default> 💡 文件类型
|
14729
14811
|
|
14730
|
-
|
14731
|
-
|
14732
|
-
|
14733
|
-
|
14734
|
-
|
14735
|
-
|
14736
|
-
|
14737
|
-
|
14738
|
-
|
14812
|
+
- 0: 全部(仅当前目录)
|
14813
|
+
- 1: 文档
|
14814
|
+
- 2: 图片
|
14815
|
+
- 3: 音频
|
14816
|
+
- 4: 视频
|
14817
|
+
- 5: 压缩包
|
14818
|
+
- 6: 软件/应用
|
14819
|
+
- 7: 书籍
|
14820
|
+
- 99: 所有文件
|
14739
14821
|
"""
|
14740
14822
|
api = complete_webapi("/files/search", base_url=base_url)
|
14741
14823
|
if isinstance(payload, str):
|
@@ -14808,12 +14890,12 @@ class P115Client(P115OpenClient):
|
|
14808
14890
|
- limit: int = 32 💡 一页大小,意思就是 page_size
|
14809
14891
|
- o: str = <default> 💡 用某字段排序
|
14810
14892
|
|
14811
|
-
|
14812
|
-
|
14813
|
-
|
14814
|
-
|
14815
|
-
|
14816
|
-
|
14893
|
+
- "file_name": 文件名
|
14894
|
+
- "file_size": 文件大小
|
14895
|
+
- "file_type": 文件种类
|
14896
|
+
- "user_utime": 修改时间
|
14897
|
+
- "user_ptime": 创建时间
|
14898
|
+
- "user_otime": 上一次打开时间
|
14817
14899
|
|
14818
14900
|
- offset: int = 0 💡 索引偏移,索引从 0 开始计算
|
14819
14901
|
- pick_code: str = <default> 💡 是否查询提取码,如果该值为 1 则查询提取码为 `search_value` 的文件
|
@@ -14824,15 +14906,15 @@ class P115Client(P115OpenClient):
|
|
14824
14906
|
- suffix: str = <default> 💡 后缀名(优先级高于 `type`)
|
14825
14907
|
- type: int = <default> 💡 文件类型
|
14826
14908
|
|
14827
|
-
|
14828
|
-
|
14829
|
-
|
14830
|
-
|
14831
|
-
|
14832
|
-
|
14833
|
-
|
14834
|
-
|
14835
|
-
|
14909
|
+
- 0: 全部(仅当前目录)
|
14910
|
+
- 1: 文档
|
14911
|
+
- 2: 图片
|
14912
|
+
- 3: 音频
|
14913
|
+
- 4: 视频
|
14914
|
+
- 5: 压缩包
|
14915
|
+
- 6: 软件/应用
|
14916
|
+
- 7: 书籍
|
14917
|
+
- 99: 所有文件
|
14836
14918
|
|
14837
14919
|
- version: str = <default> 💡 版本号,比如 3.1
|
14838
14920
|
"""
|
@@ -14909,12 +14991,12 @@ class P115Client(P115OpenClient):
|
|
14909
14991
|
- lte_day: str 💡 搜索结果匹配的结束时间;格式:YYYY-MM-DD
|
14910
14992
|
- o: str = <default> 💡 用某字段排序
|
14911
14993
|
|
14912
|
-
|
14913
|
-
|
14914
|
-
|
14915
|
-
|
14916
|
-
|
14917
|
-
|
14994
|
+
- "file_name": 文件名
|
14995
|
+
- "file_size": 文件大小
|
14996
|
+
- "file_type": 文件种类
|
14997
|
+
- "user_utime": 修改时间
|
14998
|
+
- "user_ptime": 创建时间
|
14999
|
+
- "user_otime": 上一次打开时间
|
14918
15000
|
|
14919
15001
|
- offset: int = 0 💡 索引偏移,索引从 0 开始计算
|
14920
15002
|
- pick_code: str = <default> 💡 是否查询提取码,如果该值为 1 则查询提取码为 `search_value` 的文件
|
@@ -14925,15 +15007,15 @@ class P115Client(P115OpenClient):
|
|
14925
15007
|
- suffix: str = <default> 💡 后缀名(优先级高于 `type`)
|
14926
15008
|
- type: int = <default> 💡 文件类型
|
14927
15009
|
|
14928
|
-
|
14929
|
-
|
14930
|
-
|
14931
|
-
|
14932
|
-
|
14933
|
-
|
14934
|
-
|
14935
|
-
|
14936
|
-
|
15010
|
+
- 0: 全部(仅当前目录)
|
15011
|
+
- 1: 文档
|
15012
|
+
- 2: 图片
|
15013
|
+
- 3: 音频
|
15014
|
+
- 4: 视频
|
15015
|
+
- 5: 压缩包
|
15016
|
+
- 6: 软件/应用
|
15017
|
+
- 7: 书籍
|
15018
|
+
- 99: 所有文件
|
14937
15019
|
|
14938
15020
|
- version: str = <default> 💡 版本号,比如 3.1
|
14939
15021
|
"""
|
@@ -15990,24 +16072,24 @@ class P115Client(P115OpenClient):
|
|
15990
16072
|
:payload:
|
15991
16073
|
- type: str = "" 💡 操作类型,若不指定则是全部
|
15992
16074
|
|
15993
|
-
|
15994
|
-
|
15995
|
-
|
15996
|
-
|
15997
|
-
|
15998
|
-
|
15999
|
-
|
16000
|
-
|
16001
|
-
|
16002
|
-
|
16003
|
-
|
16004
|
-
|
16005
|
-
|
16006
|
-
|
16007
|
-
|
16008
|
-
|
16009
|
-
|
16010
|
-
|
16075
|
+
- "upload_image_file": 1 💡 上传图片
|
16076
|
+
- "upload_file": 2 💡 上传文件或目录(不包括图片)
|
16077
|
+
- "star_image": 3 💡 给图片设置星标
|
16078
|
+
- "star_file": 4 💡 给文件或目录设置星标(不包括图片)
|
16079
|
+
- "move_image_file": 5 💡 移动图片
|
16080
|
+
- "move_file": 6 💡 移动文件或目录(不包括图片)
|
16081
|
+
- "browse_image": 7 💡 浏览图片
|
16082
|
+
- "browse_video": 8 💡 浏览视频
|
16083
|
+
- "browse_audio": 9 💡 浏览音频
|
16084
|
+
- "browse_document": 10 💡 浏览文档
|
16085
|
+
- "receive_files": 14 💡 接收文件
|
16086
|
+
- "new_folder": 17 💡 新增目录
|
16087
|
+
- "copy_folder": 18 💡 复制目录
|
16088
|
+
- "folder_label": 19 💡 目录设置标签
|
16089
|
+
- "folder_rename": 20 💡 目录改名
|
16090
|
+
- "delete_file": 22 💡 删除文件或目录
|
16091
|
+
- "copy_file": ? 💡 复制文件(未实现)
|
16092
|
+
- "rename_file": ? 💡 文件改名(未实现)
|
16011
16093
|
|
16012
16094
|
- limit: int = 32 💡 最大值为 1_000
|
16013
16095
|
- offset: int = 0
|
@@ -16061,24 +16143,24 @@ class P115Client(P115OpenClient):
|
|
16061
16143
|
:payload:
|
16062
16144
|
- type: str = "" 💡 操作类型
|
16063
16145
|
|
16064
|
-
|
16065
|
-
|
16066
|
-
|
16067
|
-
|
16068
|
-
|
16069
|
-
|
16070
|
-
|
16071
|
-
|
16072
|
-
|
16073
|
-
|
16074
|
-
|
16075
|
-
|
16076
|
-
|
16077
|
-
|
16078
|
-
|
16079
|
-
|
16080
|
-
|
16081
|
-
|
16146
|
+
- "upload_image_file": 1 💡 上传图片
|
16147
|
+
- "upload_file": 2 💡 上传文件或目录(不包括图片)
|
16148
|
+
- "star_image": 3 💡 给图片设置星标
|
16149
|
+
- "star_file": 4 💡 给文件或目录设置星标(不包括图片)
|
16150
|
+
- "move_image_file": 5 💡 移动图片
|
16151
|
+
- "move_file": 6 💡 移动文件或目录(不包括图片)
|
16152
|
+
- "browse_image": 7 💡 浏览图片
|
16153
|
+
- "browse_video": 8 💡 浏览视频
|
16154
|
+
- "browse_audio": 9 💡 浏览音频
|
16155
|
+
- "browse_document": 10 💡 浏览文档
|
16156
|
+
- "receive_files": 14 💡 接收文件
|
16157
|
+
- "new_folder": 17 💡 新增目录
|
16158
|
+
- "copy_folder": 18 💡 复制目录
|
16159
|
+
- "folder_label": 19 💡 目录设置标签
|
16160
|
+
- "folder_rename": 20 💡 目录改名
|
16161
|
+
- "delete_file": 22 💡 删除文件或目录
|
16162
|
+
- "copy_file": ? 💡 复制文件(未实现)
|
16163
|
+
- "rename_file": ? 💡 文件改名(未实现)
|
16082
16164
|
|
16083
16165
|
- limit: int = 32 💡 最大值为 1_000
|
16084
16166
|
- offset: int = 0
|
@@ -16091,6 +16173,108 @@ class P115Client(P115OpenClient):
|
|
16091
16173
|
payload = {"limit": 32, "offset": 0, **payload}
|
16092
16174
|
return self.request(url=api, params=payload, async_=async_, **request_kwargs)
|
16093
16175
|
|
16176
|
+
@overload
|
16177
|
+
def life_behavior_doc_post_app(
|
16178
|
+
self,
|
16179
|
+
payload: int | str | Iterable[int | str] | dict,
|
16180
|
+
/,
|
16181
|
+
app: str = "android",
|
16182
|
+
base_url: bool | str | Callable[[], str] = False,
|
16183
|
+
*,
|
16184
|
+
async_: Literal[False] = False,
|
16185
|
+
**request_kwargs,
|
16186
|
+
) -> dict:
|
16187
|
+
...
|
16188
|
+
@overload
|
16189
|
+
def life_behavior_doc_post_app(
|
16190
|
+
self,
|
16191
|
+
payload: int | str | Iterable[int | str] | dict,
|
16192
|
+
/,
|
16193
|
+
app: str = "android",
|
16194
|
+
base_url: bool | str | Callable[[], str] = False,
|
16195
|
+
*,
|
16196
|
+
async_: Literal[True],
|
16197
|
+
**request_kwargs,
|
16198
|
+
) -> Coroutine[Any, Any, dict]:
|
16199
|
+
...
|
16200
|
+
def life_behavior_doc_post_app(
|
16201
|
+
self,
|
16202
|
+
payload: int | str | Iterable[int | str] | dict,
|
16203
|
+
/,
|
16204
|
+
app: str = "android",
|
16205
|
+
base_url: bool | str | Callable[[], str] = False,
|
16206
|
+
*,
|
16207
|
+
async_: Literal[False, True] = False,
|
16208
|
+
**request_kwargs,
|
16209
|
+
) -> dict | Coroutine[Any, Any, dict]:
|
16210
|
+
"""推送事件:浏览文档 "browse_document"
|
16211
|
+
|
16212
|
+
POST https://proapi.115.com/android/files/doc_behavior
|
16213
|
+
|
16214
|
+
:payload:
|
16215
|
+
- file_id: int | str
|
16216
|
+
- file_id[0]: int | str
|
16217
|
+
- file_id[1]: int | str
|
16218
|
+
- ...
|
16219
|
+
"""
|
16220
|
+
api = complete_proapi("/files/doc_behavior", base_url, app)
|
16221
|
+
if isinstance(payload, (int, str)):
|
16222
|
+
payload = {"file_id": payload}
|
16223
|
+
elif not isinstance(payload, dict):
|
16224
|
+
payload = {f"file_id[{i}]": fid for i, fid in enumerate(payload)}
|
16225
|
+
return self.request(url=api, method="POST", data=payload, async_=async_, **request_kwargs)
|
16226
|
+
|
16227
|
+
@overload
|
16228
|
+
def life_behavior_img_post_app(
|
16229
|
+
self,
|
16230
|
+
payload: int | str | Iterable[int | str] | dict,
|
16231
|
+
/,
|
16232
|
+
app: str = "android",
|
16233
|
+
base_url: bool | str | Callable[[], str] = False,
|
16234
|
+
*,
|
16235
|
+
async_: Literal[False] = False,
|
16236
|
+
**request_kwargs,
|
16237
|
+
) -> dict:
|
16238
|
+
...
|
16239
|
+
@overload
|
16240
|
+
def life_behavior_img_post_app(
|
16241
|
+
self,
|
16242
|
+
payload: int | str | Iterable[int | str] | dict,
|
16243
|
+
/,
|
16244
|
+
app: str = "android",
|
16245
|
+
base_url: bool | str | Callable[[], str] = False,
|
16246
|
+
*,
|
16247
|
+
async_: Literal[True],
|
16248
|
+
**request_kwargs,
|
16249
|
+
) -> Coroutine[Any, Any, dict]:
|
16250
|
+
...
|
16251
|
+
def life_behavior_img_post_app(
|
16252
|
+
self,
|
16253
|
+
payload: int | str | Iterable[int | str] | dict,
|
16254
|
+
/,
|
16255
|
+
app: str = "android",
|
16256
|
+
base_url: bool | str | Callable[[], str] = False,
|
16257
|
+
*,
|
16258
|
+
async_: Literal[False, True] = False,
|
16259
|
+
**request_kwargs,
|
16260
|
+
) -> dict | Coroutine[Any, Any, dict]:
|
16261
|
+
"""推送事件:浏览图片 "browse_image"
|
16262
|
+
|
16263
|
+
POST https://proapi.115.com/android/files/img_behavior
|
16264
|
+
|
16265
|
+
:payload:
|
16266
|
+
- file_id: int | str
|
16267
|
+
- file_id[0]: int | str
|
16268
|
+
- file_id[1]: int | str
|
16269
|
+
- ...
|
16270
|
+
"""
|
16271
|
+
api = complete_proapi("/files/img_behavior", base_url, app)
|
16272
|
+
if isinstance(payload, (int, str)):
|
16273
|
+
payload = {"file_id": payload}
|
16274
|
+
elif not isinstance(payload, dict):
|
16275
|
+
payload = {f"file_id[{i}]": fid for i, fid in enumerate(payload)}
|
16276
|
+
return self.request(url=api, method="POST", data=payload, async_=async_, **request_kwargs)
|
16277
|
+
|
16094
16278
|
@overload
|
16095
16279
|
def life_calendar_getoption(
|
16096
16280
|
self,
|
@@ -16324,60 +16508,6 @@ class P115Client(P115OpenClient):
|
|
16324
16508
|
payload = {"start_time": payload}
|
16325
16509
|
return self.request(url=api, params=payload, async_=async_, **request_kwargs)
|
16326
16510
|
|
16327
|
-
@overload
|
16328
|
-
def life_img_behavior_post_app(
|
16329
|
-
self,
|
16330
|
-
payload: int | str | Iterable[int | str] | dict,
|
16331
|
-
/,
|
16332
|
-
app: str = "android",
|
16333
|
-
base_url: bool | str | Callable[[], str] = False,
|
16334
|
-
*,
|
16335
|
-
async_: Literal[False] = False,
|
16336
|
-
**request_kwargs,
|
16337
|
-
) -> dict:
|
16338
|
-
...
|
16339
|
-
@overload
|
16340
|
-
def life_img_behavior_post_app(
|
16341
|
-
self,
|
16342
|
-
payload: int | str | Iterable[int | str] | dict,
|
16343
|
-
/,
|
16344
|
-
app: str = "android",
|
16345
|
-
base_url: bool | str | Callable[[], str] = False,
|
16346
|
-
*,
|
16347
|
-
async_: Literal[True],
|
16348
|
-
**request_kwargs,
|
16349
|
-
) -> Coroutine[Any, Any, dict]:
|
16350
|
-
...
|
16351
|
-
def life_img_behavior_post_app(
|
16352
|
-
self,
|
16353
|
-
payload: int | str | Iterable[int | str] | dict,
|
16354
|
-
/,
|
16355
|
-
app: str = "android",
|
16356
|
-
base_url: bool | str | Callable[[], str] = False,
|
16357
|
-
*,
|
16358
|
-
async_: Literal[False, True] = False,
|
16359
|
-
**request_kwargs,
|
16360
|
-
) -> dict | Coroutine[Any, Any, dict]:
|
16361
|
-
"""推送事件:浏览图片 "browse_image"
|
16362
|
-
|
16363
|
-
POST https://proapi.115.com/android/files/img_behavior
|
16364
|
-
|
16365
|
-
.. note::
|
16366
|
-
如果提供的是目录的 id,则会把其中(直属的)图片记为浏览
|
16367
|
-
|
16368
|
-
:payload:
|
16369
|
-
- file_id: int | str
|
16370
|
-
- file_id[0]: int | str
|
16371
|
-
- file_id[1]: int | str
|
16372
|
-
- ...
|
16373
|
-
"""
|
16374
|
-
api = complete_proapi("/files/img_behavior", base_url, app)
|
16375
|
-
if isinstance(payload, (int, str)):
|
16376
|
-
payload = {"file_id": payload}
|
16377
|
-
elif not isinstance(payload, dict):
|
16378
|
-
payload = {f"file_id[{i}]": fid for i, fid in enumerate(payload)}
|
16379
|
-
return self.request(url=api, method="POST", data=payload, async_=async_, **request_kwargs)
|
16380
|
-
|
16381
16511
|
@overload
|
16382
16512
|
def life_list(
|
16383
16513
|
self,
|
@@ -18432,12 +18562,12 @@ class P115Client(P115OpenClient):
|
|
18432
18562
|
:payload:
|
18433
18563
|
- flag: int = 0 💡 标识,用于对应某种情况
|
18434
18564
|
|
18435
|
-
|
18436
|
-
|
18437
|
-
|
18438
|
-
|
18439
|
-
|
18440
|
-
|
18565
|
+
- 0: 已完成
|
18566
|
+
- 1: 全部
|
18567
|
+
- 2: 已失败
|
18568
|
+
- 3: 进行中
|
18569
|
+
- 4: 已完成+删除源文件
|
18570
|
+
- 5: 全部+删除源文件
|
18441
18571
|
"""
|
18442
18572
|
if isinstance(payload, int):
|
18443
18573
|
payload = {"flag": payload}
|
@@ -20100,12 +20230,12 @@ class P115Client(P115OpenClient):
|
|
20100
20230
|
- is_asc: 0 | 1 = 1 💡 是否升序排列
|
20101
20231
|
- order: str = "file_name" 💡 用某字段排序
|
20102
20232
|
|
20103
|
-
|
20104
|
-
|
20105
|
-
|
20106
|
-
|
20107
|
-
|
20108
|
-
|
20233
|
+
- "file_name": 文件名
|
20234
|
+
- "file_size": 文件大小
|
20235
|
+
- "file_type": 文件种类
|
20236
|
+
- "user_utime": 修改时间
|
20237
|
+
- "user_ptime": 创建时间
|
20238
|
+
- "user_otime": 上一次打开时间
|
20109
20239
|
|
20110
20240
|
- ignore_warn: 0 | 1 = 1 💡 忽略信息提示,传 1 就行了
|
20111
20241
|
"""
|
@@ -20159,12 +20289,12 @@ class P115Client(P115OpenClient):
|
|
20159
20289
|
- is_asc: 0 | 1 = 1 💡 是否升序排列
|
20160
20290
|
- order: str = "file_name" 💡 用某字段排序
|
20161
20291
|
|
20162
|
-
|
20163
|
-
|
20164
|
-
|
20165
|
-
|
20166
|
-
|
20167
|
-
|
20292
|
+
- "file_name": 文件名
|
20293
|
+
- "file_size": 文件大小
|
20294
|
+
- "file_type": 文件种类
|
20295
|
+
- "user_utime": 修改时间
|
20296
|
+
- "user_ptime": 创建时间
|
20297
|
+
- "user_otime": 上一次打开时间
|
20168
20298
|
|
20169
20299
|
- ignore_warn: 0 | 1 = 1 💡 忽略信息提示,传 1 就行了
|
20170
20300
|
"""
|
@@ -20223,15 +20353,15 @@ class P115Client(P115OpenClient):
|
|
20223
20353
|
- suffix: str = <default> 💡 文件后缀(扩展名),优先级高于 `type`
|
20224
20354
|
- type: int = <default> 💡 文件类型
|
20225
20355
|
|
20226
|
-
|
20227
|
-
|
20228
|
-
|
20229
|
-
|
20230
|
-
|
20231
|
-
|
20232
|
-
|
20233
|
-
|
20234
|
-
|
20356
|
+
- 0: 全部
|
20357
|
+
- 1: 文档
|
20358
|
+
- 2: 图片
|
20359
|
+
- 3: 音频
|
20360
|
+
- 4: 视频
|
20361
|
+
- 5: 压缩包
|
20362
|
+
- 6: 软件/应用
|
20363
|
+
- 7: 书籍
|
20364
|
+
- 99: 所有文件
|
20235
20365
|
"""
|
20236
20366
|
api = complete_webapi("/share/search", base_url=base_url)
|
20237
20367
|
payload = {"cid": 0, "limit": 32, "offset": 0, "search_value": ".", **payload}
|
@@ -20708,9 +20838,9 @@ class P115Client(P115OpenClient):
|
|
20708
20838
|
- asc: 0 | 1 = <default> 💡 是否升序排列
|
20709
20839
|
- o: str = <default> 💡 用某字段排序
|
20710
20840
|
|
20711
|
-
|
20712
|
-
|
20713
|
-
|
20841
|
+
- "file_name": 文件名
|
20842
|
+
- "file_size": 文件大小
|
20843
|
+
- "user_ptime": 创建时间/修改时间
|
20714
20844
|
"""
|
20715
20845
|
api = complete_webapi("/share/snap", base_url=base_url)
|
20716
20846
|
if isinstance(self, dict):
|
@@ -20783,9 +20913,9 @@ class P115Client(P115OpenClient):
|
|
20783
20913
|
- asc: 0 | 1 = <default> 💡 是否升序排列
|
20784
20914
|
- o: str = <default> 💡 用某字段排序
|
20785
20915
|
|
20786
|
-
|
20787
|
-
|
20788
|
-
|
20916
|
+
- "file_name": 文件名
|
20917
|
+
- "file_size": 文件大小
|
20918
|
+
- "user_ptime": 创建时间/修改时间
|
20789
20919
|
"""
|
20790
20920
|
api = complete_proapi("/2.0/share/snap", base_url, app)
|
20791
20921
|
if isinstance(self, dict):
|
@@ -21026,15 +21156,15 @@ class P115Client(P115OpenClient):
|
|
21026
21156
|
:payload:
|
21027
21157
|
- filter_field: "parents" | "file_name" | "" | "" = <default> 💡 保留条件(1. 用于批量删除)
|
21028
21158
|
|
21029
|
-
|
21030
|
-
|
21031
|
-
|
21032
|
-
|
21159
|
+
- "file_name": 文件名(按长度)
|
21160
|
+
- "parents": 所在目录路径(按长度)
|
21161
|
+
- "user_utime": 操作时间
|
21162
|
+
- "user_ptime": 创建时间
|
21033
21163
|
|
21034
21164
|
- filter_order: "asc" | "desc" = <default> 💡 排序(2. 用于批量删除)
|
21035
21165
|
|
21036
|
-
|
21037
|
-
|
21166
|
+
- "asc": 升序,从小到大,取最小
|
21167
|
+
- "desc": 降序,从大到小,取最大
|
21038
21168
|
|
21039
21169
|
- batch: 0 | 1 = <default> 💡 是否批量操作(3. 用于批量删除)
|
21040
21170
|
- sha1s[{sha1}]: int | str = <default> 💡 文件 id,多个用逗号 "," 隔开(1. 用于手动指定删除对象)
|