Add support for Prinz Karl Mensa

This commit is contained in:
2024-04-24 12:36:10 +02:00
parent 01fb111608
commit bdef10ace4
4 changed files with 20 additions and 9 deletions

View File

@@ -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 <DAYS>` Offset of days in the future (valid inputs 0-7) [default: 0]
- `-v`, `--vegetarian` Show the vegetarian menu

View File

@@ -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)

View File

@@ -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);
}
}

View File

@@ -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<chrono::DateTime<Local>> {
#[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 =