scribus-calendar-plugin/ferien_api.py
2022-12-17 00:35:20 +01:00

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))