跳转至

login

models.login

登录相关数据模型与状态枚举.

QRCodeLoginEvents

Bases: Enum

二维码登录流程中的状态事件.

get_by_value classmethod

get_by_value(value: int) -> QRCodeLoginEvents

根据状态码获取二维码登录事件.

PARAMETER DESCRIPTION
value

二维码状态码.

TYPE: int

RETURNS DESCRIPTION
QRCodeLoginEvents

对应的登录事件成员. 若无法识别则返回 OTHER.

TYPE: QRCodeLoginEvents

Source code in qqmusic_api/models/login.py
@classmethod
def get_by_value(cls, value: int) -> "QRCodeLoginEvents":
    """根据状态码获取二维码登录事件.

    Args:
        value: 二维码状态码.

    Returns:
        QRCodeLoginEvents: 对应的登录事件成员. 若无法识别则返回 OTHER.
    """
    for member in cls:
        if value in member.value:
            return member
    return cls.OTHER

PhoneLoginEvents

Bases: Enum

手机验证码登录状态.

PhoneAuthCodeResult dataclass

PhoneAuthCodeResult(
    event: PhoneLoginEvents, info: str | None = None
)

手机验证码发送接口的结果对象.

QRLoginType

Bases: Enum

二维码登录类型枚举.

QR dataclass

QR(
    data: bytes,
    qr_type: QRLoginType,
    mimetype: str,
    identifier: str,
)

二维码信息.

save

save(path: Path | str = '.') -> Path | None

将二维码保存到本地目录.

PARAMETER DESCRIPTION
path

保存目录路径. 默认为当前目录.

TYPE: Path | str DEFAULT: '.'

RETURNS DESCRIPTION
Path | None

Path | None: 成功保存后的文件路径. 若无数据则返回 None.

Source code in qqmusic_api/models/login.py
def save(self, path: Path | str = ".") -> Path | None:
    """将二维码保存到本地目录.

    Args:
        path: 保存目录路径. 默认为当前目录.

    Returns:
        Path | None: 成功保存后的文件路径. 若无数据则返回 None.
    """
    if not self.data:
        return None

    directory = Path(path)
    directory.mkdir(parents=True, exist_ok=True)
    ext = mimetypes.guess_extension(self.mimetype) if self.mimetype else None
    file_path = directory / f"{self.qr_type.value}-{uuid4()}{ext or '.png'}"
    file_path.write_bytes(self.data)
    return file_path

QRLoginResult dataclass

QRLoginResult(
    event: QRCodeLoginEvents,
    credential: Credential | None = None,
)

二维码登录流程中的单次结果对象.

done property

done: bool

返回当前结果是否表示登录完成.