Fetch input, submit answers and generate boilerplate files for solving Advent of Code puzzles 🎄
Install via pip:
pip install aocpy
N.B Please see the Session Cookie Configuration section
begin
fetches the puzzle input and generates boilerplate files with the following structure:
<day_number>/
solution.py
input.txt
# fetch input and generate boilerplate for today's challenge
$ aocpy begin
# fetch input and generate boilerplate for a specific puzzle
$ aocpy begin -y 2017 -d 15
$ aocpy begin -d 15 # uses current puzzle year
# submit answer for level 1 of today's puzzle
$ aocpy submit "myanswer" 1
# submit answer for level 2 of today's puzzle
$ aocpy submit "myanswer2" 2
# submit answer for level 1 of a specific puzzle
$ aocpy submit "myanswer" 1 -y 2017 -d 15
# submit answer for level 2 of a specific puzzle
$ aocpy submit "myanswer2" 2 -y 2017 -d 15
The solution template files include a small CLI to read input files.
$ cd <puzzle_day_dir>
# Default - run with aocpy generated input.txt file
$ python solution.py
# Run with example_input.txt if present
$ python solution.py -e
# Run with specified input file
$ python solution.py /path/to/my/file.txt
AoC puzzle inputs differ by user, requiring a browser cookie to determine the current user. aocpy
requires this cookie and can be supplied in several ways:
- CLI
-c
/--session-cookie
option (supported by all commands):$ aocpy begin -c <1234mycookie>
- Configuration file:
- Paste the cookie into a file at
~/.config/aocpy/token
# ~/.config/aocpy/token <1234mycookie>
- or set it via cli
aocpy set-cookie <1234mycookie>
- Paste the cookie into a file at
- Environment variable:
$ export AOC_SESSION_COOKIE=<1234mycookie>
- Open Advent of Code in a web browser and log in
- Open the browser's developer console
- i.e. Right click -> Inspect or
F12
- Select the
Network
tab - Navigate to any puzzle input page i.e. adventofcode.com/2018/day/1/input
- Click on the request that shows up in the
Network
tab - The cookie will be in the
Request Headers
section with the formatCookie: session=<1234mycookie>