Source code for p115client.tool.auth

#!/usr/bin/env python3
# encoding: utf-8

__author__ = "ChenyangGao <https://chenyanggao.github.io>"
__all__ = ["deauth_open"]
__doc__ = "这个模块提供了一些和账号状况有关的函数"

from collections.abc import Callable, Coroutine
from os import PathLike
from typing import overload, Any, Literal

from iterutils import run_gen_step

from ..client import check_response, P115Client


@overload
def deauth_open(
    client: str | PathLike | P115Client, 
    predicate: None | Callable = None, 
    *, 
    async_: Literal[False] = False, 
    **request_kwargs, 
) -> None:
    ...
@overload
def deauth_open(
    client: str | PathLike | P115Client, 
    predicate: None | Callable = None, 
    *, 
    async_: Literal[True], 
    **request_kwargs, 
) -> Coroutine[Any, Any, None]:
    ...
[docs] def deauth_open( client: str | PathLike | P115Client, predicate: None | Callable = None, *, async_: Literal[False, True] = False, **request_kwargs, ) -> None | Coroutine[Any, Any, None]: """批量解绑开放应用 :param client: 115 客户端或 cookies :param predicate: 筛选条件 :param async_: 是否异步 :param request_kwargs: 其它请求参数 """ if isinstance(client, (str, PathLike)): client = P115Client(client, check_for_relogin=True) def gen_step(): resp = yield client.login_open_auth_list( async_=async_, **request_kwargs, ) check_response(resp) for info in filter(predicate, resp["data"]): yield client.login_open_deauth( info["auth_id"], async_=async_, **request_kwargs, ) return run_gen_step(gen_step, async_)