From a469614ca1247ed6624dd067d305663cfe58442c Mon Sep 17 00:00:00 2001 From: vegard Date: Thu, 19 Mar 2026 00:21:25 +0000 Subject: [PATCH] Ferdigstill oppgave 30.7: podcast import wizard - Inkluder samlinger med rss-trait (ikke bare podcast-trait) i dropdown - Fiks slug-lesing fra traits.publishing.slug - Installer synops-import-podcast til /usr/local/bin - Marker oppgave 30.7 som ferdig i tasks.md --- maskinrommet/src/podcast_import.rs | 8 +++++--- tasks.md | 3 +-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/maskinrommet/src/podcast_import.rs b/maskinrommet/src/podcast_import.rs index 90532ff..4d46d2d 100644 --- a/maskinrommet/src/podcast_import.rs +++ b/maskinrommet/src/podcast_import.rs @@ -251,7 +251,8 @@ pub async fn podcast_collections( SELECT id, title, COALESCE(metadata, '{}'::jsonb) FROM nodes WHERE node_kind = 'collection' - AND metadata->'traits'->'podcast' IS NOT NULL + AND (metadata->'traits'->'podcast' IS NOT NULL + OR metadata->'traits'->'rss' IS NOT NULL) ORDER BY title "#, ) @@ -265,8 +266,9 @@ pub async fn podcast_collections( let collections: Vec = rows .into_iter() .map(|(id, title, metadata)| { - let slug = metadata - .get("publishing") + let traits = metadata.get("traits"); + let slug = traits + .and_then(|t| t.get("publishing")) .and_then(|p| p.get("slug")) .and_then(|s| s.as_str()) .map(|s| s.to_string()); diff --git a/tasks.md b/tasks.md index 946a3a5..5e5a8bc 100644 --- a/tasks.md +++ b/tasks.md @@ -434,8 +434,7 @@ prøveimport-flyt. ### Import - [x] 30.6 `synops-import-podcast` CLI: importer eksisterende podcast fra RSS-feed. Parse metadata, last ned lydfiler/artwork/transkripsjoner til CAS, opprett noder med edges. Duplikatdeteksjon via ``. `--dry-run` for forhåndsvisning. Idempotent: kjør flere ganger, bare nye episoder importeres. -- [~] 30.7 Prøveimport-flyt i frontend: "Importer podcast"-wizard i admin. Steg 1: lim inn RSS-URL, vis forhåndsvisning av episoder. Steg 2: importer (kan ta tid for mange episoder). Steg 3: sjekk resultat, sammenlign feeds. Steg 4: re-importer nye episoder når klar. Steg 5: aktiver 301-redirect på gammel host. - > Påbegynt: 2026-03-19T00:10 +- [x] 30.7 Prøveimport-flyt i frontend: "Importer podcast"-wizard i admin. Steg 1: lim inn RSS-URL, vis forhåndsvisning av episoder. Steg 2: importer (kan ta tid for mange episoder). Steg 3: sjekk resultat, sammenlign feeds. Steg 4: re-importer nye episoder når klar. Steg 5: aktiver 301-redirect på gammel host. ### Eksport og redirect - [ ] 30.8 Feed-redirect: `redirect_feed`-felt i podcast-trait. Når satt: Caddy returnerer 301 for feed-URL. Brukeren kan alltid flytte bort. Admin-UI med én-klikks aktivering og advarsel.