53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
import copy
|
|
import json
|
|
import datetime
|
|
import httplib
|
|
import re
|
|
class FeiertageApi(object):
|
|
def __init__(self, jahr, nur_land):
|
|
self.base_url = 'feiertage-api.de'
|
|
self.jahr = jahr
|
|
self.nur_land = nur_land
|
|
self.nur_daten = None
|
|
pass
|
|
|
|
def get(self):
|
|
requestUrl = "/api/?jahr={}".format(self.jahr)
|
|
|
|
if self.nur_daten is not None:
|
|
requestUrl += "&nur_daten={}".format(self.nur_daten)
|
|
|
|
if self.nur_land is not None:
|
|
requestUrl += "&nur_land={}".format(self.nur_land)
|
|
|
|
conn = httplib.HTTPSConnection(self.base_url)
|
|
conn.request('GET',requestUrl)
|
|
response = conn.getresponse()
|
|
body = response.read()
|
|
conn.close()
|
|
return self.__format(json.loads(body))
|
|
|
|
def __convert_date(self, strDate):
|
|
|
|
m = re.match(r"^([0-9]+)-([0-9]+)-([0-9]+)$", strDate)
|
|
|
|
return "{}-{}".format(m.group(2), m.group(3))
|
|
|
|
def __format(self, data):
|
|
listFeiertage = list()
|
|
for k,v in data.items():
|
|
listFeiertage.append({
|
|
"name": k,
|
|
"from": self.__convert_date(v["datum"]),
|
|
"to": self.__convert_date(v["datum"]),
|
|
"hint": v["hinweis"]
|
|
})
|
|
|
|
return {
|
|
"bankHolidays": {
|
|
"name": "Feiertage ({})".format(self.nur_daten),
|
|
"dates": listFeiertage
|
|
}
|
|
}
|
|
|