Skip to content

MalteT/mensa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9d8bdd9 · Apr 14, 2023
Oct 19, 2021
Apr 14, 2023
Jun 26, 2022
Apr 14, 2023
Apr 14, 2023
Apr 14, 2023
Jun 26, 2022
Jun 26, 2022
Oct 19, 2021
Oct 27, 2021
Oct 27, 2021
Apr 14, 2023
Apr 14, 2023
Apr 14, 2023

Repository files navigation

mensa CLI logo

tests

mensa

CLI tool to query the menu of canteens contained in the OpenMensa database.

Features

  • Runs on Linux, macOS and Windows.
  • Custom filters and favourites using CLI flags or the optional configuration file.
  • List canteens close to you based on GeoIP.
  • All request are cached locally.
  • Fuzzy date parsing based on date_time_parser.
  • List your favourite meals in canteens close to your location.
  • JSON Output

example

Installation

Cargo

Only nightly Rust supported at the moment.

$ cargo install --git https://github.com/MalteT/mensa

Nix

This is a Nix Flake, add it to your configuration or just test the application with:

$ nix run github:MalteT/mensa

Usage

See mensa --help.

  • mensa meals will show meals served today for the default canteen mentioned in the configuration. If no such configuration exists, try mensa meals --id 63. You can find the id for your canteen using
  • mensa canteens lists canteens near you based on your current IP in a default radius of 10km.
  • mensa tags will list the currently known meal tags like "12 Nuts".

Examples

Meals on monday (Click me!)

You can omit the -i/--id if you've configured a default id in the config.toml.

$ mensa meals -d mon -i 63

 Leipzig, Mensa am Park

 ┊ ╭───╴Bohnengemüse
 ┊ ├─╴Gemüsebeilage 🌱
 ┊ ╰╴( 0.55€ )
 ...
Canteens near your location (Click me!)
$ mensa canteens

70 Leipzig, Cafeteria Dittrichring
   Dittrichring 21, 04109 Leipzig

63 Leipzig, Mensa am Park
   Universitätsstraße 5, 04109 Leipzig
...
All currently known tags (Click me!)
$ mensa tags

   0 Acidifier
     Contains artificial acidifier

   1 Alcohol
     Contains alcohol

   2 Antioxidant
     Contains an antioxidant
  ...
Meals of canteens close to your location next sunday (Click me!)
$ mensa meals close --date sun

 Leipzig, Cafeteria Dittrichring

 ┊ ╭───╴Vegetarisch gefüllte Zucchini
 ┊ ├─╴Vegetarisches Gericht 🧀
 ┊ ├╴Rucola-Kartoffelpüree
 ┊ ├╴Tomaten-Ratatouille-Soße
 ┊ ╰╴( 2.65€ )  2 11 12 19

 Leipzig, Mensa am Park

 ┊ ╭───╴Apfelrotkohl
 ┊ ├─╴Gemüsebeilage 🌱
 ┊ ╰╴( 0.55€ )  2
 ...
Count OpenMensa's canteens (Click me!)
$ mensa canteens --all --json | jq '.[].id' | wc -l
704

Configuration (Optional)

See config.toml for an example. Copy the file to:

  • $XDG_CONFIG_DIR/mensa/config.toml on Linux,
  • $HOME/Library/Application Support/mensa/config.toml on macOS,
  • {FOLDERID_RoamingAppData}\mensa\config.toml on Windows

License: MIT