Skip to content

(In)accurately display the time & countdown until a game updates.

License

Notifications You must be signed in to change notification settings

fqidz/update-countdown

Repository files navigation

update-countdown

Screenshot of website

What?

This website is a complicated and not-so-funny joke about how the game, BattleBit Remastered, has not been updated in over a year and a half despite promises. More info about this be found at https://updatecountdown.com/battlebit#info.

Building

Requirements

  • cargo - Rust package manager
  • esbuild - an extremely fast bundler for the web
  • minify - Go minifiers for web formats
  • TimeScaleDB - time-series database packaged as a Postgres extension
  • upx (optional) - executable file compressor

Linux

With upx (compresses binary size):

sh build.sh

Or, without upx:

RUSTFLAGS="-C target-cpu=native" cargo build --release

NixOS

nix develop .#build -c $SHELL
sh build.sh

Windows

cargo build --release

Setup / Running

  1. Have a PostgreSQL server running with TimeScaleDB installed. Either self-hosted or using TigerData.

  2. To set the connection parameters, you can set the PostgreSQL environment variables as needed. (e.g. PGHOST, PGPORT, PGDATABASE, PGUSER, PGPASSWORD)

  3. Copy the save-EXAMPLE.json file to create a save.json file and modify the datetime as you like. Note that multiple entries/pages is not yet supported.

  4. Build the project and run the binary:

./target/release/update-countdown

Todo

  • Make collecting time series data optional (i.e. place behind a feature flag)
  • Add Docker/Containerization support
  • Add other game pages (e.g. Battlefront II, Silksong, Half-Life 3)
  • Add home & statistics page
  • Config file to change settings (e.g. port, DB URL)
  • Save page state to DB (overkill maybe?)

Tech stack

Motivation: Simple, fast, memory efficient, few dependencies

About

(In)accurately display the time & countdown until a game updates.

Resources

License

Stars

Watchers

Forks