aboutsummaryrefslogtreecommitdiff
path: root/mensa.py
diff options
context:
space:
mode:
Diffstat (limited to 'mensa.py')
-rw-r--r--mensa.py32
1 files changed, 19 insertions, 13 deletions
diff --git a/mensa.py b/mensa.py
index 1ecef11..b37c5cd 100644
--- a/mensa.py
+++ b/mensa.py
@@ -1,17 +1,23 @@
# Copyright (C) 2017 Gabriel Perez-Cerezo <gabriel@gpcf.eu>
+# -*- coding: utf-8 -*-
-import urllib2
+import urllib.request, urllib.error, urllib.parse
from lxml import etree
from lxml.cssselect import CSSSelector
import html5lib
from common import Food
+from common import formt
+import multiprocessing
+
+mensenliste = {"TU Hardenberg" : "mensa-tu-hardenbergstra%C3%9Fe", "TU Marchstraße": "cafeteria-tu-marchstra%C3%9Fe", "TU Skyline": "cafeteria-tu-skyline", "TU Architektur": "cafeteria-tu-architektur", "TU Ackerstraße": "cafeteria-tu-ackerstra%C3%9Fe"}
+
def get_food_items(mensa="mensa-tu-hardenbergstra%C3%9Fe", ignore_nudelauswahl=False) :
user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'
headers = {'User-Agent': user_agent}
- req = urllib2.Request('https://www.stw.berlin/mensen/mensa-tu-hardenbergstra%C3%9Fe.html', headers=headers)
- response = urllib2.urlopen(req)
+ req = urllib.request.Request('https://www.stw.berlin/mensen/%s.html' % mensa, headers=headers)
+ response = urllib.request.urlopen(req)
the_page = response.read()
document = html5lib.parse(the_page, treebuilder="lxml")
groupsel = CSSSelector('.splGroupWrapper')
@@ -37,16 +43,16 @@ def get_food_items(mensa="mensa-tu-hardenbergstra%C3%9Fe", ignore_nudelauswahl=F
fl.append(Food(nm, price, name, veg))
return fl
-
+def pr_f(j) :
+ i,k = j
+ food = get_food_items(k, ignore_nudelauswahl=True)
+ return (i,"*"*20+i+"*"*20+"\n"+formt(food))
+
# format:
if __name__ == "__main__":
- food = get_food_items("", ignore_nudelauswahl=True)
- 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]
+ pool = multiprocessing.Pool(4)
+ k = pool.map(pr_f, list(mensenliste.items()))
+ k.sort(key=lambda x: x[0])
+ for i in k :
+ print(i[1])