mirror of
https://github.com/sascha-hemi/hacs_waste_collection_schedule.git
synced 2026-03-21 00:04:11 +01:00
refactor stavanger_no
This commit is contained in:
@@ -1,14 +1,20 @@
|
||||
from datetime import datetime
|
||||
from waste_collection_schedule import Collection # type: ignore[attr-defined]
|
||||
import json
|
||||
|
||||
import requests
|
||||
from bs4 import BeautifulSoup
|
||||
from waste_collection_schedule import Collection # type: ignore[attr-defined]
|
||||
|
||||
TITLE = "Stavanger"
|
||||
TITLE = "Stavanger Kommune"
|
||||
DESCRIPTION = "Source for Stavanger Kommune, Norway"
|
||||
URL = "https://www.stavanger.kommune.no/"
|
||||
TEST_CASES = {
|
||||
"TestcaseI": {"id": "57bf9d36-722e-400b-ae93-d80f8e354724", "municipality": "Stavanger", "gnumber": "57", "bnumber": "922", "snumber": "0"},
|
||||
"TestcaseI": {
|
||||
"id": "57bf9d36-722e-400b-ae93-d80f8e354724",
|
||||
"municipality": "Stavanger",
|
||||
"gnumber": "57",
|
||||
"bnumber": "922",
|
||||
"snumber": "0",
|
||||
},
|
||||
}
|
||||
|
||||
ICON_MAP = {
|
||||
@@ -18,6 +24,7 @@ ICON_MAP = {
|
||||
"Juletre": "mdi:pine-tree",
|
||||
}
|
||||
|
||||
|
||||
class Source:
|
||||
def __init__(self, id, municipality, gnumber, bnumber, snumber):
|
||||
self._id = id
|
||||
@@ -27,43 +34,38 @@ class Source:
|
||||
self._snumber = snumber
|
||||
|
||||
def fetch(self):
|
||||
url = 'https://www.stavanger.kommune.no/renovasjon-og-miljo/tommekalender/finn-kalender/show'
|
||||
headers = {
|
||||
'referer': 'https://www.stavanger.kommune.no'
|
||||
}
|
||||
url = "https://www.stavanger.kommune.no/renovasjon-og-miljo/tommekalender/finn-kalender/show"
|
||||
headers = {"referer": "https://www.stavanger.kommune.no"}
|
||||
|
||||
params = {
|
||||
'id' : self._id,
|
||||
'municipality' : self._municipality,
|
||||
'gnumber' : self._gnumber,
|
||||
'bnumber' : self._bnumber,
|
||||
'snumber' : self._snumber
|
||||
}
|
||||
params = {
|
||||
"id": self._id,
|
||||
"municipality": self._municipality,
|
||||
"gnumber": self._gnumber,
|
||||
"bnumber": self._bnumber,
|
||||
"snumber": self._snumber,
|
||||
}
|
||||
|
||||
r = requests.get(url, params=params, headers=headers)
|
||||
r = requests.get(url, params=params, headers=headers)
|
||||
r.raise_for_status()
|
||||
|
||||
print(r.text)
|
||||
soup = BeautifulSoup(r.text, "html.parser")
|
||||
|
||||
soup = BeautifulSoup(r.text, "html.parser")
|
||||
tag = soup.find_all("option")
|
||||
year = tag[0].get("value").split("-")
|
||||
year = year[1]
|
||||
|
||||
tag = soup.find_all("option")
|
||||
year = tag[0].get('value').split('-')
|
||||
year = year[1]
|
||||
entries = []
|
||||
for tag in soup.find_all("tr", {"class": "waste-calendar__item"}):
|
||||
if tag.text.strip() == "Dato og dag\nAvfallstype":
|
||||
continue
|
||||
|
||||
entries = []
|
||||
for tag in soup.find_all("tr", {"class":"waste-calendar__item"}):
|
||||
if tag.text.strip() == 'Dato og dag\nAvfallstype':
|
||||
continue
|
||||
date = tag.text.strip().split(" - ")
|
||||
date = datetime.strptime(date[0] + "." + year, "%d.%m.%Y").date()
|
||||
|
||||
date = tag.text.strip().split(' - ')
|
||||
date = datetime.strptime(date[0]+'.'+year, '%d.%m.%Y').date()
|
||||
#print (date)
|
||||
for img in tag.find_all("img"):
|
||||
waste_type = img.get("title")
|
||||
entries.append(
|
||||
Collection(date, waste_type, icon=ICON_MAP.get(waste_type))
|
||||
)
|
||||
|
||||
for img in tag.find_all("img"):
|
||||
print (date,img.get('title'))
|
||||
icon = ICON_MAP.get(img.get('title'))
|
||||
entries.append(
|
||||
Collection(date, img.get('title'), icon=icon)
|
||||
)
|
||||
|
||||
return entries
|
||||
return entries
|
||||
|
||||
@@ -20,14 +20,19 @@ waste_collection_schedule:
|
||||
|
||||
**id**
|
||||
*(string) (required)*
|
||||
|
||||
**municipality**
|
||||
*(string) (required)*
|
||||
|
||||
**gnumber**
|
||||
*(string) (required)*
|
||||
|
||||
**bnumber**
|
||||
*(string) (required)*
|
||||
|
||||
**snumber**
|
||||
*(string) (required)*
|
||||
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
@@ -47,7 +52,7 @@ waste_collection_schedule:
|
||||
Visit the [Stavanger Kommune, Norway](https://www.stavanger.kommune.no/renovasjon-og-miljo/tommekalender/finn-kalender/) page and search for your address.
|
||||
use the parameters for url
|
||||
|
||||
##Example URL
|
||||
## Example URL
|
||||
|
||||
https://www.stavanger.kommune.no/renovasjon-og-miljo/tommekalender/finn-kalender/show?id=afe76cc0-19a9-4345-99bc-920bd16ab7cc&municipality=Stavanger&gnumber=58&bnumber=968&snumber=0
|
||||
|
||||
@@ -58,4 +63,3 @@ extract the arguments from this url you get. in this example
|
||||
**gnumber**=58
|
||||
**bnumber**=968
|
||||
**snumber**=0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user