Skip to content

The definitive python wrapper for MaimaiCN. 用于国服舞萌相关开发的最佳Python工具库, 封装水鱼/落雪查分器常用函数.

License

Notifications You must be signed in to change notification settings

TrueRou/maimai.py

Repository files navigation

maimai.py (documentation)

PyPI version License Python versions zh

maimai.py

The definitive python wrapper for MaimaiCN related development, wrapping the frequently used methods from DivingFish and LXNS.

We provide data models and methods based on MaiMai standard, and make implementation for both DivingFish and LXNS.

Support querying songs, player information, scores, ratings, name plates from any data sources.

In addition, we support getting player scores with WeChat OpenID, parsing the score HTML, and uploading it to the data sources.

Installation

pip install maimai-py

To upgrade:

pip install -U maimai-py

For more, read the docs: https://maimai.turou.fun/.

Quickstart

import asyncio
from maimai_py import MaimaiClient, MaimaiPlates, MaimaiScores, MaimaiSongs, PlayerIdentifier, LXNSProvider, DivingFishProvider


async def quick_start():
    maimai = MaimaiClient()
    divingfish = DivingFishProvider(developer_token="")

    # fetch all songs and their metadata
    songs: MaimaiSongs = await maimai.songs()
    # fetch divingfish user turou's scores (b50 scores by default)
    scores: MaimaiScores = await maimai.scores(PlayerIdentifier(username="turou"), provider=divingfish)
    # fetch divingfish user turou's 舞将 plate information
    plates: MaimaiPlates = await maimai.plates(PlayerIdentifier(username="turou"), "舞将", provider=divingfish)

    song = songs.by_id(1231)  # 生命不詳 by 蜂屋ななし

    print(f"Song 1231: {song.artist} - {song.title}")
    print(f"TuRou's rating: {scores.rating}, b15 top rating: {scores.scores_b15[0].dx_rating}")
    print(f"TuRou's 舞将: {plates.cleared_num}/{plates.all_num} cleared")

asyncio.run(quick_start())

Async

maimai.py is fully asynchronous by default, and there are no plans to provide synchronous methods.

If you don't want to be asynchronous, you can use the asyncio.run wrapper to call asynchronous methods synchronously.

About

The definitive python wrapper for MaimaiCN. 用于国服舞萌相关开发的最佳Python工具库, 封装水鱼/落雪查分器常用函数.

Topics

Resources

License

Stars

Watchers

Forks

Languages