From 08f0660e7189e37040a04b207c65cf14946ded67 Mon Sep 17 00:00:00 2001 From: TMShader Date: Tue, 5 Sep 2023 17:35:25 +0200 Subject: [PATCH] =?UTF-8?q?New=20Source:=20FKF=20Buda=C3=B6rs,=20HU=20(#12?= =?UTF-8?q?24)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add source fkf_bo_hu and add hungary to list of countries * remove failing tests * fix source name in example config --- README.md | 6 ++ .../source/fkf_bo_hu.py | 85 +++++++++++++++++++ doc/source/fkf_bo_hu.md | 29 +++++++ info.md | 1 + update_docu_links.py | 4 + 5 files changed, 125 insertions(+) create mode 100644 custom_components/waste_collection_schedule/waste_collection_schedule/source/fkf_bo_hu.py create mode 100644 doc/source/fkf_bo_hu.md diff --git a/README.md b/README.md index 0c38f88c..335ac447 100644 --- a/README.md +++ b/README.md @@ -571,6 +571,12 @@ Waste collection schedules in the following formats and countries are supported. - [Zweckverband München-Südost](/doc/source/awido_de.md) / zvmso.de +
+Hungary + +- [FKF Budaörs](/doc/source/fkf_bo_hu.md) / fkf.hu +
+
Lithuania diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/source/fkf_bo_hu.py b/custom_components/waste_collection_schedule/waste_collection_schedule/source/fkf_bo_hu.py new file mode 100644 index 00000000..76335a60 --- /dev/null +++ b/custom_components/waste_collection_schedule/waste_collection_schedule/source/fkf_bo_hu.py @@ -0,0 +1,85 @@ +import json +import requests +import datetime + +from bs4 import BeautifulSoup +from waste_collection_schedule import Collection + +TITLE = "FKF Budaörs" +DESCRIPTION = "Source script for www.fkf.hu" +URL = "https://www.fkf.hu" +COUNTRY = "hu" +TEST_CASES = { + "Test_1": {"street": "Templom tér"}, + "Test_2": {"street": "Völgy utca"}, + "Test_3": {"street": "Zombori utca"} +} + +API_URL = "https://www.fkf.hu/hulladeknaptar-budaors" +ICON_MAP = { + "COMMUNAL": "mdi:trash-can", + "SELECTIVE": "mdi:recycle", + "GREEN": "mdi:leaf", +} + + +class Source: + def __init__(self, street): + self._street = street + + def fetch(self): + session = requests.Session() + + r = session.post( + API_URL, + data={ + "publicPlace": self._street + }, + headers={ + "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", + "X-October-Request-Handler": "onSearch", + "X-October-Request-Partials": "ajax/budaorsResults", + "X-Requested-With": "XMLHttpRequest", + } + ) + r.raise_for_status() + soup = BeautifulSoup(json.loads(r.text)["ajax/budaorsResults"], features="html.parser") + + if soup.find("div", attrs={"class":"alert"}) is not None: + raise Exception("Address not found") + + entries = [] + communal_divs = soup.find_all("div", attrs={"class":"communal"}) + + selective = soup.find_all("div", attrs={"class":"selective"}) + communal = [i for i in filter(lambda div:div.text=="Kommunális", communal_divs)] + green = [i for i in filter(lambda div:div.text=="Zöld", communal_divs)] + + for element in communal: + entries.append( + Collection( + date = datetime.datetime.strptime(element.parent.parent.findAll("td")[1].text, "%Y.%m.%d").date(), + t = "Communal", + icon = ICON_MAP.get("COMMUNAL"), + ) + ) + + for element in selective: + entries.append( + Collection( + date = datetime.datetime.strptime(element.parent.parent.findAll("td")[1].text, "%Y.%m.%d").date(), + t = "Selective", + icon = ICON_MAP.get("SELECTIVE"), + ) + ) + + for element in green: + entries.append( + Collection( + date = datetime.datetime.strptime(element.parent.parent.findAll("td")[1].text, "%Y.%m.%d").date(), + t = "Green", + icon = ICON_MAP.get("GREEN"), + ) + ) + + return entries diff --git a/doc/source/fkf_bo_hu.md b/doc/source/fkf_bo_hu.md new file mode 100644 index 00000000..d151b212 --- /dev/null +++ b/doc/source/fkf_bo_hu.md @@ -0,0 +1,29 @@ +# FKF Budaörs + +Support for schedules provided by [FKF Budaörs](https://www.fkf.hu/hulladeknaptar-budaors), serving Budaörs, HU. + +## Configuration via configuration.yaml + +```yaml +waste_collection_schedule: + sources: + - name: fkf_bo_hu + args: + street: FULL_STREET_NAME +``` + +### Configuration Variables + +**STREET** +*(string) (required)* + + +## Example + +```yaml +waste_collection_schedule: + sources: + - name: fkf_bo_hu + args: + street: "Templom tér" +``` \ No newline at end of file diff --git a/info.md b/info.md index 2a445364..d481891f 100644 --- a/info.md +++ b/info.md @@ -22,6 +22,7 @@ Waste collection schedules from service provider web sites are updated daily, de | Canada | Calgary (AB), Calgary, AB, City of Edmonton, AB, City of Greater Sudbury, ON, London (ON), Ottawa, Canada, Strathcona County, ON, Toronto (ON), Waste Wise APPS | | Denmark | Renosyd | | Germany | Abfall Stuttgart, Abfall-Wirtschafts-Verband Nordschwaben, Abfall.IO / AbfallPlus, Abfallbehandlungsgesellschaft Havelland mbH (abh), Abfallbewirtschaftung Ostalbkreis, Abfallentsorgung Kreis Kassel, Abfallkalender Offenbach am Main, Abfallkalender Würzburg, AbfallNavi (RegioIT.de), Abfalltermine Forchheim, Abfallwirtschaft Alb-Donau-Kreis, Abfallwirtschaft Freiburg, Abfallwirtschaft Germersheim, Abfallwirtschaft Isar-Inn, Abfallwirtschaft Lahn-Dill-Kreises, Abfallwirtschaft Landkreis Böblingen, Abfallwirtschaft Landkreis Freudenstadt, Abfallwirtschaft Landkreis Harburg, Abfallwirtschaft Landkreis Haßberg, Abfallwirtschaft Landkreis Kitzingen, Abfallwirtschaft Landkreis Landsberg am Lech, Abfallwirtschaft Landkreis Wolfenbüttel, Abfallwirtschaft Neckar-Odenwald-Kreis, Abfallwirtschaft Nürnberger Land, Abfallwirtschaft Ortenaukreis, Abfallwirtschaft Pforzheim, Abfallwirtschaft Potsdam-Mittelmark (APM), Abfallwirtschaft Rems-Murr, Abfallwirtschaft Rendsburg, Abfallwirtschaft Rheingau-Taunus-Kreis, Abfallwirtschaft Stadt Fürth, Abfallwirtschaft Stadt Nürnberg, Abfallwirtschaft Stadt Schweinfurt, Abfallwirtschaft Südholstein, Abfallwirtschaft Werra-Meißner-Kreis, Abfallwirtschaft Zollernalbkreis, Abfallwirtschafts-Zweckverband des Landkreises Hersfeld-Rotenburg, Abfallwirtschaftsbetrieb Bergisch Gladbach, Abfallwirtschaftsbetrieb Emsland, Abfallwirtschaftsbetrieb Esslingen, Abfallwirtschaftsbetrieb Ilm-Kreis, Abfallwirtschaftsbetrieb Kiel (ABK), Abfallwirtschaftsbetrieb Landkreis Ahrweiler, Abfallwirtschaftsbetrieb Landkreis Altenkirchen, Abfallwirtschaftsbetrieb Landkreis Augsburg, Abfallwirtschaftsbetrieb Landkreis Aurich, Abfallwirtschaftsbetrieb Landkreis Karlsruhe, Abfallwirtschaftsbetrieb LK Mainz-Bingen, Abfallwirtschaftsbetrieb München, Abfallwirtschaftsbetriebe Münster, Abfallwirtschaftsgesellschaft Landkreis Schaumburg, Abfallwirtschaftsverband Kreis Groß-Gerau, Abfallwirtschaftsverbandes Lippe, Abfallwirtschaftszweckverband Wartburgkreis (AZV), Abfallzweckverband Rhein-Mosel-Eifel (Landkreis Mayen-Koblenz), ALBA Berlin, Altötting (LK), ART Trier, Aschaffenburg (MyMuell App), ASG Wesel, ASO Abfall-Service Osterholz, ASR Stadt Chemnitz, Aurich (MKW), AVL - Abfallverwertungsgesellschaft des Landkreises Ludwigsburg mbH, AWA Entsorgungs GmbH, AWB Abfallwirtschaft Vechta, AWB Bad Kreuznach, AWB Köln, AWB Landkreis Bad Dürkheim, AWB Landkreis Fürstenfeldbruck, AWB Landkreis Göppingen, AWB Oldenburg, AWB Westerwaldkreis, AWG Kreis Warendorf, AWIDO Online, AWIGO Abfallwirtschaft Landkreis Osnabrück GmbH, AWISTA Düsseldorf, Awista Starnberg, Bad Arolsen (MyMuell App), Bad Homburg vdH, Barnim, Bau & Service Oberursel, Bergischer Abfallwirtschaftverbund, Berlin Recycling, Berliner Stadtreinigungsbetriebe, Beverungen (MyMuell App), Bielefeld, Blaue Tonne - Schlaue Tonne, Bogenschütz Entsorgung, Bremer Stadtreinigung, Bürgerportal, C-Trace, Cham Landkreis, Chemnitz (ASR), Chiemgau Recycling - Landkreis Rosenheim, City of Karlsruhe, CM City Media - Müllkalender, Darmstadt (MyMuell App), Darmstadt-Dieburg (ZAW), Dillingen Saar, Dinslaken, EAD Darmstadt, EDG Entsorgung Dortmund, EGN Abfallkalender, EGST Steinfurt, EGW Westmünsterland, Eichsfeldwerke GmbH, Eigenbetrieb Kommunalwirtschaftliche Dienstleistungen Suhl, Entsorgungs- und Wirtschaftsbetrieb Landau in der Pfalz, Entsorgungsbetrieb Märkisch-Oderland, Entsorgungsbetrieb Stadt Mainz, Entsorgungsbetriebe Essen, Entsorgungsgesellschaft Görlitz-Löbau-Zittau, Esens (MyMuell App), EVS Entsorgungsverband Saar, FES Frankfurter Entsorgungs- und Service GmbH, Flensburg (MyMuell App), Gelsendienste Gelsenkirchen, Gemeinde Aschheim, Gemeinde Blankenheim, Gemeinde Bühlerzell, Gemeinde Deggenhausertal, Gemeinde Kalletal, Gemeinde Kappelrodeck, Gemeinde Lindlar, Gemeinde Mittelbiberach, Gemeinde Oberstadion, Gemeinde Roetgen, Gemeinde Schutterwald, Gemeinde Senden (Westfalen), Gemeinde Unterhaching, Großkrotzenburg (MyMuell App), Göttinger Entsorgungsbetriebe, Gütersloh, Hainburg (MyMuell App), Hallesche Wasser und Stadtwirtschaft GmbH, Halver, Hattersheim am Main, hausmüll.info, Heilbronn Entsorgungsbetriebe, Hohenlohekreis, Holtgast (MyMuell App), Ingolstadt, Jumomind, KAEV Niederlausitz, Kamp-Lintfort (MyMuell App), Kirchdorf (MyMuell App), Kommunalservice Landkreis Börde AöR, Kreis Coesfeld, Kreis Heinsberg, Kreis Pinneberg, Kreis Viersen, Kreisstadt Dietzenbach, Kreisstadt Friedberg, Kreisstadt Groß-Gerau, Kreisstadt St. Wendel, Kreiswerke Schmalkalden-Meiningen GmbH, Kreiswirtschaftsbetriebe Goslar, Kronberg im Taunus, KV Cochem-Zell, KWU Entsorgung Landkreis Oder-Spree, Landkreis Ansbach, Landkreis Aschaffenburg, Landkreis Aschaffenburg (MyMuell App), Landkreis Bayreuth, Landkreis Berchtesgadener Land, Landkreis Biberach (MyMuell App), Landkreis Börde AöR (KsB), Landkreis Calw, Landkreis Coburg, Landkreis Eichstätt (MyMuell App), Landkreis Erding, Landkreis Erlangen-Höchstadt, Landkreis Friesland (MyMuell App), Landkreis Fulda, Landkreis Gießen, Landkreis Gotha, Landkreis Günzburg, Landkreis Hameln-Pyrmont, Landkreis Heilbronn, Landkreis Kelheim, Landkreis Kronach, Landkreis Kulmbach, Landkreis Kusel, Landkreis Leer (MyMuell App), Landkreis Limburg-Weilburg, Landkreis Mettmann (MyMuell App), Landkreis Mühldorf a. Inn, Landkreis Nordwestmecklenburg, Landkreis Northeim (unofficial), Landkreis Ostallgäu, Landkreis Paderborn (MyMuell App), Landkreis Rhön Grabfeld, Landkreis Rosenheim, Landkreis Rotenburg (Wümme), Landkreis Roth, Landkreis Schweinfurt, Landkreis Schwäbisch Hall, Landkreis Schwäbisch Hall, Landkreis Sigmaringen, Landkreis Stade, Landkreis Südliche Weinstraße, Landkreis Tirschenreuth, Landkreis Tübingen, Landkreis Weißenburg-Gunzenhausen, Landkreis Wittmund, Landkreis Wittmund (MyMuell App), Landkreis Wittmund (MyMuell App), Landkreisbetriebe Neuburg-Schrobenhausen, Landratsamt Aichach-Friedberg, Landratsamt Bodenseekreis, Landratsamt Dachau, Landratsamt Main-Tauber-Kreis, Landratsamt Traunstein, Landratsamt Unterallgäu, Lebacher Abfallzweckverband (LAZ), Ludwigshafen am Rhein, Lübbecke (Jumomind), Lübeck Entsorgungsbetriebe, mags Mönchengladbacher Abfall-, Grün- und Straßenbetriebe AöR, Main-Kinzig-Kreis (MyMuell App), Mein-Abfallkalender.de, Minden, MZV Biedenkopf, Mühlheim am Main (MyMuell App), Müllabfuhr Deutschland, MüllALARM / Schönmackers, Müllmax, Nenndorf (MyMuell App), Neumünster (MyMuell App), Neunkirchen Siegerland, Neustadt a.d. Waldnaab, Neustadt an der Weinstraße, Oberhavel AWU, Potsdam, Pullach im Isartal, Recklinghausen, RegioEntsorgung Städteregion Aachen, Rhein-Hunsrück (Jumomind), Rhein-Hunsrück Entsorgung (RHE), Rhein-Neckar-Kreis, RSAG Rhein-Sieg-Kreis, Salzgitter (MyMuell App), Schmitten im Taunus (MyMuell App), Schöneck (MyMuell App), Sector 27 - Datteln, Marl, Oer-Erkenschwick, Seligenstadt (MyMuell App), Stadt Aachen, Stadt Arnsberg, Stadt Bayreuth, Stadt Cottbus, Stadt Darmstadt, Stadt Detmold, Stadt Dorsten, Stadt Ehingen, Stadt Emden, Stadt Emmendingen, Stadt Fulda, Stadt Haltern am See, Stadt Hamm, Stadt Hanau, Stadt Kaufbeuren, Stadt Koblenz, Stadt Kraichtal, Stadt Landshut, Stadt Maintal, Stadt Memmingen, Stadt Messstetten, Stadt Norderstedt, Stadt Osnabrück, Stadt Overath, Stadt Regensburg, Stadt Solingen, Stadt Unterschleißheim, Stadtbildpflege Kaiserslautern, Stadtentsorgung Rostock, Stadtreinigung Dresden, Stadtreinigung Hamburg, Stadtreinigung Leipzig, Stadtreinigung Leipzig, StadtService Brühl, Stadtwerke Erfurt, SWE, STL Lüdenscheid, Städteservice Raunheim Rüsselsheim, Südbrandenburgischer Abfallzweckverband, TBR Remscheid, Technischer Betriebsdienst Reutlingen, Uckermark, Ulm (MyMuell App), USB Bochum, Usingen (MyMuell App), VIVO Landkreis Miesbach, Volkmarsen (MyMuell App), Vöhringen (MyMuell App), WBO Wirtschaftsbetriebe Oberhausen, Wegberg (MyMuell App), Wermelskirchen, Westerholt (MyMuell App), WGV Recycling GmbH, Wilhelmshaven (MyMuell App), Wolfsburger Abfallwirtschaft und Straßenreinigung, WZV Kreis Segeberg, ZAH Hildesheim, ZEW Zweckverband Entsorgungsregion West, ZfA Iserlohn, Zweckverband Abfallwirtschaft Kreis Bergstraße, Zweckverband Abfallwirtschaft Oberes Elbtal, Zweckverband Abfallwirtschaft Region Hannover, Zweckverband Abfallwirtschaft Region Trier (A.R.T.), Zweckverband Abfallwirtschaft Saale-Orla, Zweckverband Abfallwirtschaft Schwalm-Eder-Kreis, Zweckverband Abfallwirtschaft Südwestsachsen (ZAS), Zweckverband München-Südost | +| Hungary | FKF Budaörs | | Lithuania | Kauno švara | | Luxembourg | Esch-sur-Alzette | | Netherlands | ACV Group, Alpen an den Rijn, Area Afval, Avalex, Avri, Bar Afvalbeheer, Circulus, Cyclus NV, Dar, Den Haag, GAD, Gemeente Almere, Gemeente Berkelland, Gemeente Cranendonck, Gemeente Hellendoorn, Gemeente Lingewaard, Gemeente Meppel, Gemeente Middelburg + Vlissingen, Gemeente Peel en Maas, Gemeente Schouwen-Duiveland, Gemeente Sudwest-Fryslan, Gemeente Venray, Gemeente Voorschoten, Gemeente Waalre, Gemeente Westland, HVC Groep, Meerlanden, Mijn Blink, PreZero, Purmerend, RAD BV, Reinis, Spaarnelanden, Twente Milieu, Waardlanden, Ximmio, ZRD | diff --git a/update_docu_links.py b/update_docu_links.py index 1330ad6c..224a4c5e 100755 --- a/update_docu_links.py +++ b/update_docu_links.py @@ -396,6 +396,10 @@ COUNTRYCODES = [ "code": "hamburg", "name": "Germany", }, + { + "code": "hu", + "name": "Hungary", + }, { "code": "lt", "name": "Lithuania",