6个版本
0.2.4 | 2022年5月20日 |
---|---|
0.2.3 | 2022年3月18日 |
0.1.0 | 2021年10月27日 |
#905 in 编码
80KB
1K SLoC
psbattletools
psbattletools
是一个用 Rust 编写的命令行工具,用于操作 宝可梦对战 日志。
安装
psbattletools
目前需要 nightly Rust,因为它使用了 Rust 的内置基准测试器。如果您没有 nightly Rust,请安装 rustup
,然后运行 rustup install nightly
。
安装 psbattletools
本身只需运行 cargo install psbattletools
。
使用
搜索战斗
search
或 s
子命令允许您搜索战斗;这比 Showdown 内置的 /battlesearch
功能快得多(待办:添加基准测试)。
您必须指定要搜索的用户名以及要搜索的目录列表(这些目录将被递归搜索,忽略非 JSON 文件)。您还可以指定以下选项中的任何一个
--forfeits-only
或-f
:仅搜索以弃权结束的战斗--wins-only
或-w
:仅搜索指定用户赢得的战斗
例如,psbattletools search --wins-only Annika logs/2020-06/gen8randombattle logs/2020-05/gen8randombattle
将搜索 2020 年 5 月和 6 月 Annika 赢得的 [Gen 8] 随机战斗。
计算胜率和统计数据
statistics
(或 stats
或 winrates
)子命令计算给定格式中每个宝可梦的胜率(百分比、原始游戏和标准差)。目前,使用统计数据由其他,封闭源代码的脚本处理,但如果需求,我很乐意考虑实现更复杂的统计数据。
默认情况下,此命令将人类可读的胜率格式打印到标准输出,但也可以选择生成CSV文件(方便脚本和程序使用),或将输出写入文件。
您必须提供要分析的目录列表,但psbattletools statistics
也接受以下可选参数
--csv [路径]
:将CSV输出写入指定的文件--human-readable [路径]
或--pretty [路径]
:将人类可读的(prettytable)输出写入指定的文件--minimum-elo [ELO]
或--elo [ELO]
:忽略战斗开始时任一玩家的ELO评级低于指定值的战斗--exclude [文本]
:忽略包含指定文本的目录和JSON文件
例如,psbattletools stats --pretty gen8randombattle-1500.txt --minimum-elo 1500 logs/2021-08/gen8randombattle
会将2021年8月的[Gen 8]随机战斗游戏的胜率以人类可读表格的形式写入文件gen8randombattle-1500.txt
。
匿名化战斗
anonymize
子命令从战斗日志中删除个人身份信息,并为每位玩家分配一个唯一的ID(因此仍然可以识别两个匿名玩家是否相同)。
您必须提供包含要匿名化JSON文件的目录列表;所有这些目录中的JSON战斗日志都将被匿名化,输出中不会保留目录结构。此子命令只接受一个参数,必须指定:--output [目录]
(或-o [目录]
),它指定匿名化战斗日志将写入的目录。
例如,要将2021年6月至8月的[Gen 8]随机战斗日志写入目录anonymized/
,您将使用命令psbattletools anonymize -o anonymized logs/2021-06/gen8randombattle logs/2021-07/gen8randombattle logs/2021-08/gen8randombattle
。
开发
我欢迎对psbattletools
的贡献。目前还没有正式的贡献指南,但拉取请求总是受欢迎的。如果可能的话,请确保您的代码经过rustfmt
格式化,并包含单元测试以检测回归和/或测试添加的功能。
可以使用cargo test
运行单元和集成测试,并且可以使用cargo bench
运行基准测试。以下特性可以在基准测试期间启用(使用cargo bench --features ...
)以运行额外的基准测试
bench_old_battlesearch
运行与我旧battlesearch
程序上用于集成基准测试的相同基准,允许进行直接的性能比较。除非您已安装battlesearch
,否则不要启用此功能。bench_old_winrates
运行与我旧randbats-winrates
程序上用于集成基准测试的相同基准,允许进行直接的性能比较。除非您已安装randbats-winrates
,否则不要启用此功能。bench_old_anonbattle
运行与我旧anonbattle
程序上用于集成基准测试的相同基准,允许进行直接的性能比较。除非您已安装anonbattle
,否则不要启用此功能。
依赖关系
约14MB
约173K SLoC