From bdef10ace460799490a1b2caf61181ea7d63505d Mon Sep 17 00:00:00 2001 From: structix Date: Wed, 24 Apr 2024 12:36:10 +0200 Subject: [PATCH] Add support for Prinz Karl Mensa --- README.md | 3 ++- src/cli.rs | 6 +++++- src/main.rs | 13 ++++++++----- src/mensa.rs | 7 +++++-- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 0df0608..389fb88 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ Options: - `-m`, `--morgenstelle` Show Mensa Morgenstelle - `-s`, `--shedhalle` Show Mensa Shedhalle -- `-p`, `--plaintext` Format as plain text +- `-p`, `--prinzkarl` Show Mensa Prinz Karl +- `--plaintext` Format as plain text - `-o`, `--oneline` Use very short format (oneline) - `-d`, `--days ` Offset of days in the future (valid inputs 0-7) [default: 0] - `-v`, `--vegetarian` Show the vegetarian menu diff --git a/src/cli.rs b/src/cli.rs index 3ed5299..74b695f 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -12,8 +12,12 @@ pub struct Args { #[arg(short, long, default_value_t = false)] pub shedhalle: bool, - /// Format as plain text + /// Show Mensa Prinz Karl #[arg(short, long, default_value_t = false)] + pub prinzkarl: bool, + + /// Format as plain text + #[arg(long, default_value_t = false)] pub plaintext: bool, /// Use very short format (oneline) diff --git a/src/main.rs b/src/main.rs index f8ff149..2b859d1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,17 +10,20 @@ fn main() { } fn exec_arguments(args: &cli::Args) { - let shedhalle = Mensa::from(MensaName::Shedhalle); - let morgenstelle = Mensa::from(MensaName::Morgenstelle); - if args.morgenstelle { - if let Ok(resp) = morgenstelle { + if let Ok(resp) = Mensa::from(MensaName::Morgenstelle) { exec_arg_helper(args, &resp); } } if args.shedhalle { - if let Ok(resp) = shedhalle { + if let Ok(resp) = Mensa::from(MensaName::Shedhalle) { + exec_arg_helper(args, &resp); + } + } + + if args.prinzkarl { + if let Ok(resp) = Mensa::from(MensaName::PrinzKarl) { exec_arg_helper(args, &resp); } } diff --git a/src/mensa.rs b/src/mensa.rs index ae907e6..c85aace 100644 --- a/src/mensa.rs +++ b/src/mensa.rs @@ -7,6 +7,7 @@ use ureq::{Agent, Error}; pub enum MensaName { Shedhalle, Morgenstelle, + PrinzKarl, } pub trait Mealplan { @@ -33,8 +34,9 @@ fn get_nth_date(days: u8) -> Option> { #[derive(Debug, Serialize, Deserialize)] pub struct Mensa { - #[serde(alias = "621")] - #[serde(rename = "611")] + #[serde(alias = "621")] // Morgenstelle + #[serde(alias = "623")] // Prinz Karl + #[serde(rename = "611")] // Shedhalle canteen: Canteen, } @@ -48,6 +50,7 @@ impl Mensa { let canteen_id = match name { MensaName::Shedhalle => 611, MensaName::Morgenstelle => 621, + MensaName::PrinzKarl => 623, }; let url =