Skip to main content

Fancy Advent of Code README tiles showing the completion status of the challenges per day

Project description

AoC Tiles

This script creates a graphic for each day for each year of the Advent of Code. A tile is an image which represents both parts of a day, it looks like this:

AoC Tiles

It uses the personal AoC Leaderboard to get the data for each day using your cookie.

Installation

For this year (2023) I have rewritten this script to make it a lot easier to use. Now you only need to install pre-commit, add a pre-commit hook and add two HTML comments to your README. More details below.

Install pre-commit:

pip install pre-commit

or the more modern way below (either is fine, modern pip in Python 3.11+ will not allow the above command to run though):

# if you don't have pipx, install it with pip install pipx, or with your package manager
pipx install pre-commit  

Add pre-commit hook to your repository

Add this pre-commit hook to your .pre-commit-config.yaml (create it, if you don't have it):

repos:
    - repo: https://github.com/LiquidFun/aoc_tiles
      rev: 0.6.2
      hooks:
          - id: aoc-tiles
            # Optionally use these arguments. Auto add tiles to git adds the tiles to git,
            # possibly amends your commit by creating the tile images and updating the README.
            # Language sorting shows the preference of the order of the languages to use.
            # Exclude paterns are globs which can be used to exclude files when creating
            # the tiles. See the customization section in the README for more flags.
            # Simply remove the comments (#) below for args and the flags you want.
            # args:
            #     - --auto-add-tiles-to-git=amend
            #     - --language-sorting=jl,kt,py,rs
            #     - --exclude-patterns=2021/*/*.apl,2021/*/*.py,2021/*/*.cpp

Now install the hook with:

pre-commit install --hook-type post-commit

and you are done! The --hook-type post-commit flag is important, otherwise the hook will not run.

There are a lot more flags, see config.py for all of them. Auto add tiles is recommended as it will automatically add the tiles to your git repository, otherwise you might forget it and the tiles will not be updated. Note that this will amend your just created commit. If you do not want this, remove that flag.

Set-up

Add this to your .gitignore:

.aoc_tiles/*
!.aoc_tiles/tiles/

Now add <!-- AOC TILES BEGIN --> and <!-- AOC TILES END --> in your README, everything between these 2 tags will always be replaced by the script, so do not add additional information there. Note that these are HTML comments, so they will not be visible in the rendered README.

Configuration

If you care about your submit-time and rank, you need to add your session cookie to the script. By default, if no session cookie is found, checkmarks will be used instead of the time and rank. Add it either in the root of the repository as session.cookie or in the .aoc_tiles directory as session.cookie. Make sure that this file is in your .gitignore! It should contain a single line, the "session" cookie from https://adventofcode.com when you are logged in. No prefix is needed, only the string of length 128.

Customization

There are various flags which can be set to change the look of your tiles. Some of them are listed here with examples showing how it changes the look.

  • --what-to-show-on-right-side=:
auto (default) checkmark time_and_rank
time_and_rank if cookie is available, else checkmark
  • --contrast-improvement-type=:
outline (default) dark none

Project details


Download files

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

Source Distribution

aoc_tiles-0.6.2.tar.gz (187.9 kB view details)

Uploaded Source

Built Distribution

aoc_tiles-0.6.2-py3-none-any.whl (188.1 kB view details)

Uploaded Python 3

File details

Details for the file aoc_tiles-0.6.2.tar.gz.

File metadata

  • Download URL: aoc_tiles-0.6.2.tar.gz
  • Upload date:
  • Size: 187.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/6.9.5-arch1-1

File hashes

Hashes for aoc_tiles-0.6.2.tar.gz
Algorithm Hash digest
SHA256 6103ef02193377b64837294e0847cc69f5cf5cb425d6cbc43b3fefc7be51dfda
MD5 8bc4dcb3062b3b04fb438ab053317470
BLAKE2b-256 708475eb316b9d4cb7f25bc89996bfc91e16b973ff5005d9b1acbb8ecc94d014

See more details on using hashes here.

File details

Details for the file aoc_tiles-0.6.2-py3-none-any.whl.

File metadata

  • Download URL: aoc_tiles-0.6.2-py3-none-any.whl
  • Upload date:
  • Size: 188.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/6.9.5-arch1-1

File hashes

Hashes for aoc_tiles-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 42ed3b79d8c303ab8d5c5936103438fdf71c160b88f7f91f93c9da4122ae65e5
MD5 c86e608b56eeac6adfcafd0795e09a60
BLAKE2b-256 c0cd676fc87ec7ac42bcefdf14360c8d7168848ba3607b204e4874a79ad44b9b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page