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_table;

let table = fetch_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 解析辅助模块

Structs§

BmsTable
顶层 BMS 难度表数据结构。
BmsTableData
BMS 表数据。
BmsTableHeader
BMS 表头信息。
BmsTableIndex
BMS 表索引列表包装类型。
BmsTableIndexItem
BMS 表索引条目。
BmsTableRaw
完整的原始 JSON 字符串集合。
ChartItem
谱面数据项。
CourseInfo
课程信息。
Trophy
奖杯信息。