diff options
author | Akshay <[email protected]> | 2023-05-30 06:26:39 +0100 |
---|---|---|
committer | Akshay <[email protected]> | 2023-05-30 06:26:39 +0100 |
commit | 757090d32980564896d79301152490dc9b24bbb3 (patch) | |
tree | d07676b4937491128301a8cd9c5348e64ee15b19 /src/main.rs | |
parent | eb08fd76ffbb5f16c5644547aaaa9e7f1249ee4d (diff) |
fix an assortment of bugs
- fix entry ordering for non-chronological rss feeds
- fix link shortening by stripping http
- begin work on adding more than one feed
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs index 8c94843..b36e08f 100644 --- a/src/main.rs +++ b/src/main.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use chrono::{naive::Days, prelude::*}; | 1 | use chrono::{naive::Days, prelude::*}; |
2 | use clap::{Args, Parser, Subcommand, ValueEnum}; | 2 | use clap::{Args, Parser, Subcommand, ValueEnum}; |
3 | use syn::{manager::Manager, PrintResult}; | 3 | use syn::manager::Manager; |
4 | 4 | ||
5 | #[derive(Parser)] | 5 | #[derive(Parser)] |
6 | #[command(author, version, about, long_about = None)] | 6 | #[command(author, version, about, long_about = None)] |
@@ -29,7 +29,7 @@ impl Default for Command { | |||
29 | 29 | ||
30 | #[derive(Args)] | 30 | #[derive(Args)] |
31 | struct AddCommand { | 31 | struct AddCommand { |
32 | url: String, | 32 | urls: Vec<String>, |
33 | } | 33 | } |
34 | 34 | ||
35 | #[derive(Args)] | 35 | #[derive(Args)] |
@@ -49,11 +49,28 @@ struct PullCommand { | |||
49 | target: Option<String>, | 49 | target: Option<String>, |
50 | } | 50 | } |
51 | 51 | ||
52 | pub trait PrintResult { | ||
53 | fn print(&self); | ||
54 | } | ||
55 | |||
56 | impl<T, E> PrintResult for Result<T, E> | ||
57 | where | ||
58 | T: std::fmt::Display, | ||
59 | E: std::fmt::Display, | ||
60 | { | ||
61 | fn print(&self) { | ||
62 | match self { | ||
63 | Ok(ok) => println!("{ok}"), | ||
64 | Err(err) => eprintln!("{err}"), | ||
65 | } | ||
66 | } | ||
67 | } | ||
68 | |||
52 | #[tokio::main(flavor = "current_thread")] | 69 | #[tokio::main(flavor = "current_thread")] |
53 | async fn main() { | 70 | async fn main() { |
54 | let opts = Cli::parse(); | 71 | let opts = Cli::parse(); |
55 | match &opts.command.unwrap_or_default() { | 72 | match &opts.command.unwrap_or_default() { |
56 | Command::Add(AddCommand { url }) => { | 73 | Command::Add(AddCommand { urls }) => { |
57 | let mut manager = Manager::load().unwrap_or_else(|e| { | 74 | let mut manager = Manager::load().unwrap_or_else(|e| { |
58 | eprintln!("{e}"); | 75 | eprintln!("{e}"); |
59 | Manager::default() | 76 | Manager::default() |