Skip to main content

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.

Built Distribution

aocpy-0.0.1-py2.py3-none-any.whl (7.2 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page