Merge pull request #507 from mampfes/staging

refactor zva_wmk_de
This commit is contained in:
Steffen Zimmermann
2022-12-23 11:15:35 +01:00
committed by GitHub
4 changed files with 79 additions and 0 deletions

View File

@@ -139,6 +139,7 @@ Currently the following service providers are supported:
- [Umweltbetrieb Stadt Bielefeld](./doc/source/bielefeld_de.md)
- [WAS Wolfsburg](./doc/source/was_wolfsburg_de.md)
- [Wermelskirchen](./doc/source/wermelskirchen_de.md)
- [Zweckverband Abfallwirtschaft Werra-Meißner-Kreis](./doc/source/zva_wmk_de.md)
### Lithuania

View File

@@ -0,0 +1,54 @@
import datetime
import requests
from waste_collection_schedule import Collection # type: ignore[attr-defined]
from waste_collection_schedule.service.ICS import ICS
TITLE = "Zweckverband Abfallwirtschaft Werra-Meißner-Kreis"
DESCRIPTION = "Source for Zweckverband Abfallwirtschaft Werra-Meißner-Kreis"
URL = "https://www.zva-wmk.de/"
TEST_CASES = {
"Frankenhain": {"city": "Berkatal - Frankenhain", "street": "Teichhof"},
"Hebenshausen": {"city": "Neu-Eichenberg - Hebenshausen", "street": "Bachstraße"},
"Vockerode": {"city": "Meißner - Vockerode", "street": "Feuerwehr"},
}
class Source:
def __init__(self, city, street):
city = city.replace("ß", "").upper().replace("", "ß")
city = city.replace(" - ", "_")
self._city = city
self._street = street
self._ics = ICS(split_at=" / ")
def fetch(self):
today = datetime.date.today()
entries = self._fetch_year(today.year)
if today.month == 12:
entries.extend(self._fetch_year(today.year + 1))
return entries
def _fetch_year(self, year):
if year == 2022:
yearstr = ""
street = self._street.upper()
else:
yearstr = f"-{year}"
street = self._street
params = {"city": self._city, "street": street, "type": "all", "link": "ical"}
r = requests.get(
f"https://www.zva-wmk.de/termine/schnellsuche{yearstr}", params=params
)
r.raise_for_status()
dates = self._ics.convert(r.text)
entries = []
for d in dates:
entries.append(Collection(d[0], d[1]))
return entries

23
doc/source/zva_wmk_de.md Normal file
View File

@@ -0,0 +1,23 @@
# Zweckverband Abfallwirtschaft Werra-Meißner-Kreis
Support für Werra-Meißner-Kreis located in Hesse, Germany
## Configuration via configuration.yaml
```yaml
waste_collection_schedule:
sources:
- name: zva_wmk_de
args:
city: CITY
street: STREET
```
### Configuration Variables
**city**<br>
*(string) (required)*
**street**<br>
### How to get the source arguments
Visit [zva-wmk.de](https://www.zva-wmk.de/termine/schnellsuche-2023) and search for your locality. Use the value from the "Ort" dropdown as `city` argument and the one from "Ortsteil/Straße" as `street` as shown.

View File

@@ -124,6 +124,7 @@ Currently the following service providers are supported:
- [Umweltbetrieb Stadt Bielefeld](https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/doc/source/bielefeld_de.md)
- [WAS Wolfsburg](https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/doc/source/was_wolfsburg_de.md)
- [Wermelskirchen](https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/doc/source/wermelskirchen_de.md)
- [Zweckverband Abfallwirtschaft Werra-Meißner-Kreis](https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/doc/source/zva_wmk_de.md)
### Lithuania