From c9c7d389c45815e1b7abd7bea7dc5093a3630ea2 Mon Sep 17 00:00:00 2001 From: Gabriel Pérez-Cerezo Date: Tue, 10 Oct 2017 11:45:50 +0200 Subject: Moved stuff to a module folder, preparing for setuptools --- backends/mathemensa.py | 49 ------------------------- backends/mathemensa.yapsy-plugin | 3 -- backends/satyam.py | 38 -------------------- backends/satyam.yapsy-plugin | 3 -- backends/singh.py | 56 ----------------------------- backends/singh.yapsy-plugin | 3 -- backends/studentenwerk.py | 72 ------------------------------------- backends/studentenwerk.yapsy-plugin | 3 -- 8 files changed, 227 deletions(-) delete mode 100644 backends/mathemensa.py delete mode 100644 backends/mathemensa.yapsy-plugin delete mode 100644 backends/satyam.py delete mode 100644 backends/satyam.yapsy-plugin delete mode 100644 backends/singh.py delete mode 100644 backends/singh.yapsy-plugin delete mode 100644 backends/studentenwerk.py delete mode 100644 backends/studentenwerk.yapsy-plugin (limited to 'backends') 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("

%s

"%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("

%s

"%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 -# -*- 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 -- cgit v1.2.3