aboutsummaryrefslogtreecommitdiff
path: root/mensa/backends/singh.py
diff options
context:
space:
mode:
Diffstat (limited to 'mensa/backends/singh.py')
-rw-r--r--mensa/backends/singh.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/mensa/backends/singh.py b/mensa/backends/singh.py
new file mode 100644
index 0000000..844cc9c
--- /dev/null
+++ b/mensa/backends/singh.py
@@ -0,0 +1,56 @@
+import urllib.request, urllib.error, urllib.parse
+from lxml import etree
+from lxml.cssselect import CSSSelector
+import html5lib
+import re
+import sys
+import datetime
+from mensa.base import *
+from yapsy.IPlugin import IPlugin
+
+class Signh(IPlugin) :
+ def register_restaurants(self) :
+ r = Restaurant("Singh", "Mathe-Café", self, "dummy")
+ register_restaurant(r)
+ def get_food_items(self, **kwargs) :
+ s = sys.stderr
+ sys.stderr = open("/dev/null", "w")
+ weekday = datetime.datetime.today().weekday()
+ if weekday > 4 :
+ print("Error: No food today")
+ return ""
+ user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'
+ headers = {'User-Agent': user_agent}
+
+ req = urllib.request.Request('http://singh-catering.de/cafe/', headers=headers)
+ response = urllib.request.urlopen(req)
+ the_page = response.read()
+ document = html5lib.parse(the_page, treebuilder="lxml")
+ groupsel = CSSSelector('.menu-list__items')
+ myorder=[0,3,1,4,2]
+ mylist = [ groupsel(document)[i] for i in myorder]
+ i = mylist[weekday]
+ fl = []
+ nmsel = CSSSelector('.menu-list__item')
+ for k in nmsel(i):
+ veg = 0
+ titsel = CSSSelector('.item_title')
+ name = titsel(k)[0].text
+ dscsel = CSSSelector('.desc__content')
+ desc = dscsel(k)[0].text
+ prsel = CSSSelector('.menu-list__item-price')
+ price = prsel(k)[0].text
+ vegsel = CSSSelector('.menu-list__item-highlight-title')
+ if len(vegsel(k)) > 0 :
+ if "VEGETARISCH" in vegsel(k)[0].text :
+ veg = 1
+ elif "VEGAN" in vegsel(k)[0].text :
+ veg = 2
+ fl.append(Food(name, price, "Essen", veg, desc))
+ sys.stderr = s
+ return fl
+
+if __name__ == "__main__":
+ food = get_food_items()
+ print(formt(food))
+