Skip to content

Inject charts in your private leaderboard page for Advent of Code

License

Notifications You must be signed in to change notification settings

jeroenheijmans/advent-of-code-charts

Repository files navigation

Advent of Code Charts

This is an unofficial small hacked-up set of charts for a private leaderboard for Advent of Code. Get it as an extension:

browser-store-chrome.png browser-store-firefox.png

Disclaimers

It is not a well-architectured, well-written, neat, nice, fluffy, industry-strength piece of code. Instead it's something fun I wanted to make, stepping out of my normal way of coding. NO WARRANTY!

Developing

Install dependencies:

npm ci # or npm install

Serve a test website with the dummy data:

npm run start # runs 'serve' and 'watch' in parallel

And open up the URL that's announced in the console.

Building

Run build.ps1 or build.sh to re-create a /build folder which is a ready-to-go browser extension. Test the extension by loading it in the browser. For full reference, see Chrome's or Firefox's full documentation, but the basics are:

  • Firefox: go to about:debugging and load a temporary addon (pick the /build folder)
  • Chrome: go to chrome://extensions and load unpacked extension (pick the /build folder)

Test by browsing to a private leaderboard and you should see charts popping up at the bottom.

Releasing

To release an addon to the store, for Chrome you just zip the /build folder files into a file and submit it as a new version.

For Firefox, you need to add this to the manifest in the /build folder first:

    "browser_specific_settings": {
        "gecko": {
            "id": "{GUID-GUID-GUID-GUID}"
        }
    }

For details see Mozilla's documentation and this Stack Overflow post as to why it cannot be there by default. (I suppose this step can be automated away later on.)

License and Affiliation Disclaimer

The code in this project is MIT licensed, with the explicit exception of dummyData.js. That file contains JSON in a format thought up by the owner and creator of Advent of Code, but we suppose that using a small snippet of it like this falls under "fair use" (given for one that the AoC website itself suggests using the "JSON API" for integrations, albeit without spamming that API).

Note that "Advent of Code" and "AoC" are Eric Wastl's. This project is not "official", and in no way (directly or indirectly) endorsed by- or affiliated to Advent of Code and its creator/owner. Read more about Advent of Code to learn about the project itself.

Oh, and of course, please consider donating to Advent of Code itself!

Example

Here's what it should more or less look like:

example-001.png example-002.png example-003.png example-004.png example-005.png example-006.png