1
Fork 0
mirror of https://github.com/thegeneralist01/archivr synced 2026-10-09 21:03:17 +02:00
archivr/crates/archivr-core/src
archivr-qa 4e7bd086ea
feat(core): resolve_yt_dlp picks the newer of pinned vs state-dir
The nix flake wrapper pins a yt-dlp via ARCHIVR_YT_DLP, but yt-dlp rots
fast — extractors break within weeks of a pin. Add a resolver that probes
`--version` on both the pinned binary and a user-installed copy under the
mutable state dir, and runs whichever is newer.

Version strings are YYYY.MM.DD, so plain string ordering is chronological.
Ties resolve toward the state dir: a user who installed it there did so
deliberately. ARCHIVR_YT_DLP_FORCE bypasses the comparison entirely, and
with no candidate at all we fall back to bare `yt-dlp` on PATH — exactly
the previous behaviour.

Resolution is cached in a OnceLock so `--version` costs one subprocess per
process, and all four inline env::var lookups now go through it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 19:20:58 +02:00
..
downloader feat(core): resolve_yt_dlp picks the newer of pinned vs state-dir 2026-08-23 19:20:58 +02:00
archive.rs fix: exclude child entries from collection listing 2026-08-02 11:23:13 +02:00
capture.rs feat(core): add more Freedium domains + restrict Freedium routing to supported domains (#36) 2026-07-29 17:40:07 +02:00
database.rs feat(collections): public collections, per-collection auth, UX improvements (#34) 2026-07-24 20:16:17 +02:00
hash.rs feat(fonts): hash_bytes, get_blob_by_sha256, font_extractor module 2026-06-25 16:02:57 +02:00
lib.rs feat: browser capture button (Track 4) 2026-06-22 22:18:44 +02:00
twitter.rs feat: add db and multi-archive web UI foundation (#8) 2026-06-14 00:27:16 +02:00