Python 115 webdisk client.
Project description
Python 115 网盘客户端.
安装
你可以从 pypi 安装最新版本
pip install -U p115client
入门介绍
1. 导入模块和创建实例
导入模块
from p115 import P115Client
创建客户端对象,需要传入 cookies,如果不传,则需要扫码登录
cookies = "UID=...; CID=...; SEID=..."
client = P115Client(cookies)
如果你的 cookies 保存在 ~/115-cookies.txt
from pathlib import Path
client = P115Client(Path("~/115-cookies.txt").expanduser())
如果想要在接口返回时自动捕获 405 HTTP 响应码,进行自动扫码,并把更新后的 cookies 写回文件,然后重试接口调用
client = P115Client(Path("~/115-cookies.txt").expanduser(), check_for_relogin=True)
所以综上,推荐的初始化代码为
from p115client import P115Client
from pathlib import Path
client = P115Client(Path("~/115-cookies.txt").expanduser(), check_for_relogin=True)
2. 接口调用
所有需要直接或间接执行 HTTP 请求的接口,都有同步和异步的调用方式
# 同步调用
client.method(payload)
client.method(payload, async_=False)
# 异步调用
await client.method(payload, async_=True)
从根本上讲,除了几个 staticmethod
,它们都会调用 P115Client.request
url = "https://webapi.115.com/files"
response = client.request(url=url, params={"cid": 0, "show_dir": 1})
当你需要构建自己的扩展模块,以增加一些新的 115 web 接口时,就需要用到此方法了
from collections.abc import Coroutine
from typing import overload, Any, Literal
from p115client import P115Client
class MyCustom115Client(P115Client):
@overload
def foo(self, payload: dict, async_: Literal[False] = False) -> dict:
...
@overload
def foo(self, payload: dict, async_: Literal[True]) -> Coroutine[Any, Any, dict]:
...
def foo(self, payload: dict, async_: bool = False) -> dict | Coroutine[Any, Any, dict]:
api = "https://webapi.115.com/foo"
return self.request(api, method="GET", params=payload)
@overload
def bar(self, payload: dict, async_: Literal[False] = False) -> dict:
...
@overload
def bar(self, payload: dict, async_: Literal[True]) -> Coroutine[Any, Any, dict]:
...
def bar(self, payload: dict, async_: bool = False) -> dict | Coroutine[Any, Any, dict]:
api = "https://webapi.115.com/bar"
return self.request(api, method="POST", data=payload)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
p115client-0.0.1.1.tar.gz
(47.3 kB
view details)
Built Distribution
File details
Details for the file p115client-0.0.1.1.tar.gz
.
File metadata
- Download URL: p115client-0.0.1.1.tar.gz
- Upload date:
- Size: 47.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.0 CPython/3.11.8 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a353da9696dba72fda2a23a962af4d43358e247bf21225d5d48ab71d9c30f6c6 |
|
MD5 | a5ab8f3db0939a0969439cc5341e137e |
|
BLAKE2b-256 | 741079231f97abfe1e1b35db9c68933f34b9bbf5ccd4e3fd83cd866e76b758b5 |
Provenance
File details
Details for the file p115client-0.0.1.1-py3-none-any.whl
.
File metadata
- Download URL: p115client-0.0.1.1-py3-none-any.whl
- Upload date:
- Size: 50.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.0 CPython/3.11.8 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f1278a07a4327436dedb4a7ad62a192824a95d97cdb415f7c0236c61bb92972 |
|
MD5 | ac1ef4f0c8fa7f2dab2e35dedf0388f8 |
|
BLAKE2b-256 | 02ec983d272deaecde49e56735f2149b23dea37c863bf65533944f0e42712d2a |