p123client 0.0.6.6__py3-none-any.whl → 0.0.6.8__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.
- p123client/client.py +251 -12
- p123client/tool/__init__.py +3 -3
- {p123client-0.0.6.6.dist-info → p123client-0.0.6.8.dist-info}/METADATA +2 -2
- {p123client-0.0.6.6.dist-info → p123client-0.0.6.8.dist-info}/RECORD +6 -6
- {p123client-0.0.6.6.dist-info → p123client-0.0.6.8.dist-info}/LICENSE +0 -0
- {p123client-0.0.6.6.dist-info → p123client-0.0.6.8.dist-info}/WHEEL +0 -0
p123client/client.py
CHANGED
@@ -374,7 +374,7 @@ class P123OpenClient:
|
|
374
374
|
check_response(resp)
|
375
375
|
self.token = resp["data"]["accessToken"]
|
376
376
|
return resp
|
377
|
-
return run_gen_step(gen_step, async_
|
377
|
+
return run_gen_step(gen_step, async_)
|
378
378
|
|
379
379
|
@overload
|
380
380
|
@staticmethod
|
@@ -2860,7 +2860,7 @@ class P123OpenClient:
|
|
2860
2860
|
"duplicate": duplicate,
|
2861
2861
|
"slice_size": slice_size,
|
2862
2862
|
}) from e
|
2863
|
-
return run_gen_step(gen_step, async_
|
2863
|
+
return run_gen_step(gen_step, async_)
|
2864
2864
|
|
2865
2865
|
@overload
|
2866
2866
|
def share_create(
|
@@ -4216,7 +4216,7 @@ class P123OpenClient:
|
|
4216
4216
|
"duplicate": duplicate,
|
4217
4217
|
"slice_size": slice_size,
|
4218
4218
|
}) from e
|
4219
|
-
return run_gen_step(gen_step, async_
|
4219
|
+
return run_gen_step(gen_step, async_)
|
4220
4220
|
|
4221
4221
|
@overload
|
4222
4222
|
def user_info(
|
@@ -4418,7 +4418,7 @@ class P123Client(P123OpenClient):
|
|
4418
4418
|
check_response(resp)
|
4419
4419
|
self.token = resp["data"]["token"]
|
4420
4420
|
return resp
|
4421
|
-
return run_gen_step(gen_step, async_
|
4421
|
+
return run_gen_step(gen_step, async_)
|
4422
4422
|
|
4423
4423
|
@overload
|
4424
4424
|
@staticmethod
|
@@ -4459,6 +4459,45 @@ class P123Client(P123OpenClient):
|
|
4459
4459
|
request_kwargs["async_"] = async_
|
4460
4460
|
return request(**request_kwargs)
|
4461
4461
|
|
4462
|
+
@overload
|
4463
|
+
@staticmethod
|
4464
|
+
def app_server_time(
|
4465
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
4466
|
+
request: None | Callable = None,
|
4467
|
+
*,
|
4468
|
+
async_: Literal[False] = False,
|
4469
|
+
**request_kwargs,
|
4470
|
+
) -> dict:
|
4471
|
+
...
|
4472
|
+
@overload
|
4473
|
+
@staticmethod
|
4474
|
+
def app_server_time(
|
4475
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
4476
|
+
request: None | Callable = None,
|
4477
|
+
*,
|
4478
|
+
async_: Literal[True],
|
4479
|
+
**request_kwargs,
|
4480
|
+
) -> Coroutine[Any, Any, dict]:
|
4481
|
+
...
|
4482
|
+
@staticmethod
|
4483
|
+
def app_server_time(
|
4484
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
4485
|
+
request: None | Callable = None,
|
4486
|
+
*,
|
4487
|
+
async_: Literal[False, True] = False,
|
4488
|
+
**request_kwargs,
|
4489
|
+
) -> dict | Coroutine[Any, Any, dict]:
|
4490
|
+
"""获取 123 网盘的服务器时间戳
|
4491
|
+
|
4492
|
+
GET https://www.123pan.com/api/get/server/time
|
4493
|
+
"""
|
4494
|
+
request_kwargs["url"] = complete_url("/api/get/server/time", base_url)
|
4495
|
+
request_kwargs.setdefault("parse", default_parse)
|
4496
|
+
if request is None:
|
4497
|
+
request = get_default_request()
|
4498
|
+
request_kwargs["async_"] = async_
|
4499
|
+
return request(**request_kwargs)
|
4500
|
+
|
4462
4501
|
@overload
|
4463
4502
|
def download_info(
|
4464
4503
|
self,
|
@@ -4551,7 +4590,7 @@ class P123Client(P123OpenClient):
|
|
4551
4590
|
async_=async_,
|
4552
4591
|
**request_kwargs,
|
4553
4592
|
)
|
4554
|
-
return run_gen_step(gen_step, async_
|
4593
|
+
return run_gen_step(gen_step, async_)
|
4555
4594
|
|
4556
4595
|
@overload
|
4557
4596
|
def download_info_batch(
|
@@ -4712,7 +4751,7 @@ class P123Client(P123OpenClient):
|
|
4712
4751
|
)
|
4713
4752
|
check_response(resp)
|
4714
4753
|
return resp["data"]["downloadUrl"]
|
4715
|
-
return run_gen_step(gen_step, async_
|
4754
|
+
return run_gen_step(gen_step, async_)
|
4716
4755
|
|
4717
4756
|
@overload
|
4718
4757
|
def fs_copy(
|
@@ -4788,7 +4827,7 @@ class P123Client(P123OpenClient):
|
|
4788
4827
|
async_=async_,
|
4789
4828
|
**request_kwargs,
|
4790
4829
|
)
|
4791
|
-
return run_gen_step(gen_step, async_
|
4830
|
+
return run_gen_step(gen_step, async_)
|
4792
4831
|
|
4793
4832
|
@overload
|
4794
4833
|
def fs_detail(
|
@@ -5151,7 +5190,7 @@ class P123Client(P123OpenClient):
|
|
5151
5190
|
- next: int = 0 💡 下一批拉取开始的 id
|
5152
5191
|
- orderBy: str = "file_id" 💡 排序依据
|
5153
5192
|
|
5154
|
-
- "
|
5193
|
+
- "fileId": 文件 id
|
5155
5194
|
- "file_name": 文件名
|
5156
5195
|
- "size": 文件大小
|
5157
5196
|
- "create_at": 创建时间
|
@@ -5160,7 +5199,7 @@ class P123Client(P123OpenClient):
|
|
5160
5199
|
- ...
|
5161
5200
|
|
5162
5201
|
- orderDirection: "asc" | "desc" = "asc" 💡 排序顺序
|
5163
|
-
- Page: int =
|
5202
|
+
- Page: int = 1 💡 第几页,从 1 开始
|
5164
5203
|
- parentFileId: int | str = 0 💡 父目录 id
|
5165
5204
|
- trashed: "false" | "true" = <default> 💡 是否查看回收站的文件
|
5166
5205
|
- inDirectSpace: "false" | "true" = "false"
|
@@ -5171,8 +5210,13 @@ class P123Client(P123OpenClient):
|
|
5171
5210
|
- "syncFileList": 同步空间
|
5172
5211
|
|
5173
5212
|
- operateType: int | str = <default> 💡 操作类型,如果在同步空间,则需要指定为 "SyncSpacePage"
|
5213
|
+
|
5214
|
+
.. note::
|
5215
|
+
这个值似乎不影响结果,所以可以忽略。我在浏览器中,看到罗列根目录为 1,搜索(指定 `SearchData`)为 2,同步空间的根目录为 3,罗列其它目录大多为 4,偶尔为 8,也可能是其它值
|
5216
|
+
|
5174
5217
|
- SearchData: str = <default> 💡 搜索关键字(将无视 `parentFileId` 参数)
|
5175
|
-
- OnlyLookAbnormalFile: int =
|
5218
|
+
- OnlyLookAbnormalFile: int = 0 💡 大概可传入 0 或 1
|
5219
|
+
- RequestSource: int = <default> 💡 浏览器中,在同步空间中为 1
|
5176
5220
|
"""
|
5177
5221
|
if isinstance(payload, (int, str)):
|
5178
5222
|
payload = {"parentFileId": payload}
|
@@ -5185,6 +5229,8 @@ class P123Client(P123OpenClient):
|
|
5185
5229
|
"parentFileId": 0,
|
5186
5230
|
"inDirectSpace": "false",
|
5187
5231
|
"event": event,
|
5232
|
+
"OnlyLookAbnormalFile": 0,
|
5233
|
+
"Page": 1,
|
5188
5234
|
})
|
5189
5235
|
if not payload.get("trashed"):
|
5190
5236
|
match payload["event"]:
|
@@ -5322,6 +5368,50 @@ class P123Client(P123OpenClient):
|
|
5322
5368
|
**request_kwargs,
|
5323
5369
|
)
|
5324
5370
|
|
5371
|
+
@overload
|
5372
|
+
def fs_fresh(
|
5373
|
+
self,
|
5374
|
+
payload: dict = {},
|
5375
|
+
/,
|
5376
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
5377
|
+
*,
|
5378
|
+
async_: Literal[False] = False,
|
5379
|
+
**request_kwargs,
|
5380
|
+
) -> dict:
|
5381
|
+
...
|
5382
|
+
@overload
|
5383
|
+
def fs_fresh(
|
5384
|
+
self,
|
5385
|
+
payload: dict = {},
|
5386
|
+
/,
|
5387
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
5388
|
+
*,
|
5389
|
+
async_: Literal[True],
|
5390
|
+
**request_kwargs,
|
5391
|
+
) -> Coroutine[Any, Any, dict]:
|
5392
|
+
...
|
5393
|
+
def fs_fresh(
|
5394
|
+
self,
|
5395
|
+
payload: dict = {},
|
5396
|
+
/,
|
5397
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
5398
|
+
*,
|
5399
|
+
async_: Literal[False, True] = False,
|
5400
|
+
**request_kwargs,
|
5401
|
+
) -> dict | Coroutine[Any, Any, dict]:
|
5402
|
+
"""刷新列表和直链缓存
|
5403
|
+
|
5404
|
+
POST https://www.123pan.com/api/restful/goapi/v1/cdnLink/cache/refresh
|
5405
|
+
"""
|
5406
|
+
return self.request(
|
5407
|
+
"restful/goapi/v1/cdnLink/cache/refresh",
|
5408
|
+
"POST",
|
5409
|
+
json=payload,
|
5410
|
+
base_url=base_url,
|
5411
|
+
async_=async_,
|
5412
|
+
**request_kwargs,
|
5413
|
+
)
|
5414
|
+
|
5325
5415
|
@overload # type: ignore
|
5326
5416
|
def fs_rename(
|
5327
5417
|
self,
|
@@ -5378,6 +5468,56 @@ class P123Client(P123OpenClient):
|
|
5378
5468
|
**request_kwargs,
|
5379
5469
|
)
|
5380
5470
|
|
5471
|
+
@overload
|
5472
|
+
def fs_sync_log(
|
5473
|
+
self,
|
5474
|
+
payload: dict | int = 1,
|
5475
|
+
/,
|
5476
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
5477
|
+
*,
|
5478
|
+
async_: Literal[False] = False,
|
5479
|
+
**request_kwargs,
|
5480
|
+
) -> dict:
|
5481
|
+
...
|
5482
|
+
@overload
|
5483
|
+
def fs_sync_log(
|
5484
|
+
self,
|
5485
|
+
payload: dict | int = 1,
|
5486
|
+
/,
|
5487
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
5488
|
+
*,
|
5489
|
+
async_: Literal[True],
|
5490
|
+
**request_kwargs,
|
5491
|
+
) -> Coroutine[Any, Any, dict]:
|
5492
|
+
...
|
5493
|
+
def fs_sync_log(
|
5494
|
+
self,
|
5495
|
+
payload: dict | int = 1,
|
5496
|
+
/,
|
5497
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
5498
|
+
*,
|
5499
|
+
async_: Literal[False, True] = False,
|
5500
|
+
**request_kwargs,
|
5501
|
+
) -> dict | Coroutine[Any, Any, dict]:
|
5502
|
+
"""获取同步空间的操作记录
|
5503
|
+
|
5504
|
+
GET https://www.123pan.com/api/restful/goapi/v1/sync-disk/file/log
|
5505
|
+
|
5506
|
+
:payload:
|
5507
|
+
- page: int = 1 💡 第几页
|
5508
|
+
- pageSize: int = 100 💡 每页大小
|
5509
|
+
- searchData: str = <default> 💡 搜索关键字
|
5510
|
+
"""
|
5511
|
+
if not isinstance(payload, dict):
|
5512
|
+
payload = {"page": payload, "pageSize": 100}
|
5513
|
+
return self.request(
|
5514
|
+
"restful/goapi/v1/sync-disk/file/log",
|
5515
|
+
params=payload,
|
5516
|
+
base_url=base_url,
|
5517
|
+
async_=async_,
|
5518
|
+
**request_kwargs,
|
5519
|
+
)
|
5520
|
+
|
5381
5521
|
@overload # type: ignore
|
5382
5522
|
def fs_trash(
|
5383
5523
|
self,
|
@@ -5433,6 +5573,8 @@ class P123Client(P123OpenClient):
|
|
5433
5573
|
- "recycleRestore": 移出回收站
|
5434
5574
|
|
5435
5575
|
- operation: bool = <default>
|
5576
|
+
- operatePlace: int = <default>
|
5577
|
+
- RequestSource: int = <default>
|
5436
5578
|
"""
|
5437
5579
|
if isinstance(payload, (int, str)):
|
5438
5580
|
payload = {"fileTrashInfoList": [{"FileId": payload}]}
|
@@ -7102,7 +7244,7 @@ class P123Client(P123OpenClient):
|
|
7102
7244
|
async_=async_,
|
7103
7245
|
**request_kwargs,
|
7104
7246
|
)
|
7105
|
-
return run_gen_step(gen_step, async_
|
7247
|
+
return run_gen_step(gen_step, async_)
|
7106
7248
|
|
7107
7249
|
@overload
|
7108
7250
|
def upload_file_fast(
|
@@ -7263,7 +7405,56 @@ class P123Client(P123OpenClient):
|
|
7263
7405
|
async_=async_,
|
7264
7406
|
**request_kwargs,
|
7265
7407
|
)
|
7266
|
-
return run_gen_step(gen_step, async_
|
7408
|
+
return run_gen_step(gen_step, async_)
|
7409
|
+
|
7410
|
+
@overload
|
7411
|
+
def user_device_list(
|
7412
|
+
self,
|
7413
|
+
payload: dict | str = "deviceManagement",
|
7414
|
+
/,
|
7415
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
7416
|
+
*,
|
7417
|
+
async_: Literal[False] = False,
|
7418
|
+
**request_kwargs,
|
7419
|
+
) -> dict:
|
7420
|
+
...
|
7421
|
+
@overload
|
7422
|
+
def user_device_list(
|
7423
|
+
self,
|
7424
|
+
payload: dict | str = "deviceManagement",
|
7425
|
+
/,
|
7426
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
7427
|
+
*,
|
7428
|
+
async_: Literal[True],
|
7429
|
+
**request_kwargs,
|
7430
|
+
) -> Coroutine[Any, Any, dict]:
|
7431
|
+
...
|
7432
|
+
def user_device_list(
|
7433
|
+
self,
|
7434
|
+
payload: dict | str = "deviceManagement",
|
7435
|
+
/,
|
7436
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
7437
|
+
*,
|
7438
|
+
async_: Literal[False, True] = False,
|
7439
|
+
**request_kwargs,
|
7440
|
+
) -> dict | Coroutine[Any, Any, dict]:
|
7441
|
+
"""用户设备列表
|
7442
|
+
|
7443
|
+
GET https://www.123pan.com/api/user/device_list
|
7444
|
+
|
7445
|
+
:payload:
|
7446
|
+
- event: str = "deviceManagement" 💡 事件类型,"deviceManagement" 为管理登录设备列表
|
7447
|
+
- operateType: int = <default>
|
7448
|
+
"""
|
7449
|
+
if not isinstance(payload, dict):
|
7450
|
+
payload = {"event": payload}
|
7451
|
+
return self.request(
|
7452
|
+
"user/device_list",
|
7453
|
+
params=payload,
|
7454
|
+
base_url=base_url,
|
7455
|
+
async_=async_,
|
7456
|
+
**request_kwargs,
|
7457
|
+
)
|
7267
7458
|
|
7268
7459
|
@overload
|
7269
7460
|
def user_info(
|
@@ -7357,6 +7548,54 @@ class P123Client(P123OpenClient):
|
|
7357
7548
|
request_kwargs["async_"] = async_
|
7358
7549
|
return request(url=api, method="POST", json=payload, **request_kwargs)
|
7359
7550
|
|
7551
|
+
@overload
|
7552
|
+
def user_use_history(
|
7553
|
+
self,
|
7554
|
+
payload: dict | str = "loginRecord",
|
7555
|
+
/,
|
7556
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
7557
|
+
*,
|
7558
|
+
async_: Literal[False] = False,
|
7559
|
+
**request_kwargs,
|
7560
|
+
) -> dict:
|
7561
|
+
...
|
7562
|
+
@overload
|
7563
|
+
def user_use_history(
|
7564
|
+
self,
|
7565
|
+
payload: dict | str = "loginRecord",
|
7566
|
+
/,
|
7567
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
7568
|
+
*,
|
7569
|
+
async_: Literal[True],
|
7570
|
+
**request_kwargs,
|
7571
|
+
) -> Coroutine[Any, Any, dict]:
|
7572
|
+
...
|
7573
|
+
def user_use_history(
|
7574
|
+
self,
|
7575
|
+
payload: dict | str = "loginRecord",
|
7576
|
+
/,
|
7577
|
+
base_url: str | Callable[[], str] = DEFAULT_BASE_URL,
|
7578
|
+
*,
|
7579
|
+
async_: Literal[False, True] = False,
|
7580
|
+
**request_kwargs,
|
7581
|
+
) -> dict | Coroutine[Any, Any, dict]:
|
7582
|
+
"""用户使用记录
|
7583
|
+
|
7584
|
+
GET https://www.123pan.com/api/user/use_history
|
7585
|
+
|
7586
|
+
:payload:
|
7587
|
+
- event: str = "loginRecord" 💡 事件类型,"loginRecord" 为登录记录
|
7588
|
+
"""
|
7589
|
+
if not isinstance(payload, dict):
|
7590
|
+
payload = {"event": payload}
|
7591
|
+
return self.request(
|
7592
|
+
"user/use_history",
|
7593
|
+
params=payload,
|
7594
|
+
base_url=base_url,
|
7595
|
+
async_=async_,
|
7596
|
+
**request_kwargs,
|
7597
|
+
)
|
7598
|
+
|
7360
7599
|
# TODO: 添加扫码登录接口,以及通过扫码登录的方法
|
7361
7600
|
# TODO: 添加 同步空间 和 直链空间 的操作接口
|
7362
7601
|
# TODO: 添加 图床 的操作接口
|
p123client/tool/__init__.py
CHANGED
@@ -73,7 +73,7 @@ def make_uri(
|
|
73
73
|
size = info["Size"]
|
74
74
|
s3_key_flag = info["S3KeyFlag"]
|
75
75
|
return f"123://{name}|{size}|{md5}?{s3_key_flag}"
|
76
|
-
return run_gen_step(gen_step, async_
|
76
|
+
return run_gen_step(gen_step, async_)
|
77
77
|
|
78
78
|
|
79
79
|
@overload
|
@@ -213,7 +213,7 @@ def get_downurl(
|
|
213
213
|
resp = yield client.download_info(payload, async_=async_, **request_kwargs)
|
214
214
|
check_response(resp)
|
215
215
|
return resp["data"]["DownloadUrl"]
|
216
|
-
return run_gen_step(gen_step, async_
|
216
|
+
return run_gen_step(gen_step, async_)
|
217
217
|
|
218
218
|
|
219
219
|
@overload
|
@@ -333,7 +333,7 @@ def _iterdir(
|
|
333
333
|
break
|
334
334
|
if next_id := resp["data"]["Next"]:
|
335
335
|
payload["next"] = next_id
|
336
|
-
return run_gen_step_iter(gen_step, async_
|
336
|
+
return run_gen_step_iter(gen_step, async_)
|
337
337
|
|
338
338
|
|
339
339
|
@overload
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: p123client
|
3
|
-
Version: 0.0.6.
|
3
|
+
Version: 0.0.6.8
|
4
4
|
Summary: Python 123 webdisk client.
|
5
5
|
Home-page: https://github.com/ChenyangGao/p123client
|
6
6
|
License: MIT
|
@@ -31,7 +31,7 @@ Requires-Dist: python-filewrap (>=0.2.6.1)
|
|
31
31
|
Requires-Dist: python-hashtools (>=0.0.3.3)
|
32
32
|
Requires-Dist: python-http_request (>=0.0.7)
|
33
33
|
Requires-Dist: python-httpfile (>=0.0.5)
|
34
|
-
Requires-Dist: python-iterutils (>=0.2)
|
34
|
+
Requires-Dist: python-iterutils (>=0.2.4.1)
|
35
35
|
Requires-Dist: python-property (>=0.0.3)
|
36
36
|
Requires-Dist: yarl
|
37
37
|
Project-URL: Repository, https://github.com/ChenyangGao/p123client
|
@@ -1,12 +1,12 @@
|
|
1
1
|
LICENSE,sha256=o5242_N2TgDsWwFhPn7yr8YJNF7XsJM5NxUMtcT97bc,1100
|
2
2
|
p123client/__init__.py,sha256=gfUum-q3f_XuXOk2HpArDAIxAlscZm8Fau1kiNkNFpg,214
|
3
|
-
p123client/client.py,sha256=
|
3
|
+
p123client/client.py,sha256=vK7kdjvd7I3iVUroiC89E1rt-HG-A1YhwECAaGr8aqk,258512
|
4
4
|
p123client/const.py,sha256=T17OzPQrnIG6w_Hzjc8TF_fFMKa-hQMSn1gff8pVcBc,56
|
5
5
|
p123client/exception.py,sha256=020xGo8WQmGCJz1UzNg9oFzpEvToQcgTye0s6lkFASQ,1540
|
6
6
|
p123client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
-
p123client/tool/__init__.py,sha256=
|
7
|
+
p123client/tool/__init__.py,sha256=MFMue0hh3czAtfTf3yInzBgcNIWVVjO-8tHrPka4TGA,16454
|
8
8
|
p123client/type.py,sha256=T17OzPQrnIG6w_Hzjc8TF_fFMKa-hQMSn1gff8pVcBc,56
|
9
|
-
p123client-0.0.6.
|
10
|
-
p123client-0.0.6.
|
11
|
-
p123client-0.0.6.
|
12
|
-
p123client-0.0.6.
|
9
|
+
p123client-0.0.6.8.dist-info/LICENSE,sha256=o5242_N2TgDsWwFhPn7yr8YJNF7XsJM5NxUMtcT97bc,1100
|
10
|
+
p123client-0.0.6.8.dist-info/METADATA,sha256=kQ9PI-wnjaB8NQe1vL8J0dzlZsLqinejvRpxB615KH0,8859
|
11
|
+
p123client-0.0.6.8.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
12
|
+
p123client-0.0.6.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|