ryan.mcgee 0db69509b1 Add Zola site, task scraper, and project scaffolding
- Scrapes 1592 Demonic Pacts tasks from the OSRS Wiki into tasks.json
- Zola static site with OSRS-themed dark UI, filters, search, and progress tracking
- Client-side localStorage persistence and RuneLite JSON import/export
- Live countdown to league end date in the site header
2026-05-26 09:24:14 -05:00
2026-05-26 13:21:23 +00:00

Leagues Task Fixer

A static website for tracking Old School RuneScape Leagues task completion. Built with Zola.

Features

  • 1592 tasks for the Demonic Pacts League, scraped from the OSRS Wiki
  • Filter by difficulty, area, and completion status
  • Search by task name or description
  • Completion status persisted in browser localStorage
  • Live countdown to league end
  • Import task completions from a RuneLite JSON export
  • Export completion state as JSON (compatible with tasks-tracker-plugin format)

Project Structure

OSRS-Task-Fixer/
├── scripts/
│   ├── scrape_tasks.py       # Scrapes task data from the OSRS Wiki
│   └── requirements.txt
└── website/                  # Zola site
    ├── config.toml           # Site config (league name, end date)
    ├── content/
    ├── templates/
    └── static/
        ├── data/tasks.json   # Generated task data (committed)
        ├── css/style.css
        └── js/tracker.js

Development

Prerequisites: Zola and Python 3.10+

# Serve locally with live reload
cd website
zola serve

# Build static output to website/public/
cd website
zola build

Updating Task Data

Re-run the scraper whenever task data changes on the wiki:

pip install -r scripts/requirements.txt
python scripts/scrape_tasks.py

The updated website/static/data/tasks.json can then be committed.

RuneLite Import

Export your task completions from RuneLite using either:

Then click Import RuneLite on the site and select the exported .json file.

Updating for a New League

  1. Update league_name and league_end_date in website/config.toml
  2. Re-run the scraper with the new league's wiki URL:
    python scripts/scrape_tasks.py --url https://oldschool.runescape.wiki/w/<LeagueName>/Tasks
    
  3. Commit the updated tasks.json

License

GPL-3.0 — see LICENSE.

S
Description
No description provided
Readme AGPL-3.0
299 KiB
Languages
JavaScript 49.2%
CSS 28.9%
HTML 11.7%
Python 10.2%