From b9b3cdba8f2728deaa30edbc255530ca9f989ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20P=C3=A9rez-Cerezo?= Date: Fri, 22 Sep 2017 18:44:34 +0200 Subject: Added backends for various indian places --- mathemensa.py | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) (limited to 'mathemensa.py') diff --git a/mathemensa.py b/mathemensa.py index b4f97af..9abfc75 100644 --- a/mathemensa.py +++ b/mathemensa.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -import urllib2 +import urllib.request, urllib.error, urllib.parse from lxml import etree from lxml.cssselect import CSSSelector @@ -8,17 +8,18 @@ import xml.sax.saxutils as saxutils import html5lib import datetime from common import Food +from common import formt def get_food_items() : weekday = datetime.datetime.today().weekday() if weekday > 4 : - print "Error: No food today" + print("Error: No food today") return "" user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)' headers = {'User-Agent': user_agent} - req = urllib2.Request('http://personalkantine.personalabteilung.tu-berlin.de/', headers=headers) - response = urllib2.urlopen(req) + req = urllib.request.Request('http://personalkantine.personalabteilung.tu-berlin.de/', headers=headers) + response = urllib.request.urlopen(req) the_page = response.read() document = html5lib.parse(the_page, treebuilder="lxml") sel = CSSSelector('.Menu__accordion') @@ -27,19 +28,14 @@ def get_food_items() : if k.tag.endswith("ul") : for j in k : price = j[1].text - name = j[0].text + etree.fromstring("

"+etree.tostring(j).split("\n")[2].split("<")[0]+"

").text.strip() # really extremely dirty hack + st = str(etree.tostring(j)).split("\\n")[2].split("<")[0] + name = j[0].text + ", " + etree.fromstring("

%s

"%st).text.strip() # really extremely dirty hack veg = 0 - if "(v)" in name or u"Gemüseplatte" in name : + if "(v)" in name or "Gemüseplatte" in name : veg = 1 - fl.append(Food(name, price, u"Menü", veg)) + fl.append(Food(name, price, "Menü", veg)) return fl + if __name__ == "__main__": food = get_food_items() - cat = [] - vegkeys = [ "", "Vegetarian", "Vegan" ] - for i in food: - if not i.category in cat : - cat.append(i.category) - if not i.category == None : - print i.category - print "\t" + i.name.ljust(80) + "\t"+ i.price.ljust(20) + vegkeys[i.veggie] + print(formt(food)) -- cgit v1.2.3