Merge pull request #6 from stevedylandev/chore/feeds-add-default-feed-var
1de32e1b
chore/feeds add default feed var
3 file(s) · +22 −10
chore/feeds add default feed var
| 1243 | 1243 | ||
| 1244 | 1244 | [[package]] |
|
| 1245 | 1245 | name = "feeds" |
|
| 1246 | - | version = "0.1.1" |
|
| 1246 | + | version = "0.1.2" |
|
| 1247 | 1247 | dependencies = [ |
|
| 1248 | 1248 | "andromeda-auth", |
|
| 1249 | 1249 | "askama 0.13.1", |
|
| 2056 | 2056 | ||
| 2057 | 2057 | [[package]] |
|
| 2058 | 2058 | name = "jotts" |
|
| 2059 | - | version = "0.1.1" |
|
| 2059 | + | version = "0.1.2" |
|
| 2060 | 2060 | dependencies = [ |
|
| 2061 | 2061 | "andromeda-auth", |
|
| 2062 | 2062 | "askama 0.15.6", |
|
| 1 | 1 | [package] |
|
| 2 | 2 | name = "feeds" |
|
| 3 | - | version = "0.1.1" |
|
| 3 | + | version = "0.1.2" |
|
| 4 | 4 | edition = "2024" |
|
| 5 | 5 | description = "Minimal RSS feed reader" |
|
| 6 | 6 | license = "MIT" |
| 342 | 342 | } |
|
| 343 | 343 | ||
| 344 | 344 | // Priority 3: FreshRSS fallback |
|
| 345 | - | let freshrss_url = std::env::var("FRESHRSS_URL").map_err(|_| "FRESHRSS_URL not set")?; |
|
| 346 | - | let username = |
|
| 347 | - | std::env::var("FRESHRSS_USERNAME").map_err(|_| "FRESHRSS_USERNAME not set")?; |
|
| 348 | - | let password = |
|
| 349 | - | std::env::var("FRESHRSS_PASSWORD").map_err(|_| "FRESHRSS_PASSWORD not set")?; |
|
| 345 | + | if let Some((freshrss_url, username, password)) = crate::freshrss_env() { |
|
| 346 | + | let items = fetch_freshrss_items(&freshrss_url, &username, &password).await?; |
|
| 347 | + | return Ok((items, None)); |
|
| 348 | + | } |
|
| 350 | 349 | ||
| 351 | - | let items = fetch_freshrss_items(&freshrss_url, &username, &password).await?; |
|
| 352 | - | Ok((items, None)) |
|
| 350 | + | // Priority 4: DEFAULT_FEED env var |
|
| 351 | + | if let Ok(default_feed) = std::env::var("DEFAULT_FEED") { |
|
| 352 | + | let urls: Vec<String> = default_feed |
|
| 353 | + | .split(',') |
|
| 354 | + | .map(|u| u.trim().to_string()) |
|
| 355 | + | .filter(|u| !u.is_empty()) |
|
| 356 | + | .collect(); |
|
| 357 | + | ||
| 358 | + | if !urls.is_empty() { |
|
| 359 | + | let items = parse_urls(&urls).await; |
|
| 360 | + | return Ok((items, Some(urls))); |
|
| 361 | + | } |
|
| 362 | + | } |
|
| 363 | + | ||
| 364 | + | Err("No feed source configured. Set FRESHRSS_URL/FRESHRSS_USERNAME/FRESHRSS_PASSWORD or DEFAULT_FEED.".to_string()) |
|
| 353 | 365 | } |