51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
import copy
|
|
import json
|
|
import datetime
|
|
import httplib
|
|
import re
|
|
|
|
class FerienApi(object):
|
|
def __init__(self, jahr, nur_land):
|
|
self.base_url = 'ferien-api.de'
|
|
self.jahr = jahr
|
|
self.nur_land = nur_land
|
|
self.nur_daten = None
|
|
pass
|
|
|
|
def get(self):
|
|
requestUrl = "/api/v1/holidays/{}".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]{4})-([0-9]{2})-([0-9]{2})T.+Z$', strDate)
|
|
return "{}-{}-{}".format(m.group(1), m.group(2), m.group(3))
|
|
|
|
def __format(self, data):
|
|
listFerien = list()
|
|
for d in data:
|
|
d["name"] = d["name"][0].upper() + d["name"][1:]
|
|
listFerien.append({
|
|
"name": d["name"],
|
|
"from": self.__convert_date(d["start"]),
|
|
"to": self.__convert_date(d["end"]),
|
|
"hinweis": ""
|
|
})
|
|
|
|
return {
|
|
"schoolHolidays": {
|
|
"name": "Schulferien ({})".format(self.nur_land),
|
|
"dates": listFerien
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
api = FerienApi(2021, "BY")
|
|
print(json.dumps(api.get(), indent=4)) |