A personal toolbox of standalone, numbered utilities for systems, networking, DevOps, security, automation, media, firmware, and everyday problem-solving. Each tool lives in its own directory with its own README, scripts, and dependencies, so you can copy or use any single one without the rest of the repo.
  • Python 87.4%
  • Shell 12.3%
  • Dockerfile 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
JD Bungart 59dfd4996d Add 03-dedupe-tv-shows: completeness-gated TV deduplicator
Deduplicates a Jellyfin TV library by IMDb ID while protecting
completeness: it counts seasons/episodes per copy (SxxExx / NxNN) and
keeps the most complete copy, only quarantining copies whose episodes are
fully contained in the keeper. Groups are skipped for manual review when
the most complete copy is materially lower quality than a smaller one,
when copies are complementary, or when episodes/quality can't be read.

Reuses the movie tool's ffprobe quality logic, whitespace normalization,
and the verbose/report/table-summary UX. Adds the tool to the root index.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 22:28:29 +08:00
00-template Make scripts uniform and add safety checks for external paths, symlinks, and TTY-less runs 2026-07-12 18:35:24 +08:00
01-fat32-usb-image-builder Add MIT license, move dedupe_movies into 02-dedupe-movies, add SPDX headers to all scripts 2026-07-14 12:20:56 +08:00
02-dedupe-movies dedupe-movies: fix resolution gate, rename script, add run summary 2026-07-14 22:28:29 +08:00
03-dedupe-tv-shows Add 03-dedupe-tv-shows: completeness-gated TV deduplicator 2026-07-14 22:28:29 +08:00
.gitignore Restructure as toolbox: move tool into 01-fat32-usb-image-builder/ 2026-07-12 18:19:50 +08:00
LICENSE Add MIT license, move dedupe_movies into 02-dedupe-movies, add SPDX headers to all scripts 2026-07-14 12:20:56 +08:00
README.md Add 03-dedupe-tv-shows: completeness-gated TV deduplicator 2026-07-14 22:28:29 +08:00

jdneer-toolbox

A personal toolbox of standalone, numbered utilities for systems, networking, DevOps, security, automation, media, firmware, and everyday problem-solving. Each tool lives in its own directory with its own README, scripts, and dependencies, so you can copy or use any single one without the rest of the repo.

Tools

# Tool Description
00 template README template and structure for new tools
01 fat32-usb-image-builder Build a mountable FAT32 USB mass-storage image from files in src/
02 dedupe-movies Deduplicate a Jellyfin movie library by IMDb ID, keeping the best-quality copy
03 dedupe-tv-shows Deduplicate a Jellyfin TV library by IMDb ID, keeping the most complete copy without losing episodes

Layout

Each tool lives in its own numbered directory:

NN-short-name/
├── README.md          # Tool-specific documentation
├── .gitignore         # Tool-specific exclusions
└── ...                # The tool itself

The root README.md indexes the tools. The root .gitignore handles global exclusions (AI artifacts, OS files, IDE files, model downloads). Each tool's own .gitignore handles its build artifacts and input/output directories.

Adding a new tool

  1. Copy 00-template/README.md to NN-tool-name/README.md and fill it in.
  2. Add the tool, its own .gitignore, and any wrappers it needs.
  3. Add a row to the table above.
  4. Keep the tool self-contained so it can be used independently.

License

MIT

Repository

Remote: ssh://git@git.jdneer.com:29500/jd/jdneer-toolbox.git