Skip to main content

Python 115 webdisk client.

Project description

Python 115 网盘客户端.

PyPI - Python Version PyPI - Version PyPI - Downloads PyPI - Format PyPI - Status

安装

你可以从 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)

Uploaded Source

Built Distribution

p115client-0.0.1.1-py3-none-any.whl (50.6 kB view details)

Uploaded Python 3

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

Hashes for p115client-0.0.1.1.tar.gz
Algorithm Hash digest
SHA256 a353da9696dba72fda2a23a962af4d43358e247bf21225d5d48ab71d9c30f6c6
MD5 a5ab8f3db0939a0969439cc5341e137e
BLAKE2b-256 741079231f97abfe1e1b35db9c68933f34b9bbf5ccd4e3fd83cd866e76b758b5

See more details on using hashes here.

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

Hashes for p115client-0.0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4f1278a07a4327436dedb4a7ad62a192824a95d97cdb415f7c0236c61bb92972
MD5 ac1ef4f0c8fa7f2dab2e35dedf0388f8
BLAKE2b-256 02ec983d272deaecde49e56735f2149b23dea37c863bf65533944f0e42712d2a

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page