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 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
- attr["pick_code"] = attr["pickcode"]
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
- attr["pick_code"] = attr["pickcode"]
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
- attr["pick_code"] = attr["pickcode"]
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.status_code == 302:
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
- - "file_name": 文件名
3550
- - "file_size": 文件大小
3551
- - "file_type": 文件种类
3552
- - "user_etime": 事件时间(无效,效果相当于 "user_utime")
3553
- - "user_utime": 修改时间
3554
- - "user_ptime": 创建时间(无效,效果相当于 "user_utime")
3555
- - "user_otime": 上一次打开时间(无效,效果相当于 "user_utime")
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
- - 0: 全部(仅当前目录)
3571
- - 1: 文档
3572
- - 2: 图片
3573
- - 3: 音频
3574
- - 4: 视频
3575
- - 5: 压缩包
3576
- - 6: 软件/应用
3577
- - 7: 书籍
3578
- - 8: 其它
3579
- - 9: 相当于 8
3580
- - 10: 相当于 8
3581
- - 11: 相当于 8
3582
- - 12: ???
3583
- - 13: ???
3584
- - 14: ???
3585
- - 15: 图片和视频,相当于 2 和 4
3586
- - >= 16: 相当于 8
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
- - "file_name": 文件名
3846
- - "file_size": 文件大小
3847
- - "file_type": 文件种类
3848
- - "user_utime": 修改时间
3849
- - "user_ptime": 创建时间
3850
- - "user_otime": 上一次打开时间
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
- - 0: 全部(仅当前目录)
3862
- - 1: 文档
3863
- - 2: 图片
3864
- - 3: 音频
3865
- - 4: 视频
3866
- - 5: 压缩包
3867
- - 6: 软件/应用
3868
- - 7: 书籍
3869
- - 99: 仅文件
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
- - 0: 已完成
4387
- - 1: 全部
4388
- - 2: 已失败
4389
- - 3: 进行中
4390
- - 4: 已完成+删除源文件
4391
- - 5: 全部+删除源文件
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
- - 0: 全部
7326
- - 1: 进行中
7327
- - 2: 已实现
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
- - 0: 全部
7382
- - 1: 进行中
7383
- - 2: 已实现
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
- - "add": 添加
9269
- - "delete": 删除
9270
- - "top": 置顶
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
- - "file_name": 文件名
10472
- - "file_size": 文件大小
10473
- - "file_type": 文件种类
10474
- - "user_utime": 修改时间
10475
- - "user_ptime": 创建时间
10476
- - "user_otime": 上一次打开时间
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
- - 0: 全部(仅当前目录)
10494
- - 1: 文档
10495
- - 2: 图片
10496
- - 3: 音频
10497
- - 4: 视频
10498
- - 5: 压缩包
10499
- - 6: 软件/应用
10500
- - 7: 书籍
10501
- - 8: 其它
10502
- - 9: 相当于 8
10503
- - 10: 相当于 8
10504
- - 11: 相当于 8
10505
- - 12: ???
10506
- - 13: 相当于 3
10507
- - 14: ???
10508
- - 15: 图片和视频,相当于 2 和 4
10509
- - 16: ???
10510
- - 17~98: 相当于 8
10511
- - 99: 仅文件
10512
- - >=100: 相当于 8
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
- - "file_name": 文件名
10615
- - "file_size": 文件大小
10616
- - "file_type": 文件种类
10617
- - "user_etime": 事件时间(无效,效果相当于 "user_utime")
10618
- - "user_utime": 修改时间
10619
- - "user_ptime": 创建时间(无效,效果相当于 "user_utime")
10620
- - "user_otime": 上一次打开时间(无效,效果相当于 "user_utime")
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
- - 0: 全部(仅当前目录)
10635
- - 1: 文档
10636
- - 2: 图片
10637
- - 3: 音频
10638
- - 4: 视频
10639
- - 5: 压缩包
10640
- - 6: 软件/应用
10641
- - 7: 书籍
10642
- - 8: 其它
10643
- - 9: 相当于 8
10644
- - 10: 相当于 8
10645
- - 11: 相当于 8
10646
- - 12: ???
10647
- - 13: ???
10648
- - 14: ???
10649
- - 15: 图片和视频,相当于 2 和 4
10650
- - >= 16: 相当于 8
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
- - "file_name": 文件名
10745
- - "file_size": 文件大小
10746
- - "file_type": 文件种类
10747
- - "user_etime": 事件时间(无效,效果相当于 "user_utime")
10748
- - "user_utime": 修改时间
10749
- - "user_ptime": 创建时间(无效,效果相当于 "user_utime")
10750
- - "user_otime": 上一次打开时间(无效,效果相当于 "user_utime")
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
- - 0: 全部(仅当前目录)
10765
- - 1: 文档
10766
- - 2: 图片
10767
- - 3: 音频
10768
- - 4: 视频
10769
- - 5: 压缩包
10770
- - 6: 软件/应用
10771
- - 7: 书籍
10772
- - 8: 其它
10773
- - 9: 相当于 8
10774
- - 10: 相当于 8
10775
- - 11: 相当于 8
10776
- - 12: ???
10777
- - 13: ???
10778
- - 14: ???
10779
- - 15: 图片和视频,相当于 2 和 4
10780
- - >= 16: 相当于 8
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
- - 0: 全部(仅当前目录)
10885
- - 1: 文档
10886
- - 2: 图片
10887
- - 3: 音频
10888
- - 4: 视频
10889
- - 5: 压缩包
10890
- - 6: 软件/应用
10891
- - 7: 书籍
10892
- - 8: 其它
10893
- - 9: 相当于 8
10894
- - 10: 相当于 8
10895
- - 11: 相当于 8
10896
- - 12: ???
10897
- - 13: 相当于 3
10898
- - 14: ???
10899
- - 15: 图片和视频,相当于 2 和 4
10900
- - 16: ???
10901
- - 17~98: 相当于 8
10902
- - 99: 仅文件
10903
- - >=100: 相当于 8
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
- - 1: 文档
11111
- - 2: 图片
11112
- - 3: 音频
11113
- - 4: 视频
11114
- - 5: 压缩包
11115
- - 6: 软件/应用
11116
- - 7: 书籍
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
- - 全部: 0
11676
- - ??: 1
11677
- - 离线下载: 2
11678
- - 播放视频: 3
11679
- - 上传: 4
11680
- - ??: 5
11681
- - ??: 6(似乎是一些在离线、转存等过程中有重名的目录)
11682
- - 接收: 7
11683
- - 移动: 8
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
- - 全部: 0
11831
- - ??: 1
11832
- - 离线下载: 2
11833
- - 播放视频: 3
11834
- - 上传: 4
11835
- - ??: 5
11836
- - ??: 6(似乎是一些在离线、转存等过程中有重名的目录)
11837
- - 接收: 7
11838
- - 移动: 8
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
- - 全部: 0
11891
- - ??: 1
11892
- - 离线下载: 2
11893
- - 播放视频: 3
11894
- - 上传: 4
11895
- - ??: 5
11896
- - ??: 6(似乎是一些在离线、转存等过程中有重名的目录)
11897
- - 接收: 7
11898
- - 移动: 8
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
- - 全部: 0
11952
- - ??: 1
11953
- - 离线下载: 2
11954
- - 播放视频: 3
11955
- - 上传: 4
11956
- - ??: 5
11957
- - ??: 6(似乎是一些在离线、转存等过程中有重名的目录)
11958
- - 接收: 7
11959
- - 移动: 8
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
- - 名称: "name"
12681
- - 创建时间: "create_time"
12682
- - 更新时间: "update_time"
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
- - 名称: "name"
12738
- - 创建时间: "create_time"
12739
- - 更新时间: "update_time"
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
- - "add": 添加
12875
- - "remove": 移除
12876
- - "reset": 重设
12877
- - "replace": 替换
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
- - "add": 添加
12928
- - "remove": 移除
12929
- - "reset": 重设
12930
- - "replace": 替换
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
- - "file_name": 文件名
14204
- - "file_size": 文件大小
14205
- - "file_type": 文件种类
14206
- - "user_utime": 修改时间
14207
- - "user_ptime": 创建时间
14208
- - "user_otime": 上一次打开时间
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
- - "file_name": 文件名
14267
- - "file_size": 文件大小
14268
- - "file_type": 文件种类
14269
- - "user_utime": 修改时间
14270
- - "user_ptime": 创建时间
14271
- - "user_otime": 上一次打开时间
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
- - "file_name": 文件名
14715
- - "file_size": 文件大小
14716
- - "file_type": 文件种类
14717
- - "user_utime": 修改时间
14718
- - "user_ptime": 创建时间
14719
- - "user_otime": 上一次打开时间
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
- - 0: 全部(仅当前目录)
14731
- - 1: 文档
14732
- - 2: 图片
14733
- - 3: 音频
14734
- - 4: 视频
14735
- - 5: 压缩包
14736
- - 6: 软件/应用
14737
- - 7: 书籍
14738
- - 99: 仅文件
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
- - "file_name": 文件名
14812
- - "file_size": 文件大小
14813
- - "file_type": 文件种类
14814
- - "user_utime": 修改时间
14815
- - "user_ptime": 创建时间
14816
- - "user_otime": 上一次打开时间
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
- - 0: 全部(仅当前目录)
14828
- - 1: 文档
14829
- - 2: 图片
14830
- - 3: 音频
14831
- - 4: 视频
14832
- - 5: 压缩包
14833
- - 6: 软件/应用
14834
- - 7: 书籍
14835
- - 99: 仅文件
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
- - "file_name": 文件名
14913
- - "file_size": 文件大小
14914
- - "file_type": 文件种类
14915
- - "user_utime": 修改时间
14916
- - "user_ptime": 创建时间
14917
- - "user_otime": 上一次打开时间
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
- - 0: 全部(仅当前目录)
14929
- - 1: 文档
14930
- - 2: 图片
14931
- - 3: 音频
14932
- - 4: 视频
14933
- - 5: 压缩包
14934
- - 6: 软件/应用
14935
- - 7: 书籍
14936
- - 99: 仅文件
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
- - "upload_image_file": 1 💡 上传图片
15994
- - "upload_file": 2 💡 上传文件或目录(不包括图片)
15995
- - "star_image": 3 💡 给图片设置星标
15996
- - "star_file": 4 💡 给文件或目录设置星标(不包括图片)
15997
- - "move_image_file": 5 💡 移动图片
15998
- - "move_file": 6 💡 移动文件或目录(不包括图片)
15999
- - "browse_image": 7 💡 浏览图片
16000
- - "browse_video": 8 💡 浏览视频
16001
- - "browse_audio": 9 💡 浏览音频
16002
- - "browse_document": 10 💡 浏览文档
16003
- - "receive_files": 14 💡 接收文件
16004
- - "new_folder": 17 💡 新增目录
16005
- - "copy_folder": 18 💡 复制目录
16006
- - "folder_label": 19 💡 目录设置标签
16007
- - "folder_rename": 20 💡 目录改名
16008
- - "delete_file": 22 💡 删除文件或目录
16009
- - "copy_file": ? 💡 复制文件(未实现)
16010
- - "rename_file": ? 💡 文件改名(未实现)
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
- - "upload_image_file": 1 💡 上传图片
16065
- - "upload_file": 2 💡 上传文件或目录(不包括图片)
16066
- - "star_image": 3 💡 给图片设置星标
16067
- - "star_file": 4 💡 给文件或目录设置星标(不包括图片)
16068
- - "move_image_file": 5 💡 移动图片
16069
- - "move_file": 6 💡 移动文件或目录(不包括图片)
16070
- - "browse_image": 7 💡 浏览图片
16071
- - "browse_video": 8 💡 浏览视频
16072
- - "browse_audio": 9 💡 浏览音频
16073
- - "browse_document": 10 💡 浏览文档
16074
- - "receive_files": 14 💡 接收文件
16075
- - "new_folder": 17 💡 新增目录
16076
- - "copy_folder": 18 💡 复制目录
16077
- - "folder_label": 19 💡 目录设置标签
16078
- - "folder_rename": 20 💡 目录改名
16079
- - "delete_file": 22 💡 删除文件或目录
16080
- - "copy_file": ? 💡 复制文件(未实现)
16081
- - "rename_file": ? 💡 文件改名(未实现)
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
- - 0: 已完成
18436
- - 1: 全部
18437
- - 2: 已失败
18438
- - 3: 进行中
18439
- - 4: 已完成+删除源文件
18440
- - 5: 全部+删除源文件
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
- - "file_name": 文件名
20104
- - "file_size": 文件大小
20105
- - "file_type": 文件种类
20106
- - "user_utime": 修改时间
20107
- - "user_ptime": 创建时间
20108
- - "user_otime": 上一次打开时间
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
- - "file_name": 文件名
20163
- - "file_size": 文件大小
20164
- - "file_type": 文件种类
20165
- - "user_utime": 修改时间
20166
- - "user_ptime": 创建时间
20167
- - "user_otime": 上一次打开时间
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
- - 0: 全部
20227
- - 1: 文档
20228
- - 2: 图片
20229
- - 3: 音频
20230
- - 4: 视频
20231
- - 5: 压缩包
20232
- - 6: 软件/应用
20233
- - 7: 书籍
20234
- - 99: 仅文件
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
- - "file_name": 文件名
20712
- - "file_size": 文件大小
20713
- - "user_ptime": 创建时间/修改时间
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
- - "file_name": 文件名
20787
- - "file_size": 文件大小
20788
- - "user_ptime": 创建时间/修改时间
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
- - "file_name": 文件名(按长度)
21030
- - "parents": 所在目录路径(按长度)
21031
- - "user_utime": 操作时间
21032
- - "user_ptime": 创建时间
21159
+ - "file_name": 文件名(按长度)
21160
+ - "parents": 所在目录路径(按长度)
21161
+ - "user_utime": 操作时间
21162
+ - "user_ptime": 创建时间
21033
21163
 
21034
21164
  - filter_order: "asc" | "desc" = <default> 💡 排序(2. 用于批量删除)
21035
21165
 
21036
- - "asc": 升序,从小到大,取最小
21037
- - "desc": 降序,从大到小,取最大
21166
+ - "asc": 升序,从小到大,取最小
21167
+ - "desc": 降序,从大到小,取最大
21038
21168
 
21039
21169
  - batch: 0 | 1 = <default> 💡 是否批量操作(3. 用于批量删除)
21040
21170
  - sha1s[{sha1}]: int | str = <default> 💡 文件 id,多个用逗号 "," 隔开(1. 用于手动指定删除对象)