aboutsummaryrefslogtreecommitdiff
path: root/backends/singh.py
blob: ae8b291a8613688e7e95724d5852a06730f62330 (plain)
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 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))