A service to discover and expose Across the Tasman torrents
  • JavaScript 56.6%
  • HTML 43.3%
  • Dockerfile 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Leigh 486aeac249 Docs: fixtures store and endpoint
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 08:20:04 +08:00
docs/superpowers Add parser refinements implementation plan 2026-10-13 13:55:39 +08:00
public UI: unknown quality, teams TBD, set teams on finals, trophy teams column 2026-10-25 08:19:31 +08:00
server API: set teams on pending fixtures, trophy teams in dictionaries, prune on save 2026-10-25 08:19:20 +08:00
test API: set teams on pending fixtures, trophy teams in dictionaries, prune on save 2026-10-25 08:19:20 +08:00
.dockerignore Initial commit — Rugby Torrent Browser 2026-07-01 20:29:45 +08:00
.env.example Initial commit — Rugby Torrent Browser 2026-07-01 20:29:45 +08:00
.gitignore Docs: fixtures store and endpoint 2026-10-25 08:20:04 +08:00
CLAUDE.md Docs: fixtures store and endpoint 2026-10-25 08:20:04 +08:00
docker-compose.yml Docs and ops for the torrent index: rules, tests, healthcheck 2026-10-13 12:57:33 +08:00
Dockerfile Initial commit — Rugby Torrent Browser 2026-07-01 20:29:45 +08:00
package-lock.json Initial commit — Rugby Torrent Browser 2026-07-01 20:29:45 +08:00
package.json db: atomic JSON writes, torrent index stores, pollMinutes setting 2026-10-13 12:52:55 +08:00
README.md Docs: fixtures store and endpoint 2026-10-25 08:20:04 +08:00

Rugby Torrent Browser

Browse rugby competitions, seasons, rounds and torrents from Across the Tasman — with authenticated access via your forum session cookie.

Quick start

cp .env.example .env
# Edit .env and set ATT_COOKIE to your forum session cookie

Your cookie is passed in via the ATT_COOKIE environment variable and is never exposed to the browser — all requests to the forum are made server-side.

To refresh your cookie: open DevTools in your browser → Network tab → visit acrossthetasman.com → click any request → copy the Cookie header value.

2. Build and run

docker compose up --build

Then open http://localhost:3000 in your browser.

When your session expires, update .env and restart:

docker compose restart

Running without Docker (development)

npm install
ATT_COOKIE="your cookie here" npm start

How it works

  • Torrent feed: the server reads ATT's site-wide torrent list (torrents.php) every 15 minutes (configurable, never faster) and stores each torrent in data/torrents.json. A one-off backfill (Settings) pulls older pages at one page per minute.
  • Parsing: titles are parsed into sport, competition, season, round, teams, quality and video type using editable dictionaries (Dictionaries page). Anything the parser can't read shows on Needs attention.
  • Auto-download: after each check, one game torrent per favourite-team match in a followed competition is sent to qBittorrent, preferring your chosen quality.
  • Your cookie stays server-side; the browser only talks to the local API.

API endpoints

Endpoint Description
GET /api/events Matches built from the index (filters: q, competition, team, scope, videoType, quality, from, to)
GET /api/events/:id One match with all its torrents
GET /api/torrents Parsed torrents (filters: q, sport, quality, from, to, unparsed=1)
GET/PUT /api/dictionaries Parser dictionaries
PUT /api/overrides/:attachmentId Manual field corrections
PUT /api/fixtures/:eventId Set teams for a final whose torrent titles name none
POST /api/ingest/poll Check now (+ auto-download)
GET /api/ingest/status Last check, backfill progress, counts
POST /api/ingest/backfill `{ action: start

Port

Default is 3000. Change in docker-compose.yml:

ports:
  - "8080:3000"   # expose on 8080 instead