Crate bms_table

Crate bms_table 

Source
Expand description

BMS 难度表数据获取与解析库

提供从网页或 JSON 源构建完整的 BMS 难度表数据结构,涵盖表头、课程、奖杯与谱面条目等。 结合可选特性实现网络抓取与 HTML 解析,适用于 CLI 工具、服务端程序或数据处理流水线。

§功能概述

  • 解析表头 JSON,支持收集未识别的额外字段
  • 解析谱面数据,兼容数组或 { charts: [...] } 两种格式
  • 课程数据支持从 md5/sha256 列表自动转换为谱面条目
  • 可选特性 reqwest 提供一站式网络获取接口
  • 可选特性 scraper 支持从 HTML <meta name="bmstable"> 提取头部 JSON 地址

§快速上手

use bms_table::fetch::reqwest::fetch_bms_table;

let table = fetch_bms_table("https://stellabms.xyz/sl/table.html").await?;
println!("{}: {} charts", table.header.name, table.data.charts.len());

§特性说明

  • reqwest:启用网络获取功能(默认启用)
  • scraper:启用 HTML 解析(用于从页面提取 bmstable 头部地址)

Modules§

deserde
反序列化实现模块
fetchscraper
数据获取与 HTML 解析辅助模块
serserde
序列化模块。

Structs§

BmsTable
顶层 BMS 难度表数据结构。
BmsTableData
BMS 表数据。
BmsTableHeader
BMS 表头信息。
ChartItem
谱面数据项。
CourseInfo
课程信息。
Trophy
奖杯信息。