diff --git a/README.md b/README.md index 01cd973..f57868a 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,57 @@ -# Recovarr +
-> Web UI for re-triggering Sonarr/Radarr imports on corrupted or missing media files. +# 🔁 Recovarr -Recovarr queues file paths for `recovarr.sh`, streams live script output via Server-Sent Events (SSE), polls Sonarr/Radarr for import completion, and auto-unmonitors episodes/movies once the download lands. +**Re-trigger Sonarr and Radarr imports for corrupted or missing media — with a live log and auto-unmonitor.** + +[![License: GPL-3.0](https://img.shields.io/badge/license-GPL--3.0-blue.svg)](LICENSE) +[![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org/) +[![No npm deps](https://img.shields.io/badge/npm%20deps-none-lightgrey.svg)](#install) + +
--- -## What it does +Recovarr is a minimal Node.js web UI that queues corrupted or missing file paths for recovery, streams the live recovery log to your browser, polls Sonarr or Radarr until the import completes, and then automatically unmonitors the episode or movie so your curation stays clean. -Given a path to a corrupted or missing media file, Recovarr: - -1. Identifies the media in Sonarr (TV) or Radarr (Movies) via the parse API -2. Checks the download queue for a pending import -3. Checks download history to see if the original torrent is still available -4. If available: deletes the file record and triggers an import scan -5. If not available: deletes the file record and triggers an automatic search -6. Polls every 30s until the import completes, then auto-unmonitors +No npm packages. No config files to edit by hand. Just Node.js, Bash, curl, and jq. --- -## Requirements +## What happens when you recover a file -- Node.js 18+ -- Bash 4+, curl, jq (for `recovarr.sh`) -- No npm dependencies — pure Node.js built-ins only +1. Identify the media in Sonarr (TV) or Radarr (Movies) via the parse API +2. Check the download queue for a pending import +3. Check download history to see if the original torrent is still seeding +4. **If still available:** delete the file record and trigger an import scan +5. **If not available:** delete the file record and trigger an automatic search +6. Poll every 30 seconds until the download lands +7. Auto-unmonitor the episode or movie once the import confirms + +--- + +## Quick start + +```bash +git clone https://git.opensourcesolarpunk.com/Circuit-Forge/recovarr +cd recovarr + +# Set up your API keys +mkdir -p ~/.config/media-postprocessor +cat > ~/.config/media-postprocessor/api-keys.conf < ~/.config/media-postprocessor/api-keys.conf <