mirror of
https://github.com/sascha-hemi/hacs_waste_collection_schedule.git
synced 2026-03-21 00:04:11 +01:00
add hull_gov_uk
This commit is contained in:
@@ -1299,6 +1299,7 @@ Waste collection schedules in the following formats and countries are supported.
|
||||
- [Herefordshire City Council](/doc/source/herefordshire_gov_uk.md) / herefordshire.gov.uk
|
||||
- [Highland](/doc/source/highland_gov_uk.md) / highland.gov.uk
|
||||
- [Horsham District Council](/doc/source/horsham_gov_uk.md) / horsham.gov.uk
|
||||
- [Hull City Council](/doc/source/hull_gov_uk.md) / hull.gov.uk
|
||||
- [Huntingdonshire District Council](/doc/source/huntingdonshire_gov_uk.md) / huntingdonshire.gov.uk
|
||||
- [iTouchVision](/doc/source/iweb_itouchvision_com.md) / iweb.itouchvision.com
|
||||
- [Joint Waste Solutions](/doc/source/jointwastesolutions_org.md) / jointwastesolutions.org
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
from datetime import datetime
|
||||
|
||||
import requests
|
||||
from waste_collection_schedule import Collection # type: ignore[attr-defined]
|
||||
|
||||
TITLE = "Hull City Council"
|
||||
DESCRIPTION = "Source for Hull City Council."
|
||||
URL = "https://hull.gov.uk/"
|
||||
TEST_CASES = {
|
||||
"21095794": {"uprn": 21095794},
|
||||
"21009164": {"uprn": "21009164"},
|
||||
}
|
||||
|
||||
|
||||
ICON_MAP = {
|
||||
"black": "mdi:trash-can",
|
||||
"blue": "mdi:package-variant",
|
||||
"brown": "mdi:food-apple",
|
||||
"bulky": "mdi:sofa",
|
||||
}
|
||||
|
||||
|
||||
API_URL = "https://www.hull.gov.uk/ajax/bin-collection"
|
||||
|
||||
|
||||
class Source:
|
||||
def __init__(self, uprn: str | int):
|
||||
self._uprn: str | int = uprn
|
||||
|
||||
def fetch(self):
|
||||
# get json
|
||||
r = requests.get(
|
||||
API_URL,
|
||||
params={"bindate": self._uprn},
|
||||
headers={"Referer": "https://www.hull.gov.uk/household-collections"},
|
||||
)
|
||||
r.raise_for_status()
|
||||
|
||||
data = r.json()
|
||||
data = data[0] if isinstance(data[0], list) else data
|
||||
|
||||
entries = []
|
||||
for entry in data:
|
||||
date = datetime.strptime(entry["next_collection_date"], "%Y-%m-%d").date()
|
||||
icon = ICON_MAP.get(
|
||||
entry["collection_type"].lower().replace("bin", "").strip()
|
||||
) # Collection icon
|
||||
type = entry["collection_type"]
|
||||
entries.append(Collection(date=date, t=type, icon=icon))
|
||||
|
||||
return entries
|
||||
34
doc/source/hull_gov_uk.md
Normal file
34
doc/source/hull_gov_uk.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Hull City Council
|
||||
|
||||
Support for schedules provided by [Hull City Council](https://hull.gov.uk/), serving Hull, UK.
|
||||
|
||||
## Configuration via configuration.yaml
|
||||
|
||||
```yaml
|
||||
waste_collection_schedule:
|
||||
sources:
|
||||
- name: hull_gov_uk
|
||||
args:
|
||||
uprn: "UPRN"
|
||||
|
||||
```
|
||||
|
||||
### Configuration Variables
|
||||
|
||||
**uprn**
|
||||
*(String | Integer) (required)*
|
||||
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
waste_collection_schedule:
|
||||
sources:
|
||||
- name: hull_gov_uk
|
||||
args:
|
||||
uprn: "21095794"
|
||||
|
||||
```
|
||||
|
||||
## How to get the source argument
|
||||
|
||||
An easy way to discover your Unique Property Reference Number (UPRN) is by going to <https://www.findmyaddress.co.uk/> and entering in your address details.
|
||||
Reference in New Issue
Block a user