CLI-verktøy som parser RSS-feed, laster ned lydfiler og artwork til CAS, og oppretter content-noder med has_media/belongs_to/og_image-edges. Funksjoner: - Duplikatdeteksjon via <guid> — idempotent ved gjentatt kjøring - --dry-run for forhåndsvisning uten skriving til DB/CAS - Metadata: tittel, beskrivelse, pubDate, duration, episode/season-nummer - Lydfil → CAS → media-node + has_media-edge - Artwork → CAS → media-node + og_image-edge - publish_at satt fra pubDate i belongs_to-edge metadata - --payload-json for jobbkø-integrasjon med maskinrommet - JSON-output til stdout med detaljert per-episode status Testet med The Daily (2801 episoder) og Huberman Lab (389 episoder) i dry-run modus — parser korrekt inkl. episode-nummerering.
23 lines
774 B
TOML
23 lines
774 B
TOML
[package]
|
|
name = "synops-import-podcast"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[[bin]]
|
|
name = "synops-import-podcast"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
clap = { version = "4", features = ["derive"] }
|
|
tokio = { version = "1", features = ["full"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
uuid = { version = "1", features = ["v7", "serde"] }
|
|
sqlx = { version = "0.8", features = ["runtime-tokio", "tls-rustls", "postgres", "uuid", "json", "chrono"] }
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
feed-rs = "2"
|
|
quick-xml = "0.37"
|
|
synops-common = { path = "../synops-common" }
|