mirror of
https://github.com/sascha-hemi/hacs_waste_collection_schedule.git
synced 2026-03-21 07:06:16 +01:00
@@ -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
|
||||
|
||||
|
||||
@@ -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
23
doc/source/zva_wmk_de.md
Normal 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.
|
||||
1
info.md
1
info.md
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user