refactor stavanger_no

This commit is contained in:
mampfes
2023-02-07 07:49:13 +01:00
parent 294a2b87f8
commit 989d7bdc6b
2 changed files with 44 additions and 38 deletions

View File

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

View File

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