Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Advent of Code Automation

Project description

aocpy - Advent of Code Automation Tool

PyPI version shields.io

Fetch input, submit answers and generate boilerplate files for solving Advent of Code puzzles :christmas_tree:

Installation

Install via pip: pip install aocpy

Usage

N.B Please see the Session Cookie Configuration section

Begin a Puzzle

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 Puzzle Answers

# 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

Running Solutions

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

Session Cookie Configuration

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>
    
  • Environment variable:

    • $ export AOC_SESSION_COOKIE=<1234mycookie>

Finding Your Session Cookie

  1. Open Advent of Code in a web browser and log in
  2. Open the browser's developer console
  • i.e. Right click -> Inspect or F12
  1. Select the Network tab
  2. Navigate to any puzzle input page i.e. adventofcode.com/2018/day/1/input
  3. Click on the request that shows up in the Network tab
  4. The cookie will be in the Request Headers section with the format Cookie: session=<1234mycookie>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for aocpy, version 0.0.1
Filename, size File type Python version Upload date Hashes
Filename, size aocpy-0.0.1-py2.py3-none-any.whl (7.2 kB) File type Wheel Python version py2.py3 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page