50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
# AoC Utils
|
|
|
|
This small library can be used for the yearly Advent of Code
|
|
(https://adventofcode.com) challenge. It automates the retrieval of puzzle input
|
|
and submission.
|
|
|
|
# Installation
|
|
|
|
`aocutil` is [published on PyPi](https://pypi.org/project/aocutil/) and can be
|
|
installed from there.
|
|
|
|
# Usage
|
|
|
|
``` python
|
|
from aocutil import Aoc
|
|
|
|
# Initialize for year 2022, day 1 with session id 53616c746
|
|
#
|
|
# Everything here is optional. If left out year and day is determined
|
|
# from the current date -- be aware that your code is non-repeatable if year
|
|
# and date is not specified.
|
|
# Session id is read from `${HOME}/.config/aocutil/session_id` if not specified.
|
|
aoc = Aoc(year=2022, day=1, session_id="53616c746")
|
|
|
|
# Retrieve input and split into list of lines
|
|
#
|
|
# You can also retrieve the content as a string with `aoc.input().read()`.
|
|
puzzle = aoc.input().lines()
|
|
|
|
# solve the puzzle (your implementation)
|
|
solution = solve(puzzle)
|
|
|
|
# Submit the solution for level 1
|
|
#
|
|
# If left out, the level is determined automatically by
|
|
# which level is not solved yet.
|
|
aoc.submit(solution, level=1)
|
|
```
|
|
|
|
# Retrieving the Session ID
|
|
|
|
A user in Advent of Code submissions and input retrieval is determined by a
|
|
session id stored in a cookie in the user's browser. For this library to work it
|
|
needs a users session id. The session id can be found by opening your browsers
|
|
developer tools and looking for a cookie named `session`.
|
|
|
|
You can either initialize `Aoc` with the token or store it in a file named
|
|
`${HOME}/.config/aocutil/session_id`. I would recommend the latter so you don't
|
|
accidentially publish your session id. Note that everyone who gets hold of your
|
|
session id can impersonate you.
|