#advent-of-code #aoc #api

aoc_api

一个简单的 Advent of Code API

4个稳定版本

1.1.0 2024年7月31日
1.0.2 2024年7月29日

#3#aoc

Download history 306/week @ 2024-07-26 45/week @ 2024-08-02

351 每月下载量

GPL-3.0 许可证

18KB
288

Version Downloads

使用 Rust 编写的简单 Advent of Code API - 也请查看 C# 版本

文档



添加仓库

cargo add aoc_api
use aoc_api::Session;

会话初始化

let client = Session::new("session cookie": String, year: u16, day: u8); // Initializes a new Session instance
let client = Session::new("session cookie": String, input: String, pattern: Regex); // Initializes a new Session instance
Info
正则表达式重载需要有一个名为 "year" 的正则表达式组和一个名为 "day" 的组。
如何命名正则表达式组
如何获取会话cookie

特性

获取输入

let input_text: Result<String, Box<dyn Error>> = client.get_input_text().await; // Retrieves the input text of the AoC puzzle
let input_lines: Result<Vec<String>, Box<dyn Error>> = client.get_input_lines().await; // Retrieves the input lines of the AoC puzzle

获取示例输入

let sample_input_text: Result<String, Box<dyn Error>> = client.get_sample_input_text(nth: u8).await; // Retrieves the nth sample input text of the AoC puzzle
let sample_input_lines: Result<Vec<String>, Box<dyn Error>> = client.get_sample_input_lines(nth: u8).await; // Retrieves the nth sample input lines of the AoC puzzle

获取已获得的星星

let achieved_stars: Result<HashMap<u16, u8>, Box<dyn Error>> = client.get_all_stars().await; // Retrieves each year's number of stars earned (key: year, value: stars)

提交答案

let response: Result<Response, Box<dyn Error>> = client.submit_answer(part: u8, answer: &str).await; // Submits an answer to part 1 or 2 of the AoC puzzle. Returns a response type with a success status and a cooldown period



致谢

Max - markdown 信息图标
Monday Morning Haskell - 如何获取会话cookie的文档
Developer.Mozilla - 如何命名正则表达式组的文档

依赖项

~8–20MB
~294K SLoC