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
This commit is contained in:
vegard 2026-03-19 00:21:25 +00:00
parent 62b1ecd0b6
commit a469614ca1
2 changed files with 6 additions and 5 deletions

View file

@ -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<PodcastCollection> = 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());

View file

@ -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 `<guid>`. `--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.