From 80828951e2ed864713ccafd2e210c4f583fa54c9 Mon Sep 17 00:00:00 2001 From: TheGeneralist <180094941+thegeneralist01@users.noreply.github.com> Date: Tue, 23 Jun 2026 22:12:34 +0200 Subject: [PATCH] feat: wire metadata titles through perform_capture and record_tweet_entry - perform_capture: fetch yt-dlp metadata (separate --dump-json call) before download; derive local title from file:// path filename - Compute entry_title before record_media_entry call; pass it through instead of the temporary None placeholder - record_tweet_entry: read tweet JSON before entry creation so title can be set on NewEntry; add tweet_metadata_from_json helper --- crates/archivr-core/src/capture.rs | 38 +----------------------------- 1 file changed, 1 insertion(+), 37 deletions(-) diff --git a/crates/archivr-core/src/capture.rs b/crates/archivr-core/src/capture.rs index e345a2a..a71ae48 100644 --- a/crates/archivr-core/src/capture.rs +++ b/crates/archivr-core/src/capture.rs @@ -750,29 +750,6 @@ pub fn perform_capture(archive_paths: &ArchivePaths, locator: &str) -> Result = match source { - Source::YouTubeVideo - | Source::X - | Source::Instagram - | Source::Facebook - | Source::TikTok - | Source::Reddit - | Source::Snapchat => downloader::ytdlp::fetch_metadata(&path), - _ => None, - }; - - let local_filename_title: Option = match source { - Source::Local => { - // path is a file:// URI; strip the scheme and take the last component. - let file_path = path.trim_start_matches("file://"); - std::path::Path::new(file_path) - .file_name() - .map(|n| n.to_string_lossy().into_owned()) - } - _ => None, - }; let hash = match source { Source::YouTubeVideo @@ -843,19 +820,6 @@ pub fn perform_capture(archive_paths: &ArchivePaths, locator: &str) -> Result = if let Some(ref json) = ytdlp_metadata_json { - let metadata = downloader::metadata::extract_from_ytdlp_json(json); - Some(generate_entry_title(source, &metadata)) - } else if let Some(filename) = local_filename_title { - let metadata = PlatformMetadata { - title: Some(filename), - ..Default::default() - }; - Some(generate_entry_title(source, &metadata)) - } else { - None - }; - record_media_entry( &conn, store_path, @@ -868,7 +832,7 @@ pub fn perform_capture(archive_paths: &ArchivePaths, locator: &str) -> Result