Add support for Prinz Karl Mensa
This commit is contained in:
@@ -8,7 +8,8 @@ Options:
|
|||||||
|
|
||||||
- `-m`, `--morgenstelle` Show Mensa Morgenstelle
|
- `-m`, `--morgenstelle` Show Mensa Morgenstelle
|
||||||
- `-s`, `--shedhalle` Show Mensa Shedhalle
|
- `-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)
|
- `-o`, `--oneline` Use very short format (oneline)
|
||||||
- `-d`, `--days <DAYS>` Offset of days in the future (valid inputs 0-7) [default: 0]
|
- `-d`, `--days <DAYS>` Offset of days in the future (valid inputs 0-7) [default: 0]
|
||||||
- `-v`, `--vegetarian` Show the vegetarian menu
|
- `-v`, `--vegetarian` Show the vegetarian menu
|
||||||
|
@@ -12,8 +12,12 @@ pub struct Args {
|
|||||||
#[arg(short, long, default_value_t = false)]
|
#[arg(short, long, default_value_t = false)]
|
||||||
pub shedhalle: bool,
|
pub shedhalle: bool,
|
||||||
|
|
||||||
/// Format as plain text
|
/// Show Mensa Prinz Karl
|
||||||
#[arg(short, long, default_value_t = false)]
|
#[arg(short, long, default_value_t = false)]
|
||||||
|
pub prinzkarl: bool,
|
||||||
|
|
||||||
|
/// Format as plain text
|
||||||
|
#[arg(long, default_value_t = false)]
|
||||||
pub plaintext: bool,
|
pub plaintext: bool,
|
||||||
|
|
||||||
/// Use very short format (oneline)
|
/// Use very short format (oneline)
|
||||||
|
13
src/main.rs
13
src/main.rs
@@ -10,17 +10,20 @@ fn main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn exec_arguments(args: &cli::Args) {
|
fn exec_arguments(args: &cli::Args) {
|
||||||
let shedhalle = Mensa::from(MensaName::Shedhalle);
|
|
||||||
let morgenstelle = Mensa::from(MensaName::Morgenstelle);
|
|
||||||
|
|
||||||
if args.morgenstelle {
|
if args.morgenstelle {
|
||||||
if let Ok(resp) = morgenstelle {
|
if let Ok(resp) = Mensa::from(MensaName::Morgenstelle) {
|
||||||
exec_arg_helper(args, &resp);
|
exec_arg_helper(args, &resp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if args.shedhalle {
|
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);
|
exec_arg_helper(args, &resp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -7,6 +7,7 @@ use ureq::{Agent, Error};
|
|||||||
pub enum MensaName {
|
pub enum MensaName {
|
||||||
Shedhalle,
|
Shedhalle,
|
||||||
Morgenstelle,
|
Morgenstelle,
|
||||||
|
PrinzKarl,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait Mealplan {
|
pub trait Mealplan {
|
||||||
@@ -33,8 +34,9 @@ fn get_nth_date(days: u8) -> Option<chrono::DateTime<Local>> {
|
|||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
pub struct Mensa {
|
pub struct Mensa {
|
||||||
#[serde(alias = "621")]
|
#[serde(alias = "621")] // Morgenstelle
|
||||||
#[serde(rename = "611")]
|
#[serde(alias = "623")] // Prinz Karl
|
||||||
|
#[serde(rename = "611")] // Shedhalle
|
||||||
canteen: Canteen,
|
canteen: Canteen,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,6 +50,7 @@ impl Mensa {
|
|||||||
let canteen_id = match name {
|
let canteen_id = match name {
|
||||||
MensaName::Shedhalle => 611,
|
MensaName::Shedhalle => 611,
|
||||||
MensaName::Morgenstelle => 621,
|
MensaName::Morgenstelle => 621,
|
||||||
|
MensaName::PrinzKarl => 623,
|
||||||
};
|
};
|
||||||
|
|
||||||
let url =
|
let url =
|
||||||
|
Reference in New Issue
Block a user