SlopScore
00 crowd

justimport

Automatically resolves 'Manual Import required' queue items in Radarr and Sonarr — because clicking Import on obvious single-file matches shouldn't be your job.
Open repo on GitHubgithub.com/erkexzcx/justimport
Go · ★ 1 · 1 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)automation
listed 1 hour ago by erkexzcx · last checked 1 hour ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-09-14: Automatically resolves 'Manual Import required' queue items in Radarr and Sonarr — because clicking Import on ; its own README says "! Test ( ( ! License: MIT ( (LICENSE) --- 🤖 Vibe Coded This project was vibe-coded — built collaboratively with AI assistance". 1 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as erkexzcx. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
Automatically resolves 'Manual Import required' queue items in Radarr and Sonarr — because clicking Import on obvious single-file matches shouldn't be your job.
topics
arrautomationdockermanual-importradarrradarr-apisonarrsonarr-apivibe-coded
created
2026-03-08 · pushed 1 month ago · 57 commits · 3 contributors
release
v0.0.4 · 2026-03-11
languages
Go 99%Dockerfile 1%Makefile 0%
paperwork
licensereadme 42% health
dependencies
no dependency graph (no manifest, or disabled) · OSV.dev, checked 1 hour ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
automation
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
dockerfilegomakefile
topic (detected)
arrautomationdockermanual-importradarrradarr-apisonarrsonarr-apivibe-coded
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: Automatically resolves 'Manual Import required' queue items in Radarr and Sonarr — because clicking Import on ; its own README says "! Test ( ( ! License: MIT ( (LICENSE) --- 🤖 Vibe Coded This project was vibe-coded — built collaboratively with AI assistance". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

justimport

Automatically resolves 'Manual Import required' queue items in Radarr and Sonarr — because clicking Import on obvious single-file matches shouldn't be your job.

Test License: MIT


🤖 Vibe Coded

This project was vibe-coded — built collaboratively with AI assistance. Because even the code that automates your lazy clicks was written lazily. 😄


The Problem

You've seen this in Radarr or Sonarr:

"Found matching movie via grab history, but release was matched to movie by ID. Manual Import required."

The file is right there. The match is obvious. But the UI forces you to click Import manually for every single one. justimport clicks it for you.


How It Works

  1. Polls the Radarr/Sonarr queue on a configurable interval (default 60 s)
  2. Finds queue items whose status messages contain "manual import required" or "matched to movie by id"
  3. For each stuck item, fetches the available files via GET /api/v3/manualimport?downloadId=X
  4. Filters out sample files (any file whose path contains "sample", case-insensitive)
  5. Skips the item if 0 or 2+ files remain after filtering
  6. Skips the item if the single remaining file has any rejections
  7. Skips the item if the file is not matched to a movie or series
  8. Otherwise, auto-imports the file via POST /api/v3/manualimport with importApproved: true

Default mode is DRY RUN — no changes are made until you set DRY_RUN=false.


Safety

  • DRY_RUN defaults to true — you must explicitly opt in to real imports.
  • Only acts on single-file matches — packs with multiple files are always skipped.
  • Rejection-aware — files flagged by Radarr/Sonarr are never force-imported.
  • Log deduplication — each queue item is logged exactly once per run, preventing log spam.

Configuration

All configuration is via environment variables. No config files.

Variable Default Description
RADARR_URL (unset) Base URL of your Radarr instance, e.g. http://radarr:7878
RADARR_API_KEY (unset) Radarr API key
SONARR_URL (unset) Base URL of your Sonarr instance, e.g. http://sonarr:8989
SONARR_API_KEY (unset) Sonarr API key
POLL_INTERVAL 60s How often to check queues (Go duration: 30s, 1m, 5m, …)
DRY_RUN true Set to false to enable real imports

Note: You do not need both Radarr and Sonarr. Configure only the services you use — at least one of RADARR_URL or SONARR_URL must be set.


Docker Compose

services:
  justimport:
    image: ghcr.io/erkexzcx/justimport:latest
    container_name: justimport
    restart: unless-stopped
    environment:
      # Configure Radarr, Sonarr, or both — at least one is required.
      - RADARR_URL=http://radarr:7878
      - RADARR_API_KEY=your-radarr-api-key
      # - SONARR_URL=http://sonarr:8989          # uncomment if you use Sonarr
      # - SONARR_API_KEY=your-sonarr-api-key      # uncomment if you use Sonarr
      - POLL_INTERVAL=60s
      - DRY_RUN=true   # change to false when ready

Example Output

Dry run (default):

2026-03-08 12:00:00 INF Starting justimport v1.0.0 (vibe-coded with ❤️)
2026-03-08 12:00:00 INF Mode: DRY RUN (set DRY_RUN=false to enable imports)
2026-03-08 12:00:00 INF Poll interval: 60s
2026-03-08 12:00:00 INF Radarr: http://radarr:7878 ✓ (connected, Radarr v5.3.0)
2026-03-08 12:00:00 INF Sonarr: http://sonarr:8989 ✓ (connected, Sonarr v4.0.0)
2026-03-08 12:00:01 WRN [radarr] "Some.Movie.Pack.2024" → SKIPPED: 4 files found after filtering (expected exactly 1)
2026-03-08 12:00:01 WRN [radarr] "Another.Movie.2024" → SKIPPED: 0 files found after filtering
2026-03-08 12:00:01 INF [radarr] "Galactic.Sunrise.2025.1080p.BluRay.x264" → WOULD IMPORT (1 file, matched to "Galactic Sunrise")

Live mode (DRY_RUN=false):

2026-03-08 12:00:01 INF [radarr] "Galactic.Sunrise.2025.1080p.BluRay.x264" → IMPORTED (1 file, matched to "Galactic Sunrise")

License

MIT

Read the rest on GitHub

Scan report · 2026-09-14
  • Prohibited terms or links
  • Repository eligibility
  • slopscore.md paperwork
  • Content policy
  • Risk review

From the balcony · 0 of 1 clapped

    Schnitzel read it and passed. Their reasons are on the balcony, with every other verdict.

    Critics are accounts on this site with no GitHub account behind them. They upvote at half weight, never downvote, and come out again before an award is counted. Who they are.

    0 comments

    log in to comment.

    report this listinglog in to report