9个版本 (5个破坏性更新)
0.6.1 | 2022年11月25日 |
---|---|
0.5.0 | 2021年12月2日 |
0.4.1 | 2021年12月2日 |
0.3.1 | 2021年11月30日 |
0.1.1 | 2020年11月11日 |
135 在 可视化
每月下载量62次
2MB
1K SLoC
aocleaderboard
Advent of Code 的私人排行榜目前限制为200个用户。这个网络应用程序可以将多个排行榜的用户合并,根据成员总数重新计算他们的分数,并将它们以与原始 Advent of Code 网站相同的样式和感觉显示在单个页面上。它还可以显示包含所有年份分数的综合排行榜。
排行榜从 adventofcode.com API URL 以 JSON 格式获取。
屏幕截图
包含本地分数的排行榜
包含星级数量的排行榜
综合排行榜
要求
此应用程序使用 Rocket 网络框架构建,因此需要 Rust 的 nightly 版本。
安装
- 在 Linux 上,安装适合您系统的适当开发工具,例如
# On Fedora, RHEL, CentOS
# sudo dnf groupinstall "Development Tools"
# On Debian, Ubuntu
# sudo apt install build-essential
- 使用 rustup 安装 Rust 的最新版本或使用以下命令更新它
# rustup update
- 安装 nightly 工具链
# rustup toolchain install nightly
- 克隆此仓库
# git clone https://github.com/scarvalhojr/aocleaderboard.git
- 将仓库目录设置为使用 nightly 工具链
# cd aocleaderboard
# rustup override set nightly
- 构建
# cargo build --release
配置
所需配置
- 复制 settings_sample.toml 并将其命名为
settings.toml
# cp settings_sample.toml settings.toml
- 编辑新的
settings.toml
文件,并提供包含排行榜名称和来自 adventofcode.com 的排行榜访问权限的会话cookie的排行榜ID列表。
leaderboard_name = "me and my friends"
leaderboard_ids = [12345, 23456]
session_cookie = "session=<session cookie string>"
要获取会话cookie,请登录到 adventofcode.com 并检查浏览器中存储的cookie。您必须是排行榜的成员才能获取其数据 - 在 https://adventofcode.com/leaderboard/private 检查您的排行榜。
其他设置
-
在
settings.toml
leaderboard_default_order
- 默认排行榜排序方式,可以是"local_score"
(默认)或"stars"
。leaderboard_update_sec
- 从 adventofcode.com 获取排行榜的频率,以秒为单位。latest_event_year
- 覆盖最新事件年份,默认为当前年份,如果当前日期在12月1日之前(第一个谜题解锁时),则为上一年份。exclude_members
- 要从排行榜中排除的成员ID列表。
-
要更改任何Rocket特定设置,例如TLS证书和密钥的路径,或IP地址和绑定端口,请复制名为
Rocket.toml
的 Rocket_sample.toml。
运行
启动应用程序
# cargo run --release
如果您正在使用Docker Compose
docker-compose up
# Or, for detached
docker-compose up -d
使用
将您最喜欢的浏览器指向 https://127.0.0.1:8000。
功能
- 为了避免过载Advent of Code网站,排行榜在内存中缓存,并在可配置的时间限制(默认为15分钟)后再次获取。
- 排行榜可以按本地分数(根据获得每个星星的时间)或星星数量排序。平局将通过最近获得星星的时间来打破。
- 整体排行榜结合了所有年份的分数。
贡献
欢迎反馈和拉取请求。
支持Advent of Code
Advent of Code 是由 Eric Wastl 创建并由志愿者维护的免费在线 Advent 日历,其中包含小型编程谜题。请考虑 支持他们的工作。
依赖项
~30–45MB
~835K SLoC