1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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", pos=(52.5133727,13.3240049))
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))
|