跳转至

request

core.request

请求描述符与批量请求容器. 提供对 API 请求的抽象与调度.

Request dataclass

Request(
    *,
    _client: Client,
    module: str,
    method: str,
    param: dict[str, Any] | dict[int, Any],
    response_model: type[BaseModel] | None = None,
    comm: dict[str, int | str | bool] | None = None,
    override_comm: bool = False,
    is_jce: bool = False,
    preserve_bool: bool = False,
    credential: Credential | None = None,
    platform: Platform | None = None,
    allow_error_codes: AllowErrorCodes | None = None,
    parse_on_allow: bool = False,
    sign: bool = False,
)

Bases: Generic[RequestResultT]

请求描述符.

replace

replace(**changes: Any) -> Request[RequestResultT]

返回一个应用了修改的新 Request 对象, 不会修改原对象.

Source code in qqmusic_api/core/request.py
def replace(self, **changes: Any) -> "Request[RequestResultT]":
    """返回一个应用了修改的新 Request 对象, 不会修改原对象."""
    if "param" not in changes:
        changes["param"] = copy.deepcopy(self.param)
    if "comm" not in changes and self.comm is not None:
        changes["comm"] = copy.deepcopy(self.comm)
    if "override_comm" not in changes:
        changes["override_comm"] = self.override_comm
    return dc_replace(self, **changes)

PaginatedRequest dataclass

PaginatedRequest(
    pager_meta: PagerMeta,
    *,
    _client: Client,
    module: str,
    method: str,
    param: dict[str, Any] | dict[int, Any],
    response_model: type[BaseModel] | None = None,
    comm: dict[str, int | str | bool] | None = None,
    override_comm: bool = False,
    is_jce: bool = False,
    preserve_bool: bool = False,
    credential: Credential | None = None,
    platform: Platform | None = None,
    allow_error_codes: AllowErrorCodes | None = None,
    parse_on_allow: bool = False,
    sign: bool = False,
)

Bases: Request[RequestResultT]

声明了连续翻页能力的请求描述符.

get_pager_meta

get_pager_meta() -> PagerMeta

返回连续翻页元数据.

Source code in qqmusic_api/core/request.py
def get_pager_meta(self) -> PagerMeta:
    """返回连续翻页元数据."""
    return self.pager_meta

paginate

paginate(
    limit: int | None = None,
) -> ResponsePager[RequestResultT]

返回响应的分页迭代器.

PARAMETER DESCRIPTION
limit

最大获取页数.

TYPE: int | None DEFAULT: None

Source code in qqmusic_api/core/request.py
def paginate(self, limit: int | None = None) -> ResponsePager[RequestResultT]:
    """返回响应的分页迭代器.

    Args:
        limit: 最大获取页数.
    """
    return ResponsePager(self, limit=limit)

RefreshableRequest dataclass

RefreshableRequest(
    refresh_meta: RefreshMeta,
    *,
    _client: Client,
    module: str,
    method: str,
    param: dict[str, Any] | dict[int, Any],
    response_model: type[BaseModel] | None = None,
    comm: dict[str, int | str | bool] | None = None,
    override_comm: bool = False,
    is_jce: bool = False,
    preserve_bool: bool = False,
    credential: Credential | None = None,
    platform: Platform | None = None,
    allow_error_codes: AllowErrorCodes | None = None,
    parse_on_allow: bool = False,
    sign: bool = False,
)

Bases: Request[RequestResultT]

声明了换一批能力的请求描述符.

get_refresh_meta

get_refresh_meta() -> RefreshMeta

返回换一批元数据.

Source code in qqmusic_api/core/request.py
def get_refresh_meta(self) -> RefreshMeta:
    """返回换一批元数据."""
    return self.refresh_meta

refresh

refresh() -> ResponseRefresher[RequestResultT]

返回响应的换一批控制器.

Source code in qqmusic_api/core/request.py
def refresh(self) -> ResponseRefresher[RequestResultT]:
    """返回响应的换一批控制器."""
    return ResponseRefresher(self)