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

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