Skip to content

歌曲

maimai.songs() 方法

从数据源获取所有歌曲。

支持的数据源DivingFishProviderLXNSProvider, HybridProvider

参数

参数名类型说明
providerISongProvider覆写默认数据源,默认为 HybridProvider
alias_providerIAliasProvider覆写默认别名数据源,默认为 YuzuProvider
curve_providerICurveProvider覆写默认相对难度曲线数据源,默认为DivingFishProvider

返回值

MaimaiSongs 对象

异常

错误名称描述
httpx.HTTPError由于网络问题导致请求失败

MaimaiSongs 对象

python
async def get_all(self) -> list[Song]:
    """获取所有歌曲,以列表返回。

    此方法将遍历缓存中的所有歌曲,并逐一生成每首歌曲。除非您确实需要遍历所有歌曲,否则应使用 `by_id` 或 `filter` 方法代替。

    返回值:
        一个列表,包含缓存中的所有歌曲。
    """

async def get_batch(self, ids: list[int]) -> list[Song]:
    """通过 ID 列表获取歌曲。

    参数:
        ids: 歌曲的 ID 列表。
    返回值:
        一个列表,包含所有找到的歌曲。如果没有找到任何歌曲,则返回空列表。
    """

async def by_id(self, id: int) -> Song | None:
    """通过 ID 获取歌曲。

    参数:
        id: 歌曲的 ID,始终小于 `10000`,如有必要应使用 (`% 10000`)。
    返回值:
        如果歌曲存在则返回歌曲,否则返回 None。
    """

async def by_title(self, title: str) -> Song | None:
    """通过标题获取歌曲。

    参数:
        title: 歌曲的标题。
    返回值:
        如果歌曲存在则返回歌曲,否则返回 None。
    """

async def by_alias(self, alias: str) -> Song | None:
    """通过可能的别名获取歌曲。

    参数:
        alias: 歌曲的一个可能别名。
    返回值:
        如果歌曲存在则返回歌曲,否则返回 None。
    """

async def by_artist(self, artist: str) -> AsyncGenerator[Song, None]:
    """通过艺术家获取歌曲,区分大小写。

    参数:
        artist: 歌曲的艺术家。
    返回值:
        一个异步生成器,生成与艺术家匹配的歌曲。
    """

async def by_genre(self, genre: Genre) -> AsyncGenerator[Song, None]:
    """通过流派获取歌曲,区分大小写。

    参数:
        genre: 歌曲的流派。
    返回值:
        一个异步生成器,生成与流派匹配的歌曲。
    """

async def by_bpm(self, minimum: int, maximum: int) -> AsyncGenerator[Song, None]:
    """通过 BPM 获取歌曲。

    参数:
        minimum: 歌曲的最小(包含)BPM。
        maximum: 歌曲的最大(包含)BPM。
    返回值:
        一个异步生成器,生成与 BPM 匹配的歌曲。
    """

async def by_versions(self, versions: Version) -> AsyncGenerator[Song, None]:
    """通过版本获取歌曲,版本是 maimai 主要版本的模糊匹配版本。

    参数:
        versions: 歌曲的版本。
    返回值:
        一个异步生成器,生成与版本匹配的歌曲。
    """

async def by_keywords(self, keywords: str) -> AsyncGenerator[Song, None]:
    """通过关键词获取歌曲,关键词与歌曲标题、艺术家和别名匹配。

    参数:
        keywords: 用于匹配歌曲的关键词。
    返回值:
        一个异步生成器,生成与关键词匹配的歌曲。
    """

async def filter(self, **kwargs) -> AsyncGenerator[Song, None]:
    """通过属性过滤歌曲。

    确保属性是歌曲的属性,并且值是相同类型的。所有条件通过 AND 连接。

    参数:
        kwargs: 用于过滤歌曲的属性。
    返回值:
        一个异步生成器,生成满足所有条件的歌曲。
    """

API 文档

MIT License