aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>2017-10-10 11:45:50 +0200
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>2017-10-10 11:45:50 +0200
commitc9c7d389c45815e1b7abd7bea7dc5093a3630ea2 (patch)
tree1cfd621b5de112792aa2f13ea5c4997b33d0d03e /backends
parentaa70fb739bbcb4f7a5275fc6a8dac4b3b84579e6 (diff)
downloadmensa-c9c7d389c45815e1b7abd7bea7dc5093a3630ea2.tar.gz
mensa-c9c7d389c45815e1b7abd7bea7dc5093a3630ea2.tar.bz2
mensa-c9c7d389c45815e1b7abd7bea7dc5093a3630ea2.zip
Moved stuff to a module folder, preparing for setuptools
Diffstat (limited to 'backends')
-rw-r--r--backends/mathemensa.py49
-rw-r--r--backends/mathemensa.yapsy-plugin3
-rw-r--r--backends/satyam.py38
-rw-r--r--backends/satyam.yapsy-plugin3
-rw-r--r--backends/singh.py56
-rw-r--r--backends/singh.yapsy-plugin3
-rw-r--r--backends/studentenwerk.py72
-rw-r--r--backends/studentenwerk.yapsy-plugin3
8 files changed, 0 insertions, 227 deletions
diff --git a/backends/mathemensa.py b/backends/mathemensa.py
deleted file mode 100644
index ea0cf72..0000000
--- a/backends/mathemensa.py
+++ /dev/null
@@ -1,49 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import urllib.request, urllib.error, urllib.parse
-from lxml import etree
-from lxml.cssselect import CSSSelector
-import re
-
-import xml.sax.saxutils as saxutils
-import html5lib
-import datetime
-from base import *
-from yapsy.IPlugin import IPlugin
-
-class Mathemensa(IPlugin) :
- def register_restaurants(self) :
- r = Restaurant("Mathemensa", "Mathemensa", self, "dummy")
- register_restaurant(r)
-
- def get_food_items(self, **kwargs) :
- weekdays = ["MONTAG", "DIENSTAG", "MITTWOCH", "DONNERSTAG", "FREITAG"]
- 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://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')
- fl = []
- for i in sel(document)[0] :
- h2sel = CSSSelector('h2')
- if not weekdays[weekday] in i[0].text.upper() :
- continue
- for k in i :
- if k.tag.endswith("ul") :
- for j in k :
- price = j[1].text
- st = str(etree.tostring(j)).split("\\n")[2].split("<")[0]
- name = j[0].text + ", " + etree.fromstring("<p>%s</p>"%st).text.strip() # really extremely dirty hack
- veg = 0
-
- if "(v)" in name or "Gemüseplatte" in name :
- veg = 1
- fl.append(Food(name, price, "Menü", veg))
- return fl
diff --git a/backends/mathemensa.yapsy-plugin b/backends/mathemensa.yapsy-plugin
deleted file mode 100644
index d122795..0000000
--- a/backends/mathemensa.yapsy-plugin
+++ /dev/null
@@ -1,3 +0,0 @@
-[Core]
-Name = Mathemensa
-Module = mathemensa \ No newline at end of file
diff --git a/backends/satyam.py b/backends/satyam.py
deleted file mode 100644
index ec488f3..0000000
--- a/backends/satyam.py
+++ /dev/null
@@ -1,38 +0,0 @@
-import urllib.request, urllib.error, urllib.parse
-from lxml import etree
-from lxml.cssselect import CSSSelector
-import html5lib
-from base import *
-import re
-import sys
-from yapsy.IPlugin import IPlugin
-
-class Satyam(IPlugin):
- def register_restaurants(self) :
- r = Restaurant("Satyam", "Satyam", self, "dummy")
- register_restaurant(r)
- def get_food_items(self, **kwargs) :
- s = sys.stderr
- sys.stderr = open("/dev/null", "w")
- user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'
- headers = {'User-Agent': user_agent}
-
- req = urllib.request.Request('http://www.mysatyam.de/angebote/express-mittagstisch.html', headers=headers)
- response = urllib.request.urlopen(req)
- the_page = response.read()
- document = html5lib.parse(the_page, treebuilder="lxml")
- groupsel = CSSSelector('.news-latest-item-content')
- k = etree.tostring(groupsel(document)[0])
- name = re.sub(r'<.+?>', ' ', str(k))
- name = etree.fromstring("<p>%s</p>"%name).text.strip()
- name = name.replace("\\n", "")
- name = " ".join(name.split())
-
- name = name.replace("5,95 €", "")
- sys.stderr = s
- return [Food("Mittagstisch Express", "5,95 €", "Mittagstisch", 2, name[3:-1])]
-
-
-# if __name__ == "__main__":
-# food = get_food_items()
-# print(formt(food))
diff --git a/backends/satyam.yapsy-plugin b/backends/satyam.yapsy-plugin
deleted file mode 100644
index 59207ad..0000000
--- a/backends/satyam.yapsy-plugin
+++ /dev/null
@@ -1,3 +0,0 @@
-[Core]
-Name = Satyam
-Module = satyam \ No newline at end of file
diff --git a/backends/singh.py b/backends/singh.py
deleted file mode 100644
index ae8b291..0000000
--- a/backends/singh.py
+++ /dev/null
@@ -1,56 +0,0 @@
-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))
-
diff --git a/backends/singh.yapsy-plugin b/backends/singh.yapsy-plugin
deleted file mode 100644
index 7faf774..0000000
--- a/backends/singh.yapsy-plugin
+++ /dev/null
@@ -1,3 +0,0 @@
-[Core]
-Name = Mathe-Café
-Module = singh \ No newline at end of file
diff --git a/backends/studentenwerk.py b/backends/studentenwerk.py
deleted file mode 100644
index 48b15d3..0000000
--- a/backends/studentenwerk.py
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright (C) 2017 Gabriel Perez-Cerezo <gabriel@gpcf.eu>
-# -*- coding: utf-8 -*-
-
-import urllib.request, urllib.error, urllib.parse
-from lxml import etree
-from lxml.cssselect import CSSSelector
-import html5lib
-from base import *
-from yapsy.IPlugin import IPlugin
-import multiprocessing
-
-
-from yapsy import NormalizePluginNameForModuleName as normalize
-
-mensenliste = {"TU Hardenbergstraße" : "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 pr_f(j) :
- i,k = j
- food = get_food_items(k, ignore_nudelauswahl=True)
- return (i,"*"*20+i+"*"*20+"\n"+formt(food))
-
-class Studentenwerk(IPlugin) :
- def register_restaurants (self) :
- mensenliste = {"TU Hardenbergstraße" : "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"}
- for h,n in mensenliste.items() :
- r = Restaurant(normalize(h), h, self, "dummy", [n])
- register_restaurant(r)
- def get_food_items(self, 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 = 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')
- groups = [e for e in groupsel(document)]
- fl = []
- for i in groups :
- try:
- name = CSSSelector('.splGroup')(i)[0].text
- except:
- raise NoMenuError from None
- sel = CSSSelector('.splMeal')
- meals = [e for e in sel(i)]
- for m in meals :
- namesel = CSSSelector('.bold')
- nm = namesel(m)[0].text
- if ignore_nudelauswahl and "Nudelauswahl" in nm :
- continue
- pricesel = CSSSelector('.col-md-3')
- veg = 0
- if len(pricesel(m)[0]) >= 2 :
- if "15" in pricesel(m)[0][1].attrib["src"] :
- veg = 2
- elif "1.png" in pricesel(m)[0][1].attrib["src"] :
- veg = 1
- price = pricesel(m)[-1].text.strip()
- fl.append(Food(nm, price, name, veg))
- return fl
-
-
-
-# format:
-# if __name__ == "__main__":
-# 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])
diff --git a/backends/studentenwerk.yapsy-plugin b/backends/studentenwerk.yapsy-plugin
deleted file mode 100644
index ad2a994..0000000
--- a/backends/studentenwerk.yapsy-plugin
+++ /dev/null
@@ -1,3 +0,0 @@
-[Core]
-Name = Studentenwerk
-Module = studentenwerk \ No newline at end of file