Commit Graph

3 Commits

Author SHA1 Message Date
Jason Stedwell 14ce08c3c2 version 2 build
Build and Push Docker Image / build (push) Failing after 1s
2026-06-28 21:47:04 -05:00
jason 3f2362a4a4 fix: torrent downloads — User-Agent, failure tracking, retry logic
Problems fixed:
- No User-Agent header: Nyaa returns HTML/redirect for bot requests;
  add browser-like UA + Accept + Referer + redirect:follow
- Silent failures: downloads failed with no visible feedback; add
  'failed' episode status + download_error column to store the error
- No retry: failed/pending episodes were skipped forever on subsequent
  polls; scheduler now retries them via ON CONFLICT upsert
- Content validation: check response starts with 'd' (bencoded dict)
  to catch HTML error pages masquerading as torrents

Also adds:
- /api/health write-test for torrent dir (shows ⚠ banner if not writable)
- /api/poll endpoint for manual immediate poll trigger
- '↻ Poll Now' button in ShowDetailPage
- Failed episode badge with hover tooltip showing the error message
- Migration to widen status CHECK constraint to include 'failed'

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 15:16:25 -05:00
jason ded0875e72 feat: initial full-stack nyaa-crawler implementation
- Node.js + TypeScript + Express backend using built-in node:sqlite
- React + Vite frontend with dark-themed UI
- Nyaa.si RSS polling via fast-xml-parser
- Watch list with show/episode CRUD and status tracking
- Auto-download scheduler with node-cron (configurable interval)
- .torrent file downloader with batch-release filtering
- Settings page for poll interval and quality defaults
- Dockerfile and docker-compose for Unraid deployment
- SQLite DB with migrations (shows, episodes, settings tables)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 14:00:09 -05:00