diff options
| author | Joe Carstairs <me@joeac.net> | 2026-09-05 20:38:46 +0100 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-09-05 20:38:46 +0100 |
| commit | f7be10edfc3719ea51170680e8ef3260bb941186 (patch) | |
| tree | 7c52eae8a7b11d06f7f77f83b2950fc8c5b20572 /src/config.rs | |
| parent | 7995cf1a6df3e602f96c50f03fdd558da87049b5 (diff) | |
aggregate feeds into one
Diffstat (limited to 'src/config.rs')
| -rw-r--r-- | src/config.rs | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/config.rs b/src/config.rs index 089d3e2..a5652c1 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,11 +1,41 @@ -use std::{fs::File, io::{read_to_string}, path::Path}; +use std::{collections::BTreeMap, fs::File, io::read_to_string, path::Path}; +use rss::{Category, Cloud, Image, TextInput, extension::{Extension, dublincore::DublinCoreExtension, itunes::ITunesChannelExtension, syndication::SyndicationExtension}}; use serde::Deserialize; #[derive(Deserialize)] pub struct Config { #[serde(default)] - pub urls: Vec<String> + pub urls: Vec<String>, + pub channel: ChannelConfig, +} + +#[derive(Deserialize)] +pub struct ChannelConfig { + pub title: String, + pub link: String, + pub description: String, + pub language: Option<String>, + pub copyright: Option<String>, + pub managing_editor: Option<String>, + pub webmaster: Option<String>, + #[serde(default)] + pub categories: Vec<Category>, + pub cloud: Option<Cloud>, + pub ttl: Option<String>, + pub image: Option<Image>, + pub text_input: Option<TextInput>, + #[serde(default)] + pub skip_hours: Vec<String>, + #[serde(default)] + pub skip_days: Vec<String>, + #[serde(default)] + pub extensions: BTreeMap<String, BTreeMap<String, Vec<Extension>>>, + pub itunes_ext: Option<ITunesChannelExtension>, + pub dublin_core_ext: Option<DublinCoreExtension>, + pub syndication_ext: Option<SyndicationExtension>, + #[serde(default)] + pub namespaces: BTreeMap<String, String>, } pub fn default_config_file_locations() -> Vec<String> { |
