diff options
author | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2017-10-04 00:42:18 +0200 |
---|---|---|
committer | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2017-10-04 00:42:18 +0200 |
commit | 2195b639091842492ea11ab8b91a631c59a7d32f (patch) | |
tree | 89188abfb8f129056c3ec45e8e76a501df694e43 /backends/singh.py | |
parent | 588a1df9f0ae350c3593156ebb102835a4124115 (diff) | |
download | mensa-2195b639091842492ea11ab8b91a631c59a7d32f.tar.gz mensa-2195b639091842492ea11ab8b91a631c59a7d32f.tar.bz2 mensa-2195b639091842492ea11ab8b91a631c59a7d32f.zip |
Modularized program
Diffstat (limited to 'backends/singh.py')
-rw-r--r-- | backends/singh.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/backends/singh.py b/backends/singh.py new file mode 100644 index 0000000..a3b3119 --- /dev/null +++ b/backends/singh.py @@ -0,0 +1,54 @@ +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 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) : + 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)) + return fl + +if __name__ == "__main__": + food = get_food_items() + print(formt(food)) + |