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.tar.gz
(47.3 kB
view details)
Built Distribution
File details
Details for the file p115client-0.0.1.tar.gz
.
File metadata
- Download URL: p115client-0.0.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 | 2ed05d77c823f9f366a0f3374635e8b8adefa482f505754cff66930042a58930 |
|
MD5 | c6a9a6b4ebce6bfc33936a00287410c2 |
|
BLAKE2b-256 | bdd59019f117002e4c38081d932241507a8d1fe82d5a1c65be03188c931bd03c |
Provenance
File details
Details for the file p115client-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: p115client-0.0.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 | 282c61c80335aa9e8f363965633e1b321348b374d18808661a7197f8b722c394 |
|
MD5 | 4ab00861eead2fa70e4910984ab40c64 |
|
BLAKE2b-256 | bfd12e972086073b70f0b87033c80acc9d0fe76ce842f1520132a1f5a5e8ba55 |