aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>2018-09-18 00:37:18 +0200
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>2018-09-18 00:37:18 +0200
commit971f633eaadec381bda398f024bab42fa1311bd0 (patch)
tree134c0665343ea52d123af247be2300972575fb77
parent3d4cb8555196a08347e373b6e542f80159155261 (diff)
downloadmensa-971f633eaadec381bda398f024bab42fa1311bd0.tar.gz
mensa-971f633eaadec381bda398f024bab42fa1311bd0.tar.bz2
mensa-971f633eaadec381bda398f024bab42fa1311bd0.zip
added templating, Version 0.4.1
You can now use templating by creating a file containing "$$TEXT$$" somewhere. $$TEXT$$ will be replaced with the menu.
-rwxr-xr-xbin/mensa9
-rw-r--r--mensa/frontends/html.py11
-rw-r--r--mensa/frontends/plain-text.py9
-rw-r--r--setup.py2
4 files changed, 26 insertions, 5 deletions
diff --git a/bin/mensa b/bin/mensa
index 3648607..a6537e7 100755
--- a/bin/mensa
+++ b/bin/mensa
@@ -3,6 +3,7 @@ import argparse
from mensa import logic
from mensa import base
+import os
parser = argparse.ArgumentParser(description='Fetch menus from various sources')
parser.add_argument('rest', nargs="*",
@@ -14,6 +15,7 @@ parser.add_argument('-f', '--formatter', dest='form', action='store', nargs=1, h
parser.add_argument('-p', '--pos', dest='pos', action='store', nargs=1, help="Your current position")
parser.add_argument('-d', '--dist', dest='dist', action='store_true', help="Show distances to restaurants")
parser.add_argument('-r', '--radius', dest='rad', action='store', nargs=1, help="Radius to find restaurants in")
+parser.add_argument('-t', '--template', dest='template', action='store', nargs=1, help="Template file to use")
parser.add_argument('-g', '--vegetarian', dest='vegetarian', action='store_true',
help='show only vegetarian meals')
parser.add_argument('-G', '--vegan', dest='vegan', action='store_true',
@@ -59,6 +61,11 @@ if args.vegetarian :
if args.vegan :
veggie = 2
+if args.template :
+ args.template = os.path.expanduser(args.template[0])
+ if not os.path.exists(args.template) :
+ print("File not found: " + os.path.expanduser(args.template))
+ exit(1)
if args.list :
@@ -70,4 +77,4 @@ if args.rest :
restlist = args.rest
foodl = logic.get_food(restlist, no_parallel=args.no_parallel, pos=args.pos, rad=args.rad, only_student_prices=args.student)
-logic.render(foodl, form, only_veggie=veggie, only_student_prices=args.student, pos=args.pos, dist=args.dist)
+logic.render(foodl, form, only_veggie=veggie, only_student_prices=args.student, pos=args.pos, dist=args.dist, template=args.template)
diff --git a/mensa/frontends/html.py b/mensa/frontends/html.py
index f3bf065..58f373c 100644
--- a/mensa/frontends/html.py
+++ b/mensa/frontends/html.py
@@ -29,8 +29,15 @@ class HTMLRenderer(IPlugin) :
self.options = options
r = "\n".join([self.format_restaurant(restaurant, food) for restaurant, food in foods ])
-
- print(r)
+ if options.get("template") :
+ f = open(options["template"], "r")
+ template = f.read()
+ f.close()
+ print(template.replace("$$TEXT$$", r))
+ else :
+ print(r)
+
+
def register_renderer(self) :
base.register_renderer(base.Renderer("html", "HTML Renderer", self))
diff --git a/mensa/frontends/plain-text.py b/mensa/frontends/plain-text.py
index 8f3f736..cbd71e7 100644
--- a/mensa/frontends/plain-text.py
+++ b/mensa/frontends/plain-text.py
@@ -24,7 +24,14 @@ class TextRenderer(IPlugin) :
r=r+"Distance: %.2f km\n" % base.dist(options["pos"], restaurant.pos)
r= r + "".join([category+"\n" + "".join([self.render_line(i) for i in items]) for category,items in food.items()])
- print(r)
+
+ if options.get("template") :
+ f = open(options["template"], "r")
+ template = f.read()
+ f.close()
+ print(template.replace("$$TEXT$$", r))
+ else :
+ print(r)
def register_renderer(self) :
base.register_renderer(base.Renderer("plain-text", "Plain Text Renderer", self))
diff --git a/setup.py b/setup.py
index b1c60c1..e337b60 100644
--- a/setup.py
+++ b/setup.py
@@ -10,7 +10,7 @@ def read(fname):
setup(
name = "mensa",
- version = "0.4",
+ version = "0.4.1",
author = "Gabriel Pérez-Cerezo",
author_email = "gabriel@gpcf.eu",
description = ("A program that fetches menus from various restaurants. Pre-installed by default are various cafeterias around TU Berlin."),