diff --git a/CHANGELOG.md b/CHANGELOG.md index f0f4395560..44f30f99a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,56 @@ ======= +## 0.151.0 (2025-04-27) + +### Feat + +- version bump + +### Fix + +- more robust brent date handling +- input.json requires web_driver +- Rugby fix +- simplified blackburn + +## 0.150.0 (2025-04-27) + +### Feat + +- added melton + +### Fix + +- added melton +- processed all bins for Moray + +## 0.149.0 (2025-04-27) + +### Feat + +- added pembrokeshire + +## 0.148.6 (2025-04-27) + +### Fix + +- updated input.json +- cloudflare fix - switch to selenium method + +## 0.148.5 (2025-04-27) + +### Fix + +- output check +- parsed bin info +- selenium navigation +- input.json changes + +## 0.148.4 (2025-04-27) + +### Fix + +- used canonical 'nice name' + ## 0.148.3 (2025-04-25) ### Fix diff --git a/custom_components/uk_bin_collection/config_flow.py b/custom_components/uk_bin_collection/config_flow.py index faf8b064d5..16ad3ba442 100644 --- a/custom_components/uk_bin_collection/config_flow.py +++ b/custom_components/uk_bin_collection/config_flow.py @@ -253,7 +253,7 @@ async def async_step_reconfigure_confirm( async def get_councils_json(self) -> Dict[str, Any]: """Fetch and return the supported councils data, including aliases and sorted alphabetically.""" - url = "https://raw.githubusercontent.com/robbrad/UKBinCollectionData/0.148.3/uk_bin_collection/tests/input.json" + url = "https://raw.githubusercontent.com/robbrad/UKBinCollectionData/0.151.0/uk_bin_collection/tests/input.json" try: async with aiohttp.ClientSession() as session: async with session.get(url) as response: diff --git a/custom_components/uk_bin_collection/manifest.json b/custom_components/uk_bin_collection/manifest.json index 442eaaff55..827f33c168 100644 --- a/custom_components/uk_bin_collection/manifest.json +++ b/custom_components/uk_bin_collection/manifest.json @@ -9,7 +9,7 @@ "integration_type": "service", "iot_class": "cloud_polling", "issue_tracker": "https://github.com/robbrad/UKBinCollectionData/issues", - "requirements": ["uk-bin-collection>=0.148.3"], - "version": "0.148.3", + "requirements": ["uk-bin-collection>=0.151.0"], + "version": "0.151.0", "zeroconf": [] } diff --git a/pyproject.toml b/pyproject.toml index 2bbc4b8e3e..5ac89ea49e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "uk_bin_collection" -version = "0.148.3" +version = "0.151.0" description = "Python Lib to collect UK Bin Data" readme = "README.md" authors = ["Robert Bradley "] diff --git a/uk_bin_collection/tests/input.json b/uk_bin_collection/tests/input.json index 88d32f344a..877238b9d7 100755 --- a/uk_bin_collection/tests/input.json +++ b/uk_bin_collection/tests/input.json @@ -3,7 +3,7 @@ "LAD24CD": "S12000033", "uprn": "9051156186", "url": "https://www.aberdeencity.gov.uk", - "wiki_name": "Aberdeen City Council", + "wiki_name": "Aberdeen City", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN." }, "AberdeenshireCouncil": { @@ -11,20 +11,20 @@ "uprn": "151176430", "url": "https://online.aberdeenshire.gov.uk", "wiki_command_url_override": "https://online.aberdeenshire.gov.uk", - "wiki_name": "Aberdeenshire Council", + "wiki_name": "Aberdeenshire", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN." }, "AdurAndWorthingCouncils": { "url": "https://www.adur-worthing.gov.uk/bin-day/?brlu-selected-address=100061878829", "wiki_command_url_override": "https://www.adur-worthing.gov.uk/bin-day/?brlu-selected-address=XXXXXXXX", - "wiki_name": "Adur and Worthing Councils", + "wiki_name": "Adur", "wiki_note": "Replace XXXXXXXX with your UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find it.", "LAD24CD": "E07000223" }, "AmberValleyBoroughCouncil": { "uprn": "100030026621", "url": "https://ambervalley.gov.uk", - "wiki_name": "Amber Valley Borough Council", + "wiki_name": "Amber Valley", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000032" }, @@ -32,14 +32,14 @@ "LAD24CD": "N09000001", "url": "https://antrimandnewtownabbey.gov.uk/residents/bins-recycling/bins-schedule/?Id=643", "wiki_command_url_override": "https://antrimandnewtownabbey.gov.uk/residents/bins-recycling/bins-schedule/?Id=XXXX", - "wiki_name": "Antrim & Newtonabbey Council", + "wiki_name": "Antrim and Newtownabbey", "wiki_note": "Navigate to [https://antrimandnewtownabbey.gov.uk/residents/bins-recycling/bins-schedule] and search for your street name. Use the URL with the ID to replace XXXXXXXX with your specific ID." }, "ArdsAndNorthDownCouncil": { "uprn": "187136177", "url": "https://www.ardsandnorthdown.gov.uk", "wiki_command_url_override": "https://www.ardsandnorthdown.gov.uk", - "wiki_name": "Ards and North Down Council", + "wiki_name": "Ards and North Down", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "N09000011" }, @@ -49,7 +49,7 @@ "uprn": "000125011723", "url": "https://www.argyll-bute.gov.uk/rubbish-and-recycling/household-waste/bin-collection", "web_driver": "http://selenium:4444", - "wiki_name": "Argyll and Bute Council", + "wiki_name": "Argyll and Bute", "wiki_note": "Pass the UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "S12000035" }, @@ -58,7 +58,7 @@ "uprn": "185625284", "url": "https://www.armaghbanbridgecraigavon.gov.uk/", "wiki_command_url_override": "https://www.armaghbanbridgecraigavon.gov.uk/", - "wiki_name": "Armagh Banbridge Craigavon Council", + "wiki_name": "Armagh City, Banbridge and Craigavon", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN." }, "ArunCouncil": { @@ -67,7 +67,7 @@ "skip_get_url": true, "url": "https://www1.arun.gov.uk/when-are-my-bins-collected", "web_driver": "http://selenium:4444", - "wiki_name": "Arun Council", + "wiki_name": "Arun", "wiki_note": "Pass the house name/number and postcode in their respective parameters, both wrapped in double quotes. This parser requires a Selenium webdriver.", "LAD24CD": "E07000224" }, @@ -76,7 +76,7 @@ "postcode": "NG16 6RH", "url": "https://www.ashfield.gov.uk", "web_driver": "http://selenium:4444", - "wiki_name": "Ashfield District Council", + "wiki_name": "Ashfield", "wiki_note": "Pass the house name/number and postcode in their respective parameters, both wrapped in double quotes. This parser requires a Selenium webdriver", "LAD24CD": "E07000170" }, @@ -86,7 +86,7 @@ "url": "https://ashford.gov.uk", "web_driver": "http://selenium:4444", "wiki_command_url_override": "https://ashford.gov.uk", - "wiki_name": "Ashford Borough Council", + "wiki_name": "Ashford", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000105" }, @@ -94,7 +94,7 @@ "skip_get_url": true, "uprn": "766252532", "url": "http://avdcbins.web-labs.co.uk/RefuseApi.asmx", - "wiki_name": "Aylesbury Vale Council (Buckinghamshire)", + "wiki_name": "Buckinghamshire", "wiki_note": "To get the UPRN, please use [FindMyAddress](https://www.findmyaddress.co.uk/search). Returns all published collections in the past, present, future.", "LAD24CD": "E06000060" }, @@ -103,7 +103,7 @@ "skip_get_url": true, "uprn": "100040810214", "url": "https://online.bcpcouncil.gov.uk/bindaylookup/", - "wiki_name": "BCP Council", + "wiki_name": "Bournemouth, Christchurch and Poole", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN." }, "BaberghDistrictCouncil": { @@ -112,7 +112,7 @@ "skip_get_url": true, "uprn": "Tuesday", "url": "https://www.babergh.gov.uk", - "wiki_name": "Babergh District Council", + "wiki_name": "Babergh", "wiki_note": "Use the House Number field to pass the DAY of the week for your NORMAL collections. [Monday/Tuesday/Wednesday/Thursday/Friday]. [OPTIONAL] Use the 'postcode' field to pass the WEEK for your garden collection. [Week 1/Week 2]. [OPTIONAL] Use the 'uprn' field to pass the DAY for your garden collection. [Monday/Tuesday/Wednesday/Thursday/Friday]", "LAD24CD": "E07000200" }, @@ -122,7 +122,7 @@ "skip_get_url": true, "web_driver": "http://selenium:4444", "url": "https://www.lbbd.gov.uk/rubbish-recycling/household-bin-collection/check-your-bin-collection-days", - "wiki_name": "BarkingDagenham", + "wiki_name": "Barking and Dagenham", "wiki_note": "Use the full address as it appears on the drop-down on the site when you search by postcode.", "LAD24CD": "E09000002" }, @@ -132,7 +132,7 @@ "skip_get_url": true, "url": "https://www.barnet.gov.uk/recycling-and-waste/bin-collections/find-your-bin-collection-day", "web_driver": "http://selenium:4444", - "wiki_name": "Barnet Council", + "wiki_name": "Barnet", "wiki_note": "Follow the instructions [here](https://www.barnet.gov.uk/recycling-and-waste/bin-collections/find-your-bin-collection-day) until you get the page listing your address, then copy the entire address text and use that in the house number field. This parser requires a Selenium webdriver.", "LAD24CD": "E09000003" }, @@ -141,7 +141,7 @@ "skip_get_url": true, "uprn": "2007004502", "url": "https://waste.barnsley.gov.uk/ViewCollection/Collections", - "wiki_name": "Barnsley Metropolitan Borough Council", + "wiki_name": "Barnsley", "wiki_note": "To get the UPRN, you will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E08000016" }, @@ -149,7 +149,7 @@ "skip_get_url": true, "uprn": "10013350430", "url": "https://basildonportal.azurewebsites.net/api/getPropertyRefuseInformation", - "wiki_name": "Basildon Council", + "wiki_name": "Basildon", "wiki_note": "To get the UPRN, you will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000066" }, @@ -158,14 +158,14 @@ "skip_get_url": true, "uprn": "100060220926", "url": "https://www.basingstoke.gov.uk/bincollection", - "wiki_name": "Basingstoke Council", + "wiki_name": "Basingstoke and Deane", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN." }, "BathAndNorthEastSomersetCouncil": { "skip_get_url": true, "uprn": "100120000855", "url": "https://www.bathnes.gov.uk/webforms/waste/collectionday/", - "wiki_name": "Bath and North East Somerset Council", + "wiki_name": "Bath and North East Somerset", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E06000022" }, @@ -173,7 +173,7 @@ "skip_get_url": true, "uprn": "10024232065", "url": "https://www.bedford.gov.uk/bins-and-recycling/household-bins-and-recycling/check-your-bin-day", - "wiki_name": "Bedford Borough Council", + "wiki_name": "Bedford", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E06000055" }, @@ -182,7 +182,7 @@ "skip_get_url": true, "uprn": "10000802040", "url": "https://www.centralbedfordshire.gov.uk/info/163/bins_and_waste_collections_-_check_bin_collection_day", - "wiki_name": "Bedfordshire Council", + "wiki_name": "Central Bedfordshire", "wiki_note": "In order to use this parser, you must provide a valid postcode and a UPRN retrieved from the council's website for your specific address.", "LAD24CD": "E06000056" }, @@ -191,7 +191,7 @@ "skip_get_url": true, "uprn": "185086469", "url": "https://online.belfastcity.gov.uk/find-bin-collection-day/Default.aspx", - "wiki_name": "Belfast City Council", + "wiki_name": "Belfast", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "N09000003" }, @@ -201,7 +201,7 @@ "skip_get_url": true, "url": "https://waste.bexley.gov.uk/waste", "web_driver": "http://selenium:4444", - "wiki_name": "Bexley Council", + "wiki_name": "Bexley", "wiki_note": "In order to use this parser, you will need to sign up to [Bexley's @Home app](https://www.bexley.gov.uk/services/rubbish-and-recycling/bexley-home-recycling-app/about-app). Complete the setup by entering your email and setting your address with postcode and address line. Once you can see the calendar, you should be good to run the parser. Just pass the email you used in quotes in the UPRN parameter.", "LAD24CD": "E09000004" }, @@ -209,7 +209,7 @@ "postcode": "B5 7XE", "uprn": "100070445256", "url": "https://www.birmingham.gov.uk/xfp/form/619", - "wiki_name": "Birmingham City Council", + "wiki_name": "Birmingham", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E08000025" }, @@ -217,18 +217,16 @@ "uprn": "100030401782", "url": "https://www.blaby.gov.uk", "wiki_command_url_override": "https://www.blaby.gov.uk", - "wiki_name": "Blaby District Council", + "wiki_name": "Blaby", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000129" }, "BlackburnCouncil": { + "url": "https://www.blaby.gov.uk", "LAD24CD": "E06000008", "skip_get_url": true, "uprn": "100010733027", - "url": "https://mybins.blackburn.gov.uk/api/mybins/getbincollectiondays?uprn=100010733027&month=8&year=2022", - "web_driver": "http://selenium:4444", - "wiki_command_url_override": "https://www.blackburn.gov.uk", - "wiki_name": "Blackburn Council", + "wiki_name": "Blackburn with Darwen", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN." }, "BlaenauGwentCountyBoroughCouncil": { @@ -237,14 +235,14 @@ "uprn": "100100471367", "url": "https://www.blaenau-gwent.gov.uk", "web_driver": "http://selenium:4444", - "wiki_name": "Blaenau Gwent County Borough Council", + "wiki_name": "Blaenau Gwent", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "W06000019" }, "BolsoverCouncil": { "uprn": "100030066827", "url": "https://bolsover.gov.uk", - "wiki_name": "Bolsover Council", + "wiki_name": "Bolsover", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000033" }, @@ -254,7 +252,7 @@ "uprn": "100010886936", "url": "https://carehomes.bolton.gov.uk/bins.aspx", "web_driver": "http://selenium:4444", - "wiki_name": "Bolton Council", + "wiki_name": "Bolton", "wiki_note": "To get the UPRN, you will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search). Previously required a single field that was UPRN and full address; now requires UPRN and postcode as separate fields.", "LAD24CD": "E08000001" }, @@ -264,7 +262,7 @@ "skip_get_url": true, "url": "https://www.boston.gov.uk/findwastecollections", "web_driver": "http://selenium:4444", - "wiki_name": "Boston Borough Council", + "wiki_name": "Boston", "wiki_note": "Provide your house number in the `house_number` parameter and postcode in the `postcode` parameter.", "LAD24CD": "E07000136" }, @@ -274,7 +272,7 @@ "postcode": "GU47 9BS", "skip_get_url": true, "url": "https://selfservice.mybfc.bracknell-forest.gov.uk/w/webpage/waste-collection-days", - "wiki_name": "Bracknell Forest Council", + "wiki_name": "Bracknell Forest", "wiki_note": "Pass the house number and postcode in their respective parameters.", "LAD24CD": "E06000036" }, @@ -283,7 +281,7 @@ "skip_get_url": true, "uprn": "100051146921", "url": "https://onlineforms.bradford.gov.uk/ufs/collectiondates.eb", - "wiki_name": "Bradford MDC", + "wiki_name": "Bradford", "wiki_note": "To get the UPRN, you will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search). Postcode isn't parsed by this script, but you can pass it in double quotes.", "LAD24CD": "E08000032" }, @@ -292,7 +290,7 @@ "skip_get_url": true, "uprn": "10006930172", "url": "https://www.braintree.gov.uk/", - "wiki_name": "Braintree District Council", + "wiki_name": "Braintree", "wiki_note": "Provide your UPRN and postcode. Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000067" }, @@ -300,7 +298,7 @@ "uprn": "100091495479", "url": "https://www.breckland.gov.uk", "wiki_command_url_override": "https://www.breckland.gov.uk", - "wiki_name": "Breckland Council", + "wiki_name": "Breckland", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000143" }, @@ -308,7 +306,7 @@ "house_number": "25", "postcode": "HA3 0QU", "url": "https://recyclingservices.brent.gov.uk/waste", - "wiki_name": "Brent Council", + "wiki_name": "Brent", "wiki_note": "Pass the house number and postcode in their respective parameters.", "LAD24CD": "E09000005" }, @@ -316,10 +314,9 @@ "house_number": "44 Carden Avenue, Brighton, BN1 8NE", "postcode": "BN1 8NE", "skip_get_url": true, - "uprn": "22060199", "url": "https://cityclean.brighton-hove.gov.uk/link/collections", "web_driver": "http://selenium:4444", - "wiki_name": "Brighton and Hove City Council", + "wiki_name": "Brighton and Hove", "wiki_note": "Use the full address as it appears on the drop-down on the site when you search by postcode.", "LAD24CD": "E06000043" }, @@ -328,7 +325,7 @@ "skip_get_url": true, "uprn": "116638", "url": "https://bristolcouncil.powerappsportals.com/completedynamicformunauth/?servicetypeid=7dce896c-b3ba-ea11-a812-000d3a7f1cdc", - "wiki_name": "Bristol City Council", + "wiki_name": "City of Bristol", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN." }, "BroadlandDistrictCouncil": { @@ -337,7 +334,7 @@ "postcode": "NR10 3FD", "url": "https://area.southnorfolkandbroadland.gov.uk/FindAddress", "web_driver": "http://selenium:4444", - "wiki_name": "Broadland District Council", + "wiki_name": "Broadland", "wiki_note": "Use the full address as it appears on the drop-down on the site when you search by postcode.", "LAD24CD": "E07000144" }, @@ -345,7 +342,7 @@ "url": "https://recyclingservices.bromley.gov.uk/waste/6087017", "web_driver": "http://selenium:4444", "wiki_command_url_override": "https://recyclingservices.bromley.gov.uk/waste/XXXXXXX", - "wiki_name": "Bromley Borough Council", + "wiki_name": "Bromley", "wiki_note": "Follow the instructions [here](https://recyclingservices.bromley.gov.uk/waste) until the \"Your bin days\" page then copy the URL and replace the URL in the command.", "LAD24CD": "E09000006" }, @@ -353,7 +350,7 @@ "uprn": "100120584652", "url": "https://www.bromsgrove.gov.uk", "wiki_command_url_override": "https://www.bromsgrove.gov.uk", - "wiki_name": "Bromsgrove District Council", + "wiki_name": "Bromsgrove", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000234" }, @@ -361,7 +358,7 @@ "postcode": "EN8 7FL", "uprn": "148048608", "url": "https://www.broxbourne.gov.uk", - "wiki_name": "Broxbourne Council", + "wiki_name": "Broxbourne", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000095" }, @@ -371,7 +368,7 @@ "uprn": "100031325997", "url": "https://www.broxtowe.gov.uk/", "web_driver": "http://selenium:4444", - "wiki_name": "Broxtowe Borough Council", + "wiki_name": "Broxtowe", "wiki_note": "Pass the UPRN and postcode. To get the UPRN, you can use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000172" }, @@ -381,14 +378,14 @@ "skip_get_url": true, "url": "https://iapp.itouchvision.com/iappcollectionday/collection-day/?uuid=FA353FC74600CBE61BE409534D00A8EC09BDA3AC&lang=en", "web_driver": "http://selenium:4444", - "wiki_name": "Buckinghamshire Council (Chiltern, South Bucks, Wycombe)", + "wiki_name": "Buckinghamshire", "wiki_note": "Pass the house name/number and postcode in their respective arguments, both wrapped in quotes.", "LAD24CD": "E06000060" }, "BurnleyBoroughCouncil": { "uprn": "100010347165", "url": "https://www.burnley.gov.uk", - "wiki_name": "Burnley Borough Council", + "wiki_name": "Burnley", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000117" }, @@ -397,7 +394,7 @@ "postcode": "M26 3XY", "skip_get_url": true, "url": "https://www.bury.gov.uk/waste-and-recycling/bin-collection-days-and-alerts", - "wiki_name": "Bury Council", + "wiki_name": "Bury", "wiki_note": "Pass the postcode and house number in their respective arguments, both wrapped in quotes.", "LAD24CD": "E08000002" }, @@ -407,14 +404,14 @@ "uprn": "010035034598", "url": "https://www.calderdale.gov.uk/environment/waste/household-collections/collectiondayfinder.jsp", "web_driver": "http://selenium:4444", - "wiki_name": "Calderdale Council", + "wiki_name": "Calderdale", "wiki_note": "Pass the UPRN and postcode. To get the UPRN, you can use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E08000033" }, "CambridgeCityCouncil": { "uprn": "200004159750", "url": "https://www.cambridge.gov.uk/", - "wiki_name": "Cambridge City Council", + "wiki_name": "Cambridge", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000008" }, @@ -423,7 +420,7 @@ "skip_get_url": true, "uprn": "200003095389", "url": "https://www.cannockchasedc.gov.uk/", - "wiki_name": "Cannock Chase District Council", + "wiki_name": "Cannock Chase", "wiki_note": "To get the UPRN, you can use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000192" }, @@ -431,7 +428,7 @@ "uprn": "10094583181", "url": "https://www.canterbury.gov.uk", "wiki_command_url_override": "https://www.canterbury.gov.uk", - "wiki_name": "Canterbury City Council", + "wiki_name": "Canterbury", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000106" }, @@ -439,7 +436,7 @@ "skip_get_url": true, "uprn": "100100112419", "url": "https://www.gov.uk", - "wiki_name": "Cardiff Council", + "wiki_name": "Cardiff", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "W06000015" }, @@ -447,7 +444,7 @@ "uprn": "10004859302", "url": "https://www.carmarthenshire.gov.wales", "wiki_command_url_override": "https://www.carmarthenshire.gov.wales", - "wiki_name": "Carmarthenshire County Council", + "wiki_name": "Carmarthenshire", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "W06000010" }, @@ -455,7 +452,7 @@ "skip_get_url": true, "uprn": "4525", "url": "https://apps.castlepoint.gov.uk/cpapps/index.cfm?fa=wastecalendar", - "wiki_name": "Castlepoint District Council", + "wiki_name": "Castle Point", "wiki_note": "For this council, 'uprn' is actually a 4-digit code for your street. Go [here](https://apps.castlepoint.gov.uk/cpapps/index.cfm?fa=wastecalendar) and inspect the source of the dropdown box to find the 4-digit number for your street.", "LAD24CD": "E07000069" }, @@ -464,14 +461,14 @@ "postcode": "SY23 4RQ", "url": "https://www.ceredigion.gov.uk/resident/bins-recycling/", "web_driver": "http://selenium:4444", - "wiki_name": "Ceredigion County Council", + "wiki_name": "Ceredigion", "wiki_note": "House Number is the full address as it appears on the drop-down on the site when you search by postcode. This parser requires a Selenium webdriver.", "LAD24CD": "W06000008" }, "CharnwoodBoroughCouncil": { "url": "https://my.charnwood.gov.uk/location?put=cbc10070067259&rememberme=0&redirect=%2F", "wiki_command_url_override": "https://my.charnwood.gov.uk/location?put=cbcXXXXXXXX&rememberme=0&redirect=%2F", - "wiki_name": "Charnwood Borough Council", + "wiki_name": "Charnwood", "wiki_note": "Replace XXXXXXXX with your UPRN, keeping \"cbc\" before it.", "LAD24CD": "E07000130" }, @@ -480,7 +477,7 @@ "postcode": "CM3 7AE", "url": "https://www.chelmsford.gov.uk/myhome/", "web_driver": "http://selenium:4444", - "wiki_name": "Chelmsford City Council", + "wiki_name": "Chelmsford", "wiki_note": "Follow the instructions [here](https://www.chelmsford.gov.uk/myhome/) until you get the page listing your address, then copy the entire address text and use that in the house number field.", "LAD24CD": "E07000070" }, @@ -489,21 +486,21 @@ "skip_get_url": true, "uprn": "100120372027", "url": "https://www.cheltenham.gov.uk", - "wiki_name": "Cheltenham Borough Council", + "wiki_name": "Cheltenham", "wiki_note": "Pass the UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000078" }, "CherwellDistrictCouncil": { "uprn": "100121292407", "url": "https://www.cherwell.gov.uk", - "wiki_name": "Cherwell District Council", + "wiki_name": "Cherwell", "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000177" }, "CheshireEastCouncil": { "url": "https://online.cheshireeast.gov.uk/MyCollectionDay/SearchByAjax/GetBartecJobList?uprn=100012791226&onelineaddress=3%20COBBLERS%20YARD,%20SK9%207DZ&_=1689413260149", "wiki_command_url_override": "https://online.cheshireeast.gov.uk/MyCollectionDay/SearchByAjax/GetBartecJobList?uprn=XXXXXXXX&onelineaddress=XXXXXXXX&_=1689413260149", - "wiki_name": "Cheshire East Council", + "wiki_name": "Cheshire East", "wiki_note": "Both the UPRN and a one-line address are passed in the URL, which needs to be wrapped in double quotes. The one-line address is made up of the house number, street name, and postcode. Use the form [here](https://online.cheshireeast.gov.uk/mycollectionday/) to find them, then take the first line and postcode and replace all spaces with `%20`.", "LAD24CD": "E06000049" }, @@ -511,7 +508,7 @@ "skip_get_url": true, "uprn": "100012346655", "url": "https://my.cheshirewestandchester.gov.uk", - "wiki_name": "Cheshire West and Chester Council", + "wiki_name": "Cheshire West and Chester", "wiki_note": "Pass the UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000050" }, @@ -519,7 +516,7 @@ "skip_get_url": true, "uprn": "74008234", "url": "https://www.chesterfield.gov.uk", - "wiki_name": "Chesterfield Borough Council", + "wiki_name": "Chesterfield", "wiki_note": "Pass the UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000034" }, @@ -529,7 +526,7 @@ "skip_get_url": true, "url": "https://www.chichester.gov.uk/checkyourbinday", "web_driver": "http://selenium:4444", - "wiki_name": "Chichester District Council", + "wiki_name": "Chichester", "wiki_note": "Needs the full address and postcode as it appears on [this page](https://www.chichester.gov.uk/checkyourbinday).", "LAD24CD": "E07000225" }, @@ -539,7 +536,7 @@ "uprn": "UPRN100010382247", "url": "https://myaccount.chorley.gov.uk/wastecollections.aspx", "web_driver": "http://selenium:4444", - "wiki_name": "Chorley Council", + "wiki_name": "Chorley", "wiki_note": "Chorley needs to be passed both a Postcode & UPRN in the format of UPRNXXXXXX to work. Find this on [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000118" }, @@ -550,14 +547,14 @@ "skip_get_url": false, "url": "https://www.colchester.gov.uk/your-recycling-calendar", "web_driver": "http://selenium:4444", - "wiki_name": "Colchester City Council", + "wiki_name": "Colchester", "wiki_note": "Pass the house name/number in the house number parameter, wrapped in double quotes.", "LAD24CD": "E07000071" }, "ConwyCountyBorough": { "uprn": "100100429249", "url": "https://www.conwy.gov.uk", - "wiki_name": "Conwy County Borough Council", + "wiki_name": "Conwy", "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "W06000003" }, @@ -565,14 +562,14 @@ "LAD24CD": "E07000028", "uprn": "100110734613", "url": "https://www.copeland.gov.uk", - "wiki_name": "Copeland Borough Council", + "wiki_name": "Copeland", "wiki_note": "*****This has now been replaced by Cumberland Council****" }, "CornwallCouncil": { "skip_get_url": true, "uprn": "100040128734", "url": "https://www.cornwall.gov.uk/my-area/", - "wiki_name": "Cornwall Council", + "wiki_name": "Cornwall", "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E06000052" }, @@ -582,14 +579,14 @@ "skip_get_url": true, "url": "https://community.cotswold.gov.uk/s/waste-collection-enquiry", "web_driver": "http://selenium:4444", - "wiki_name": "Cotswold District Council", + "wiki_name": "Cotswold", "wiki_note": "Pass the full address in the house number and postcode in", "LAD24CD": "E07000079" }, "CoventryCityCouncil": { "url": "https://www.coventry.gov.uk/directory-record/62310/abberton-way-", "wiki_command_url_override": "https://www.coventry.gov.uk/directory_record/XXXXXX/XXXXXX", - "wiki_name": "Coventry City Council", + "wiki_name": "Coventry", "wiki_note": "Follow the instructions [here](https://www.coventry.gov.uk/bin-collection-calendar) until you get the page that shows the weekly collections for your address then copy the URL and replace the URL in the command.", "LAD24CD": "E08000026" }, @@ -598,7 +595,7 @@ "skip_get_url": true, "uprn": "100061785321", "url": "https://my.crawley.gov.uk/", - "wiki_name": "Crawley Borough Council", + "wiki_name": "Crawley", "wiki_note": "Crawley needs to be passed both a UPRN and a USRN to work. Find these on [FindMyAddress](https://www.findmyaddress.co.uk/search) or [FindMyStreet](https://www.findmystreet.co.uk/map).", "LAD24CD": "E07000226" }, @@ -607,7 +604,7 @@ "postcode": "SE25 5DW", "skip_get_url": true, "url": "https://service.croydon.gov.uk/wasteservices/w/webpage/bin-day-enter-address", - "wiki_name": "Croydon Council", + "wiki_name": "Croydon", "wiki_note": "Pass the house number and postcode in their respective parameters.", "LAD24CD": "E09000008" }, @@ -615,14 +612,14 @@ "house_number": "2", "postcode": "CA13 0DE", "url": "https://www.allerdale.gov.uk", - "wiki_name": "Cumberland Council - Allerdale District", + "wiki_name": "Cumberland", "wiki_note": "Pass the house number and postcode in their respective parameters.", "LAD24CD": "E06000063" }, "CumberlandCouncil": { "uprn": "100110734613", "url": "https://waste.cumberland.gov.uk", - "wiki_name": "Cumberland Borough Council", + "wiki_name": "Cumberland", "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E06000063" }, @@ -632,28 +629,28 @@ "skip_get_url": true, "url": "https://webapps.dacorum.gov.uk/bincollections/", "web_driver": "http://selenium:4444", - "wiki_name": "Dacorum Borough Council", + "wiki_name": "Dacorum", "wiki_note": "Pass the house number and postcode in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "E07000096" }, "DartfordBoroughCouncil": { "uprn": "010094157511", "url": "https://windmz.dartford.gov.uk/ufs/WS_CHECK_COLLECTIONS.eb?UPRN=010094157511", - "wiki_name": "Dartford Borough Council", + "wiki_name": "Dartford", "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000107" }, "DenbighshireCouncil": { "uprn": "200004299351", "url": "https://www.denbighshire.gov.uk/", - "wiki_name": "Denbighshire Council", + "wiki_name": "Denbighshire", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "W06000004" }, "DerbyCityCouncil": { "uprn": "10010684240", "url": "https://www.derby.gov.uk", - "wiki_name": "Derby City Council", + "wiki_name": "Derby", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E06000015" }, @@ -662,7 +659,7 @@ "skip_get_url": true, "uprn": "10070102161", "url": "https://www.derbyshiredales.gov.uk/", - "wiki_name": "Derbyshire Dales District Council", + "wiki_name": "Derbyshire Dales", "wiki_note": "Pass the UPRN and postcode. To get the UPRN, you can use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000035" }, @@ -670,7 +667,7 @@ "skip_get_url": true, "uprn": "100050768956", "url": "https://www.doncaster.gov.uk/Compass/Entity/Launch/D3/", - "wiki_name": "Doncaster Council", + "wiki_name": "Doncaster", "wiki_note": "Pass the UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E08000017" }, @@ -685,7 +682,7 @@ "DoverDistrictCouncil": { "url": "https://collections.dover.gov.uk/property/100060908340", "wiki_command_url_override": "https://collections.dover.gov.uk/property/XXXXXXXXXXX", - "wiki_name": "Dover District Council", + "wiki_name": "Dover", "wiki_note": "Replace XXXXXXXXXXX with your UPRN. To get the UPRN, you can use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000108" }, @@ -693,14 +690,14 @@ "uprn": "90014244", "url": "https://my.dudley.gov.uk", "wiki_command_url_override": "https://my.dudley.gov.uk", - "wiki_name": "Dudley Council", + "wiki_name": "Dudley", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E08000027" }, "DundeeCityCouncil": { "uprn": "9059043390", "url": "https://www.dundeecity.gov.uk/", - "wiki_name": "Dundee City Council", + "wiki_name": "Dundee City", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "S12000042" }, @@ -709,14 +706,14 @@ "skip_get_url": true, "uprn": "200003218818", "url": "https://www.durham.gov.uk/bincollections?uprn=", - "wiki_name": "Durham Council", + "wiki_name": "County Durham", "wiki_note": "Pass the UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search)." }, "EalingCouncil": { "skip_get_url": true, "uprn": "12073883", "url": "https://www.ealing.gov.uk/site/custom_scripts/WasteCollectionWS/home/FindCollection", - "wiki_name": "Ealing Council", + "wiki_name": "Ealing", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E09000009" }, @@ -724,7 +721,7 @@ "uprn": "127074727", "url": "https://www.east-ayrshire.gov.uk", "wiki_command_url_override": "https://www.east-ayrshire.gov.uk", - "wiki_name": "East Ayrshire Council", + "wiki_name": "East Ayrshire", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "S12000008" }, @@ -732,14 +729,14 @@ "skip_get_url": true, "uprn": "10002597178", "url": "https://www.eastcambs.gov.uk/", - "wiki_name": "East Cambridgeshire Council", + "wiki_name": "East Cambridgeshire", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000009" }, "EastDevonDC": { "url": "https://eastdevon.gov.uk/recycling-and-waste/recycling-waste-information/when-is-my-bin-collected/future-collections-calendar/?UPRN=010090909915", "wiki_command_url_override": "https://eastdevon.gov.uk/recycling-and-waste/recycling-waste-information/when-is-my-bin-collected/future-collections-calendar/?UPRN=XXXXXXXX", - "wiki_name": "East Devon District Council", + "wiki_name": "East Devon", "wiki_note": "Replace XXXXXXXX with your UPRN.", "LAD24CD": "E07000040" }, @@ -759,7 +756,7 @@ "skip_get_url": true, "url": "https://www.e-lindsey.gov.uk/", "web_driver": "http://selenium:4444", - "wiki_name": "East Lindsey District Council", + "wiki_name": "East Lindsey", "wiki_note": "Pass the house name/number and postcode in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "E07000137" }, @@ -768,7 +765,7 @@ "postcode": "EH21 6QA", "skip_get_url": true, "url": "https://eastlothian.gov.uk", - "wiki_name": "East Lothian Council", + "wiki_name": "East Lothian", "wiki_note": "Pass the house number and postcode in their respective parameters", "LAD24CD": "S12000010" }, @@ -778,7 +775,7 @@ "skip_get_url": true, "url": "https://eastrenfrewshire.gov.uk/", "web_driver": "http://selenium:4444", - "wiki_name": "East Renfrewshire Council", + "wiki_name": "East Renfrewshire", "wiki_note": "Pass the house name/number and postcode in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "S12000011" }, @@ -789,13 +786,13 @@ "skip_get_url": true, "url": "https://wasterecyclingapi.eastriding.gov.uk", "web_driver": "http://selenium:4444", - "wiki_name": "East Riding Council", + "wiki_name": "East Riding of Yorkshire", "wiki_note": "Put the full address as it displays on the council website dropdown when you do the check manually." }, "EastStaffordshireBoroughCouncil": { "url": "https://www.eaststaffsbc.gov.uk/bins-rubbish-recycling/collection-dates/68382", "wiki_command_url_override": "https://www.eaststaffsbc.gov.uk/bins-rubbish-recycling/collection-dates/XXXXX", - "wiki_name": "East Staffordshire Borough Council", + "wiki_name": "East Staffordshire", "wiki_note": "Replace `XXXXX` with your property's ID when selecting from https://www.eaststaffsbc.gov.uk/bins-rubbish-recycling/collection-dates.", "LAD24CD": "E07000193" }, @@ -805,7 +802,7 @@ "uprn": "10093544720", "url": "https://my.eastsuffolk.gov.uk/service/Bin_collection_dates_finder", "web_driver": "http://selenium:4444", - "wiki_name": "East Suffolk Council", + "wiki_name": "East Suffolk", "wiki_note": "To get the UPRN, you can use [FindMyAddress](https://www.findmyaddress.co.uk/search). This parser requires a Selenium webdriver.", "LAD24CD": "E07000244" }, @@ -813,7 +810,7 @@ "skip_get_url": true, "uprn": "100060303535", "url": "https://www.eastleigh.gov.uk/waste-bins-and-recycling/collection-dates/your-waste-bin-and-recycling-collections?uprn=", - "wiki_name": "Eastleigh Borough Council", + "wiki_name": "Eastleigh", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000086" }, @@ -823,14 +820,14 @@ "postcode": "Week 1", "skip_get_url": true, "url": "https://www.edinburgh.gov.uk", - "wiki_name": "Edinburgh City Council", + "wiki_name": "City of Edinburgh", "wiki_note": "Use the House Number field to pass the DAY of the week for your collections. Monday/Tuesday/Wednesday/Thursday/Friday. Use the 'postcode' field to pass the WEEK for your collection. [Week 1/Week 2]" }, "ElmbridgeBoroughCouncil": { "uprn": "10013119164", "url": "https://www.elmbridge.gov.uk", "wiki_command_url_override": "https://www.elmbridge.gov.uk", - "wiki_name": "Elmbridge Borough Council", + "wiki_name": "Elmbridge", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000207" }, @@ -840,7 +837,7 @@ "skip_get_url": true, "url": "https://www.enfield.gov.uk/services/rubbish-and-recycling/find-my-collection-day", "web_driver": "http://selenium:4444", - "wiki_name": "Enfield Council", + "wiki_name": "Enfield", "wiki_note": "Pass the house number and postcode in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "E09000010" }, @@ -854,14 +851,14 @@ "postcode": "IG9 6EP", "url": "https://eppingforestdc.maps.arcgis.com/apps/instant/lookup/index.html?appid=bfca32b46e2a47cd9c0a84f2d8cdde17&find=IG9%206EP", "web_driver": "http://selenium:4444", - "wiki_name": "Epping Forest District Council", + "wiki_name": "Epping Forest", "wiki_note": "Replace the postcode in the URL with your own.", "LAD24CD": "E07000072" }, "EpsomandEwellBoroughCouncil": { "uprn": "100061349083", "url": "https://www.epsom-ewell.gov.uk", - "wiki_name": "Epsom and Ewell Borough Council", + "wiki_name": "Epsom and Ewell", "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000208" }, @@ -869,14 +866,14 @@ "skip_get_url": true, "uprn": "10003582028", "url": "https://map.erewash.gov.uk/isharelive.web/myerewash.aspx", - "wiki_name": "Erewash Borough Council", + "wiki_name": "Erewash", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000036" }, "ExeterCityCouncil": { "uprn": "100040212270", "url": "https://www.exeter.gov.uk", - "wiki_name": "Exeter City Council", + "wiki_name": "Exeter", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000041" }, @@ -884,7 +881,7 @@ "uprn": "136065818", "url": "https://www.falkirk.gov.uk", "wiki_command_url_override": "https://www.falkirk.gov.uk", - "wiki_name": "Falkirk Council", + "wiki_name": "Falkirk", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "S12000014" }, @@ -892,7 +889,7 @@ "postcode": "PO14 4NR", "skip_get_url": true, "url": "https://www.fareham.gov.uk/internetlookups/search_data.aspx?type=JSON&list=DomesticBinCollections&Road=&Postcode=PO14%204NR", - "wiki_name": "Fareham Borough Council", + "wiki_name": "Fareham", "wiki_note": "Pass the postcode in the postcode parameter, wrapped in double quotes.", "LAD24CD": "E07000087" }, @@ -900,7 +897,7 @@ "skip_get_url": true, "uprn": "200002981143", "url": "https://www.fenland.gov.uk/article/13114/", - "wiki_name": "Fenland District Council", + "wiki_name": "Fenland", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000010" }, @@ -908,7 +905,7 @@ "uprn": "320203521", "url": "https://www.fife.gov.uk", "wiki_command_url_override": "https://www.fife.gov.uk", - "wiki_name": "Fife Council", + "wiki_name": "Fife", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "S12000047" }, @@ -916,7 +913,7 @@ "uprn": "100100213710", "url": "https://digital.flintshire.gov.uk", "wiki_command_url_override": "https://digital.flintshire.gov.uk", - "wiki_name": "Flintshire County Council", + "wiki_name": "Flintshire", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "W06000005" }, @@ -925,7 +922,7 @@ "skip_get_url": true, "uprn": "50032097", "url": "https://www.folkestone-hythe.gov.uk", - "wiki_name": "Folkstone and Hythe District Council", + "wiki_name": "Folkestone and Hythe", "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN." }, "ForestOfDeanDistrictCouncil": { @@ -934,7 +931,7 @@ "skip_get_url": true, "url": "https://community.fdean.gov.uk/s/waste-collection-enquiry", "web_driver": "http://selenium:4444", - "wiki_name": "Forest of Dean District Council", + "wiki_name": "Forest of Dean", "wiki_note": "Pass the full address in the house number and postcode parameters. This parser requires a Selenium webdriver.", "LAD24CD": "E07000080" }, @@ -942,7 +939,7 @@ "uprn": "100010402452", "url": "https://www.fylde.gov.uk", "wiki_command_url_override": "https://www.fylde.gov.uk", - "wiki_name": "Fylde Council", + "wiki_name": "Fylde", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000119" }, @@ -952,7 +949,7 @@ "skip_get_url": true, "url": "https://www.gateshead.gov.uk/", "web_driver": "http://selenium:4444", - "wiki_name": "Gateshead Council", + "wiki_name": "Gateshead", "wiki_note": "Pass the house name/number and postcode in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "E08000037" }, @@ -960,14 +957,14 @@ "house_number": "Friday G4, Friday J", "skip_get_url": true, "url": "https://www.gedling.gov.uk/", - "wiki_name": "Gedling Borough Council", + "wiki_name": "Gedling", "wiki_note": "Use [this site](https://www.gbcbincalendars.co.uk/) to find the collections for your address. Use the `-n` parameter to add them in a comma-separated list inside quotes, such as: 'Friday G4, Friday J'.", "LAD24CD": "E07000173" }, "GlasgowCityCouncil": { "url": "https://onlineservices.glasgow.gov.uk/forms/RefuseAndRecyclingWebApplication/CollectionsCalendar.aspx?UPRN=906700034497", "wiki_command_url_override": "https://onlineservices.glasgow.gov.uk/forms/RefuseAndRecyclingWebApplication/CollectionsCalendar.aspx?UPRN=XXXXXXXX", - "wiki_name": "Glasgow City Council", + "wiki_name": "Glasgow City", "wiki_note": "Replace XXXXXXXX with your UPRN.", "LAD24CD": "S12000049" }, @@ -978,7 +975,7 @@ "uprn": "100120479507", "url": "https://gloucester-self.achieveservice.com/service/Bins___Check_your_bin_day", "web_driver": "http://selenium:4444", - "wiki_name": "Gloucester City Council", + "wiki_name": "Gloucester", "wiki_note": "Pass the house number, postcode, and UPRN in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "E07000081" }, @@ -1023,7 +1020,7 @@ "skip_get_url": true, "uprn": "100060927046", "url": "https://www.gravesham.gov.uk", - "wiki_name": "Gravesham Borough Council", + "wiki_name": "Gravesham", "wiki_note": "Pass the UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000109" }, @@ -1033,7 +1030,7 @@ "uprn": "100090834792", "url": "https://myaccount.great-yarmouth.gov.uk/article/6456/Find-my-waste-collection-days", "web_driver": "http://selenium:4444", - "wiki_name": "Great Yarmouth Borough Council", + "wiki_name": "Great Yarmouth", "wiki_note": "Pass the postcode, and UPRN in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "E07000145" }, @@ -1044,14 +1041,14 @@ "uprn": "100061372691", "url": "https://my.guildford.gov.uk/customers/s/view-bin-collections", "web_driver": "http://selenium:4444", - "wiki_name": "Guildford Council", + "wiki_name": "Guildford", "wiki_note": "If the bin day is 'today' then the collectionDate will only show today's date if before 7 AM; else the date will be in 'previousCollectionDate'. To get the UPRN, you will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000209" }, "GwyneddCouncil": { "uprn": "10070350463", "url": "https://diogel.gwynedd.llyw.cymru", - "wiki_name": "Gwynedd Council", + "wiki_name": "Gwynedd", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "W06000002" }, @@ -1059,7 +1056,7 @@ "house_number": "101", "postcode": "N16 9AS", "url": "https://www.hackney.gov.uk", - "wiki_name": "Hackney Council", + "wiki_name": "Hackney", "wiki_note": "Pass the postcode and house number in their respective arguments, both wrapped in quotes.", "LAD24CD": "E09000012" }, @@ -1069,7 +1066,7 @@ "skip_get_url": true, "url": "https://webapp.halton.gov.uk/PublicWebForms/WasteServiceSearchv1.aspx#collections", "web_driver": "http://selenium:4444", - "wiki_name": "Halton Borough Council", + "wiki_name": "Halton", "wiki_note": "Pass the house number and postcode. This parser requires a Selenium webdriver.", "LAD24CD": "E06000006" }, @@ -1077,7 +1074,7 @@ "uprn": "100030489072", "url": "https://www.harborough.gov.uk", "wiki_command_url_override": "https://www.harborough.gov.uk", - "wiki_name": "Harborough District Council", + "wiki_name": "Harborough", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000131" }, @@ -1085,7 +1082,7 @@ "skip_get_url": true, "uprn": "100021203052", "url": "https://wastecollections.haringey.gov.uk/property", - "wiki_name": "Haringey Council", + "wiki_name": "Haringey", "wiki_note": "Pass the UPRN, which can be found at `https://wastecollections.haringey.gov.uk/property/{uprn}`.", "LAD24CD": "E09000014" }, @@ -1094,21 +1091,21 @@ "skip_get_url": true, "uprn": "100050414307", "url": "https://secure.harrogate.gov.uk/inmyarea", - "wiki_name": "Harrogate Borough Council", + "wiki_name": "Harrogate", "wiki_note": "Pass the UPRN, which can be found at [this site](https://secure.harrogate.gov.uk/inmyarea). URL doesn't need to be passed." }, "HartDistrictCouncil": { "skip_get_url": true, "uprn": "100062349291", "url": "https://www.hart.gov.uk/", - "wiki_name": "Hart District Council", + "wiki_name": "Hart", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000089" }, "HartlepoolBoroughCouncil": { "uprn": "100110019551", "url": "https://www.hartlepool.gov.uk", - "wiki_name": "Hartlepool Borough Council", + "wiki_name": "Hartlepool", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E06000001" }, @@ -1116,14 +1113,14 @@ "uprn": "100060038877", "url": "https://www.hastings.gov.uk", "wiki_command_url_override": "https://www.hastings.gov.uk", - "wiki_name": "Hastings Borough Council", + "wiki_name": "Hastings", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000062" }, "HerefordshireCouncil": { "url": "https://www.herefordshire.gov.uk/rubbish-recycling/check-bin-collection-day?blpu_uprn=10096232662", "wiki_command_url_override": "https://www.herefordshire.gov.uk/rubbish-recycling/check-bin-collection-day?blpu_uprn=XXXXXXXXXXXX", - "wiki_name": "Herefordshire Council", + "wiki_name": "Herefordshire", "wiki_note": "Replace 'XXXXXXXXXX' with your property's UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000019" }, @@ -1133,7 +1130,7 @@ "skip_get_url": true, "url": "https://www.hertsmere.gov.uk", "web_driver": "http://selenium:4444", - "wiki_name": "Hertsmere Borough Council", + "wiki_name": "Hertsmere", "wiki_note": "Provide your house number in the `house_number` parameter and postcode in the `postcode` parameter.", "LAD24CD": "E07000098" }, @@ -1143,7 +1140,7 @@ "skip_get_url": true, "url": "https://www.highpeak.gov.uk/findyourbinday", "web_driver": "http://selenium:4444", - "wiki_name": "High Peak Council", + "wiki_name": "High Peak", "wiki_note": "Pass the name of the street with the house number parameter, wrapped in double quotes. This parser requires a Selenium webdriver.", "LAD24CD": "E07000037" }, @@ -1151,7 +1148,7 @@ "uprn": "130072429", "url": "https://www.highland.gov.uk", "wiki_command_url_override": "https://www.highland.gov.uk", - "wiki_name": "Highland Council", + "wiki_name": "Highland", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "S12000017" }, @@ -1161,13 +1158,14 @@ "skip_get_url": true, "url": "https://www.hillingdon.gov.uk/collection-day", "web_driver": "http://selenium:4444", - "wiki_name": "High Peak Council", - "wiki_note": "Pass the postcode and the full address as it appears in the address pulldown menu." + "wiki_name": "Hillingdon", + "wiki_note": "Pass the postcode and the full address as it appears in the address pulldown menu.", + "LAD24CD": "E09000017" }, "HinckleyandBosworthBoroughCouncil": { "uprn": "100030533512", "url": "https://www.hinckley-bosworth.gov.uk", - "wiki_name": "Hinckley and Bosworth Borough Council", + "wiki_name": "Hinckley and Bosworth", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000132" }, @@ -1178,7 +1176,7 @@ "uprn": "010013792717", "url": "https://www.horsham.gov.uk/waste-recycling-and-bins/household-bin-collections/check-your-bin-collection-day", "web_driver": "http://selenium:4444", - "wiki_name": "Horsham District Council", + "wiki_name": "Horsham", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search). This parser requires a Selenium webdriver." }, "HullCityCouncil": { @@ -1186,14 +1184,14 @@ "skip_get_url": true, "uprn": "21033995", "url": "https://www.hull.gov.uk/bins-and-recycling/bin-collections/bin-collection-day-checker", - "wiki_name": "Hull City Council", + "wiki_name": "Kingston upon Hull", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search)." }, "HuntingdonDistrictCouncil": { "LAD24CD": "E07000011", "url": "http://www.huntingdonshire.gov.uk/refuse-calendar/10012048679", "wiki_command_url_override": "https://www.huntingdonshire.gov.uk/refuse-calendar/XXXXXXXX", - "wiki_name": "Huntingdon District Council", + "wiki_name": "Huntingdonshire", "wiki_note": "Replace XXXXXXXX with your UPRN." }, "HyndburnBoroughCouncil": { @@ -1208,7 +1206,7 @@ "IpswichBoroughCouncil": { "house_number": "Siloam Place", "url": "https://app.ipswich.gov.uk/bin-collection/", - "wiki_name": "Ipswich Borough Council", + "wiki_name": "Ipswich", "wiki_note": "Provide only the street name (no house number) as the PAON", "LAD24CD": "E07000202" }, @@ -1216,14 +1214,14 @@ "uprn": "5300094897", "url": "https://www.islington.gov.uk/your-area?Postcode=unused&Uprn=5300094897", "wiki_command_url_override": "https://www.islington.gov.uk/your-area?Postcode=unused&Uprn=XXXXXXXX", - "wiki_name": "Islington Council", + "wiki_name": "Islington", "wiki_note": "Replace XXXXXXXX with your UPRN.", "LAD24CD": "E09000019" }, "KingsLynnandWestNorfolkBC": { "uprn": "10023636886", "url": "https://www.west-norfolk.gov.uk/", - "wiki_name": "Kings Lynn and West Norfolk Borough Council", + "wiki_name": "Kings Lynn and West Norfolk", "wiki_note": "Provide your UPRN. Find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000146" }, @@ -1231,7 +1229,7 @@ "url": "https://waste-services.kingston.gov.uk/waste/2701097", "web_driver": "http://selenium:4444", "wiki_command_url_override": "https://waste-services.kingston.gov.uk/waste/XXXXXXX", - "wiki_name": "Kingston Upon Thames Council", + "wiki_name": "Kingston upon Thames", "wiki_note": "Follow the instructions [here](https://waste-services.kingston.gov.uk/waste) until the \"Your bin days\" page, then copy the URL and replace the URL in the command.", "LAD24CD": "E09000021" }, @@ -1239,7 +1237,7 @@ "skip_get_url": true, "uprn": "83002937", "url": "https://www.kirklees.gov.uk/beta/your-property-bins-recycling/your-bins", - "wiki_name": "Kirklees Council", + "wiki_name": "Kirklees", "wiki_note": "Provide your UPRN. Find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E08000034" }, @@ -1249,7 +1247,7 @@ "skip_get_url": true, "url": "https://knowsleytransaction.mendixcloud.com/link/youarebeingredirected?target=bincollectioninformation", "web_driver": "http://selenium:4444", - "wiki_name": "Knowsley Metropolitan Borough Council", + "wiki_name": "Knowsley", "wiki_note": "Pass the postcode in the postcode parameter, wrapped in double quotes and with a space.", "LAD24CD": "E08000011" }, @@ -1258,7 +1256,7 @@ "postcode": "LA1 1RS", "skip_get_url": true, "url": "https://lcc-wrp.whitespacews.com", - "wiki_name": "Lancaster City Council", + "wiki_name": "Lancaster", "wiki_note": "Pass the house number and postcode in their respective parameters.", "LAD24CD": "E07000121" }, @@ -1269,14 +1267,14 @@ "uprn": "72506983", "url": "https://www.leeds.gov.uk/residents/bins-and-recycling/check-your-bin-day", "web_driver": "http://selenium:4444", - "wiki_name": "Leeds City Council", + "wiki_name": "Leeds", "wiki_note": "Pass the house number, postcode, and UPRN. This parser requires a Selenium webdriver.", "LAD24CD": "E08000035" }, "LeicesterCityCouncil": { "uprn": "2465027976", "url": "https://biffaleicester.co.uk", - "wiki_name": "Leicester City Council", + "wiki_name": "Leicester", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E06000016" }, @@ -1284,7 +1282,7 @@ "uprn": "100031694085", "url": "https://www.lichfielddc.gov.uk", "wiki_command_url_override": "https://www.lichfielddc.gov.uk", - "wiki_name": "Lichfield District Council", + "wiki_name": "Lichfield", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000194" }, @@ -1293,7 +1291,7 @@ "uprn": "000235024846", "url": "https://lincoln.gov.uk", "wiki_command_url_override": "https://lincoln.gov.uk", - "wiki_name": "Lincoln Council", + "wiki_name": "City of Lincoln", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000138" }, @@ -1302,14 +1300,14 @@ "postcode": "BT28 1JN", "skip_get_url": true, "url": "https://lisburn.isl-fusion.com", - "wiki_name": "Lisburn and Castlereagh City Council", + "wiki_name": "Lisburn and Castlereagh", "wiki_note": "Pass the house number and postcode in their respective parameters.", "LAD24CD": "N09000007" }, "LiverpoolCityCouncil": { "url": "https://liverpool.gov.uk/Bins/BinDatesTable?UPRN=38164600", "wiki_command_url_override": "https://liverpool.gov.uk/Bins/BinDatesTable?UPRN=XXXXXXXX", - "wiki_name": "Liverpool City Council", + "wiki_name": "Liverpool", "wiki_note": "Replace XXXXXXXX with your property's UPRN.", "LAD24CD": "E08000012" }, @@ -1317,7 +1315,7 @@ "skip_get_url": true, "uprn": "12081498", "url": "https://www.ealing.gov.uk/site/custom_scripts/WasteCollectionWS/home/FindCollection", - "wiki_name": "London Borough Ealing", + "wiki_name": "Ealing", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E09000009" }, @@ -1325,14 +1323,14 @@ "uprn": "100021298754", "url": "https://www.harrow.gov.uk", "wiki_command_url_override": "https://www.harrow.gov.uk", - "wiki_name": "London Borough Harrow", + "wiki_name": "Harrow", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E09000015" }, "LondonBoroughHavering": { "uprn": "100021380730", "url": "https://www.havering.gov.uk", - "wiki_name": "London Borough Havering", + "wiki_name": "Havering", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E09000016" }, @@ -1340,7 +1338,7 @@ "skip_get_url": true, "uprn": "100021577765", "url": "https://www.hounslow.gov.uk/homepage/86/recycling_and_waste_collection_day_finder", - "wiki_name": "Hounslow Council", + "wiki_name": "Hounslow", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E09000018" }, @@ -1348,7 +1346,7 @@ "skip_get_url": true, "uprn": "100021881738", "url": "https://wasteservice.lambeth.gov.uk/WhitespaceComms/GetServicesByUprn", - "wiki_name": "London Borough Lambeth", + "wiki_name": "Lambeth", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E09000022" }, @@ -1358,7 +1356,7 @@ "uprn": "100021954849", "url": "https://www.lewisham.gov.uk", "web_driver": "http://selenium:4444", - "wiki_name": "London Borough Lewisham", + "wiki_name": "Lewisham", "wiki_note": "Pass the UPRN and postcode. To get the UPRN, you can use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E09000023" }, @@ -1367,7 +1365,7 @@ "skip_get_url": true, "url": "https://www.richmond.gov.uk/services/waste_and_recycling/collection_days/", "web_driver": "http://selenium:4444", - "wiki_name": "London Borough Of Richmond Upon Thames", + "wiki_name": "Richmond upon Thames", "wiki_note": "Pass the name of the street ONLY in the house number parameter, unfortunately post code's are not allowed. ", "LAD24CD": "E09000027" }, @@ -1376,7 +1374,7 @@ "uprn": "10023770353", "url": "https://my.redbridge.gov.uk/RecycleRefuse", "web_driver": "http://selenium:4444", - "wiki_name": "London Borough Redbridge", + "wiki_name": "Redbridge", "wiki_note": "Follow the instructions [here](https://my.redbridge.gov.uk/RecycleRefuse) until you get the page listing your address, then copy the entire address text and use that in the house number field.", "LAD24CD": "E09000026" }, @@ -1384,7 +1382,7 @@ "uprn": "4473006", "url": "https://waste-services.sutton.gov.uk/waste", "wiki_command_url_override": "https://waste-services.sutton.gov.uk/waste", - "wiki_name": "London Borough Sutton", + "wiki_name": "Sutton", "wiki_note": "You will need to find your unique property reference by going to (https://waste-services.sutton.gov.uk/waste), entering your details and then using the 7 digit reference in the URL as your UPRN", "LAD24CD": "E09000029" }, @@ -1392,7 +1390,7 @@ "uprn": "100080155778", "url": "https://myforms.luton.gov.uk", "wiki_command_url_override": "https://myforms.luton.gov.uk", - "wiki_name": "Luton Borough Council", + "wiki_name": "Luton", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E06000032" }, @@ -1400,7 +1398,7 @@ "skip_get_url": true, "uprn": "100090557253", "url": "https://maldon.suez.co.uk/maldon/ServiceSummary", - "wiki_name": "Maldon District Council", + "wiki_name": "Maldon", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000074" }, @@ -1408,7 +1406,7 @@ "skip_get_url": true, "uprn": "100121348457", "url": "https://swict.malvernhills.gov.uk/mhdcroundlookup/HandleSearchScreen", - "wiki_name": "Malvern Hills District Council", + "wiki_name": "Malvern Hills", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000235" }, @@ -1416,7 +1414,7 @@ "skip_get_url": true, "uprn": "77127089", "url": "https://www.manchester.gov.uk/bincollections", - "wiki_name": "Manchester City Council", + "wiki_name": "Manchester", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E08000003" }, @@ -1424,7 +1422,7 @@ "skip_get_url": true, "uprn": "100031396580", "url": "https://www.mansfield.gov.uk/xfp/form/1327", - "wiki_name": "Mansfield District Council", + "wiki_name": "Mansfield", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000174" }, @@ -1432,14 +1430,21 @@ "skip_get_url": true, "uprn": "200000907059", "url": "https://www.medway.gov.uk/homepage/45/check_your_waste_collection_day", - "wiki_name": "MedwayCouncil", + "wiki_name": "Medway", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000035" }, + "MeltonBoroughCouncil": { + "uprn": "100030540956", + "url": "https://my.melton.gov.uk/collections", + "wiki_name": "Melton", + "wiki_note": "To get the UPRN, you can use [FindMyAddress](https://www.findmyaddress.co.uk/search).", + "LAD24CD": "E07000133" + }, "MertonCouncil": { "url": "https://myneighbourhood.merton.gov.uk/wasteservices/WasteServices.aspx?ID=25936129", "wiki_command_url_override": "https://myneighbourhood.merton.gov.uk/Wasteservices/WasteServices.aspx?ID=XXXXXXXX", - "wiki_name": "Merton Council", + "wiki_name": "Merton", "wiki_note": "Follow the instructions [here](https://myneighbourhood.merton.gov.uk/Wasteservices/WasteServicesSearch.aspx) until you get the \"Your recycling and rubbish collection days\" page, then copy the URL and replace the URL in the command.", "LAD24CD": "E09000024" }, @@ -1448,7 +1453,7 @@ "skip_get_url": true, "url": "https://www.midandeastantrim.gov.uk/resident/waste-recycling/collection-dates/", "web_driver": "http://selenium:4444", - "wiki_name": "Mid and East Antrim Borough Council", + "wiki_name": "Mid and East Antrim", "wiki_note": "Pass the house name/number plus the name of the street with the postcode parameter, wrapped in double quotes. Check the address on the website first. This version will only pick the first SHOW button returned by the search or if it is fully unique.", "LAD24CD": "N09000008" }, @@ -1456,7 +1461,7 @@ "uprn": "200003997770", "url": "https://www.middevon.gov.uk", "wiki_command_url_override": "https://www.middevon.gov.uk", - "wiki_name": "Mid Devon Council", + "wiki_name": "Mid Devon", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000042" }, @@ -1466,7 +1471,7 @@ "skip_get_url": true, "uprn": "Monday", "url": "https://www.midsuffolk.gov.uk", - "wiki_name": "Mid Suffolk District Council", + "wiki_name": "Mid Suffolk", "wiki_note": "Use the House Number field to pass the DAY of the week for your NORMAL collections. [Monday/Tuesday/Wednesday/Thursday/Friday]. [OPTIONAL] Use the 'postcode' field to pass the WEEK for your garden collection. [Week 1/Week 2]. [OPTIONAL] Use the 'uprn' field to pass the DAY for your garden collection. [Monday/Tuesday/Wednesday/Thursday/Friday]", "LAD24CD": "E07000203" }, @@ -1476,16 +1481,16 @@ "skip_get_url": true, "url": "https://www.midsussex.gov.uk/waste-recycling/bin-collection/", "web_driver": "http://selenium:4444", - "wiki_name": "Mid Sussex District Council", + "wiki_name": "Mid Sussex", "wiki_note": "Pass the name of the street with the house number parameter, wrapped in double quotes. This parser requires a Selenium webdriver.", "LAD24CD": "E07000228" }, "MiddlesbroughCouncil": { "house_number": "12 Constantine Court Park Road North, Middlesbrough", "skip_get_url": true, - "url": "https://www.midsussex.gov.uk/waste-recycling/bin-collection/", + "url": "https://www.middlesbrough.gov.uk/recycling-and-rubbish/bin-collection-dates/", "web_driver": "http://selenium:4444", - "wiki_name": "Middlesbrough Council", + "wiki_name": "Middlesbrough", "wiki_note": "Pass the entire address without postcode as it appears when you type it on the website. This parser requires a Selenium webdriver.", "LAD24CD": "E06000002" }, @@ -1494,7 +1499,7 @@ "postcode": "EH19 2EB", "skip_get_url": true, "url": "https://www.midlothian.gov.uk/info/1054/bins_and_recycling/343/bin_collection_days", - "wiki_name": "Midlothian Council", + "wiki_name": "Midlothian", "wiki_note": "Pass the house name/number wrapped in double quotes along with the postcode parameter.", "LAD24CD": "S12000019" }, @@ -1504,14 +1509,14 @@ "skip_get_url": true, "url": "https://www.midulstercouncil.org", "web_driver": "http://selenium:4444", - "wiki_name": "Mid Ulster District Council", + "wiki_name": "Mid Ulster", "wiki_note": "Pass the full address of the house postcode as displayed on the site. This parser requires a Selenium webdriver.", "LAD24CD": "N09000009" }, "MiltonKeynesCityCouncil": { "uprn": "25109551", "url": "https://mycouncil.milton-keynes.gov.uk/en/service/Waste_Collection_Round_Checker", - "wiki_name": "Milton Keynes City Council", + "wiki_name": "Milton Keynes", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E06000042" }, @@ -1520,21 +1525,21 @@ "skip_get_url": true, "uprn": "200000171235", "url": "https://myproperty.molevalley.gov.uk/molevalley/", - "wiki_name": "Mole Valley District Council", + "wiki_name": "Mole Valley", "wiki_note": "UPRN can only be parsed with a valid postcode.", "LAD24CD": "E07000210" }, "MonmouthshireCountyCouncil": { "uprn": "100100266220", "url": "https://maps.monmouthshire.gov.uk", - "wiki_name": "Monmouthshire County Council", + "wiki_name": "Monmouthshire", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "W06000021" }, "MorayCouncil": { - "uprn": "28841", + "uprn": "45438", "url": "https://bindayfinder.moray.gov.uk/", - "wiki_name": "Moray Council", + "wiki_name": "Moray", "wiki_note": "Find your property ID by going to (https://bindayfinder.moray.gov.uk), search for your property and extracting the ID from the URL. i.e. (https://bindayfinder.moray.gov.uk/disp_bins.php?id=00028841)", "LAD24CD": "S12000020" }, @@ -1544,7 +1549,7 @@ "skip_get_url": true, "url": "https://www.npt.gov.uk", "web_driver": "http://selenium:4444", - "wiki_name": "Neath Port Talbot Council", + "wiki_name": "Neath Port Talbot", "wiki_note": "Pass the house number and postcode in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "W06000012" }, @@ -1554,14 +1559,14 @@ "uprn": "100060482345", "url": "https://forms.newforest.gov.uk/id/FIND_MY_COLLECTION", "web_driver": "http://selenium:4444", - "wiki_name": "New Forest Council", + "wiki_name": "New Forest", "wiki_note": "Pass the postcode and UPRN. This parser requires a Selenium webdriver.", "LAD24CD": "E07000091" }, "NewarkAndSherwoodDC": { "url": "http://app.newark-sherwooddc.gov.uk/bincollection/calendar?pid=200004258529", "wiki_command_url_override": "http://app.newark-sherwooddc.gov.uk/bincollection/calendar?pid=XXXXXXXX", - "wiki_name": "Newark and Sherwood District Council", + "wiki_name": "Newark and Sherwood", "wiki_note": "Replace XXXXXXXX with your UPRN.", "LAD24CD": "E07000175" }, @@ -1569,20 +1574,20 @@ "LAD24CD": "E08000021", "url": "https://community.newcastle.gov.uk/my-neighbourhood/ajax/getBinsNew.php?uprn=004510730634", "wiki_command_url_override": "https://community.newcastle.gov.uk/my-neighbourhood/ajax/getBinsNew.php?uprn=XXXXXXXX", - "wiki_name": "Newcastle City Council", + "wiki_name": "Newcastle upon Tyne", "wiki_note": "Replace XXXXXXXX with your UPRN. UPRNs need to be 12 digits long so please pad the left hand side with 0s if your UPRN is not long enough" }, "NewcastleUnderLymeCouncil": { "uprn": "100031725433", "url": "https://www.newcastle-staffs.gov.uk", - "wiki_name": "Newcastle Under Lyme Council", + "wiki_name": "Newcastle-under-Lyme", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000195" }, "NewhamCouncil": { "url": "https://bincollection.newham.gov.uk/Details/Index/000046002133", "wiki_command_url_override": "https://bincollection.newham.gov.uk/Details/Index/XXXXXXXXXXX", - "wiki_name": "Newham Council", + "wiki_name": "Newham", "wiki_note": "Follow the instructions [here](https://bincollection.newham.gov.uk/) until you get the \"Rubbish and Recycling Collections\" page, then copy the URL and replace the URL in the command.", "LAD24CD": "E09000025" }, @@ -1591,7 +1596,7 @@ "skip_get_url": true, "uprn": "100100688837", "url": "https://www.newport.gov.uk/", - "wiki_name": "Newport City Council", + "wiki_name": "Newport", "wiki_note": "Pass the postcode and UPRN. You can find the UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "W06000022" }, @@ -1599,7 +1604,7 @@ "uprn": "126045552", "url": "https://www.north-ayrshire.gov.uk/", "wiki_command_url_override": "https://www.north-ayrshire.gov.uk/", - "wiki_name": "North Ayrshire Council", + "wiki_name": "North Ayrshire", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "S12000021" }, @@ -1610,7 +1615,7 @@ "uprn": "100040249471", "url": "https://my.northdevon.gov.uk/service/WasteRecyclingCollectionCalendar", "web_driver": "http://selenium:4444", - "wiki_name": "North Devon County Council", + "wiki_name": "North Devon", "wiki_note": "Pass the house number and postcode in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "E07000043" }, @@ -1620,7 +1625,7 @@ "uprn": "010034492221", "url": "https://myselfservice.ne-derbyshire.gov.uk/service/Check_your_Bin_Day", "web_driver": "http://selenium:4444", - "wiki_name": "North East Derbyshire District Council", + "wiki_name": "North East Derbyshire", "wiki_note": "Pass the postcode and UPRN. This parser requires a Selenium webdriver.", "LAD24CD": "E07000038" }, @@ -1628,7 +1633,7 @@ "uprn": "11062649", "url": "https://www.nelincs.gov.uk/refuse-collection-schedule/?view=timeline&uprn=11062649", "wiki_command_url_override": "https://www.nelincs.gov.uk/refuse-collection-schedule/?view=timeline&uprn=XXXXXXXX", - "wiki_name": "North East Lincolnshire Council", + "wiki_name": "North East Lincolnshire", "wiki_note": "Replace XXXXXXXX with your UPRN.", "LAD24CD": "E06000012" }, @@ -1636,21 +1641,21 @@ "house_number": "2", "postcode": "SG6 4BJ", "url": "https://www.north-herts.gov.uk", - "wiki_name": "North Hertfordshire District Council", + "wiki_name": "North Hertfordshire", "wiki_note": "Pass the house number and postcode in their respective parameters.", "LAD24CD": "E07000099" }, "NorthKestevenDistrictCouncil": { "url": "https://www.n-kesteven.org.uk/bins/display?uprn=100030869513", "wiki_command_url_override": "https://www.n-kesteven.org.uk/bins/display?uprn=XXXXXXXX", - "wiki_name": "North Kesteven District Council", + "wiki_name": "North Kesteven", "wiki_note": "Replace XXXXXXXX with your UPRN.", "LAD24CD": "E07000139" }, "NorthLanarkshireCouncil": { "url": "https://www.northlanarkshire.gov.uk/bin-collection-dates/000118016164/48402118", "wiki_command_url_override": "https://www.northlanarkshire.gov.uk/bin-collection-dates/XXXXXXXXXXX/XXXXXXXXXXX", - "wiki_name": "North Lanarkshire Council", + "wiki_name": "North Lanarkshire", "wiki_note": "Follow the instructions [here](https://www.northlanarkshire.gov.uk/bin-collection-dates) until you get the \"Next collections\" page, then copy the URL and replace the URL in the command.", "LAD24CD": "S12000050" }, @@ -1658,7 +1663,7 @@ "skip_get_url": true, "uprn": "100050194170", "url": "https://www.northlincs.gov.uk/bins-waste-and-recycling/bin-and-box-collection-dates/", - "wiki_name": "North Lincolnshire Council", + "wiki_name": "North Lincolnshire", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000013" }, @@ -1668,7 +1673,7 @@ "skip_get_url": true, "url": "https://www.north-norfolk.gov.uk/", "web_driver": "http://selenium:4444", - "wiki_name": "North Norfolk District Council", + "wiki_name": "North Norfolk", "wiki_note": "Pass the name of the street with the house number parameter, wrapped in double quotes. This parser requires a Selenium webdriver.", "LAD24CD": "E07000147" }, @@ -1676,7 +1681,7 @@ "skip_get_url": true, "uprn": "100031021317", "url": "https://cms.northnorthants.gov.uk/bin-collection-search/calendarevents/100031021318/2023-10-17/2023-10-01", - "wiki_name": "North Northamptonshire Council", + "wiki_name": "North Northamptonshire", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000061" }, @@ -1685,7 +1690,7 @@ "skip_get_url": true, "uprn": "24051674", "url": "https://forms.n-somerset.gov.uk/Waste/CollectionSchedule", - "wiki_name": "North Somerset Council", + "wiki_name": "North Somerset", "wiki_note": "Pass the postcode and UPRN. You can find the UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000024" }, @@ -1694,7 +1699,7 @@ "skip_get_url": true, "uprn": "47097627", "url": "https://my.northtyneside.gov.uk/category/81/bin-collection-dates", - "wiki_name": "North Tyneside Council", + "wiki_name": "North Tyneside", "wiki_note": "Pass the postcode and UPRN. You can find the UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E08000022" }, @@ -1704,7 +1709,7 @@ "uprn": "100030572613", "url": "https://www.nwleics.gov.uk/pages/collection_information", "web_driver": "http://selenium:4444", - "wiki_name": "North West Leicestershire Council", + "wiki_name": "North West Leicestershire", "wiki_note": "Pass the postcode and UPRN. This parser requires a Selenium webdriver.", "LAD24CD": "E07000134" }, @@ -1712,7 +1717,7 @@ "skip_get_url": true, "uprn": "10093091235", "url": "https://www.northyorks.gov.uk/bin-calendar/lookup", - "wiki_name": "North Yorkshire Council", + "wiki_name": "North Yorkshire", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000065" }, @@ -1722,7 +1727,7 @@ "skip_get_url": true, "url": "https://www.northumberland.gov.uk/Waste/Household-waste/Household-bin-collections/Bin-Calendars.aspx", "web_driver": "http://selenium:4444", - "wiki_name": "Northumberland Council", + "wiki_name": "Northumberland", "wiki_note": "Pass the house number and postcode in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "E06000057" }, @@ -1730,7 +1735,7 @@ "uprn": "100090888980", "url": "https://www.norwich.gov.uk", "wiki_command_url_override": "https://www.norwich.gov.uk", - "wiki_name": "Norwich City Council", + "wiki_name": "Norwich", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000148" }, @@ -1738,7 +1743,7 @@ "skip_get_url": true, "uprn": "100031540180", "url": "https://geoserver.nottinghamcity.gov.uk/bincollections2/api/collection/100031540180", - "wiki_name": "Nottingham City Council", + "wiki_name": "Nottingham", "wiki_note": "Pass the UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000018" }, @@ -1746,7 +1751,7 @@ "house_number": "Newdigate Road", "skip_get_url": true, "url": "https://www.nuneatonandbedworth.gov.uk", - "wiki_name": "Nuneaton and Bedworth Borough Council", + "wiki_name": "Nuneaton and Bedworth", "wiki_note": "Pass the name of the street ONLY in the house number parameter, wrapped in double quotes. Street name must match exactly as it appears on the council's website.", "LAD24CD": "E07000219" }, @@ -1754,12 +1759,12 @@ "LAD24CD": "E07000135", "uprn": "10010149102", "url": "https://my.oadby-wigston.gov.uk", - "wiki_name": "Oadby & Wigston Borough Council", + "wiki_name": "Oadby and Wigston", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN." }, "OldhamCouncil": { "url": "https://portal.oldham.gov.uk/bincollectiondates/details?uprn=422000033556", - "wiki_name": "Oldham Council", + "wiki_name": "Oldham", "wiki_note": "Replace UPRN in URL with your own UPRN.", "LAD24CD": "E08000004" }, @@ -1768,17 +1773,24 @@ "uprn": "100120820551", "url": "https://www.oxford.gov.uk", "wiki_command_url_override": "https://www.oxford.gov.uk", - "wiki_name": "Oxford City Council", + "wiki_name": "Oxford", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000178" }, + "PembrokeshireCountyCouncil": { + "url": "https://nearest.pembrokeshire.gov.uk/property/100100278790", + "wiki_command_url_override": "https://nearest.pembrokeshire.gov.uk/property/XXXXXXXXXX", + "wiki_name": "Pembrokeshire", + "wiki_note": "Replace XXXXXXXX with your UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find it.", + "LAD24CD": "W06000009" + }, "PeterboroughCityCouncil": { "house_number": "7 Arundel Road, Peterborough, PE4 6JJ", "postcode": "PE4 6JJ", "skip_get_url": true, "url": "https://report.peterborough.gov.uk/waste", "web_driver": "http://selenium:4444", - "wiki_name": "Peterborough City Council", + "wiki_name": "Peterborough", "wiki_note": "Pass the full address as it appears o nthe Peterborough website and postcode in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "E06000031" }, @@ -1786,7 +1798,7 @@ "uprn": "124032322", "url": "https://www.pkc.gov.uk", "wiki_command_url_override": "https://www.pkc.gov.uk", - "wiki_name": "Perth and Kinross Council", + "wiki_name": "Perth and Kinross", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "S12000048" }, @@ -1794,7 +1806,7 @@ "uprn": "100040420582", "url": "https://www.plymouth.gov.uk", "wiki_command_url_override": "https://www.plymouth.gov.uk", - "wiki_name": "Plymouth Council", + "wiki_name": "Plymouth", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E06000026" }, @@ -1804,7 +1816,7 @@ "uprn": "1775027504", "url": "https://my.portsmouth.gov.uk/en/AchieveForms/?form_uri=sandbox-publish://AF-Process-26e27e70-f771-47b1-a34d-af276075cede/AF-Stage-cd7cc291-2e59-42cc-8c3f-1f93e132a2c9/definition.json&redirectlink=%2F&cancelRedirectLink=%2F", "web_driver": "http://selenium:4444", - "wiki_name": "Portsmouth City Council", + "wiki_name": "Portsmouth", "wiki_note": "Pass the postcode and UPRN. This parser requires a Selenium webdriver.", "LAD24CD": "E06000044" }, @@ -1814,7 +1826,7 @@ "skip_get_url": true, "url": "https://www.powys.gov.uk", "web_driver": "http://selenium:4444", - "wiki_name": "Powys Council", + "wiki_name": "Powys", "LAD24CD": "W06000023" }, "PrestonCityCouncil": { @@ -1823,14 +1835,14 @@ "skip_get_url": true, "url": "https://selfservice.preston.gov.uk/service/Forms/FindMyNearest.aspx?Service=bins", "web_driver": "http://selenium:4444", - "wiki_name": "Preston City Council", + "wiki_name": "Preston", "wiki_note": "Pass the house number and postcode in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "E07000123" }, "ReadingBoroughCouncil": { "url": "https://api.reading.gov.uk/api/collections/310056735", "wiki_command_url_override": "https://api.reading.gov.uk/api/collections/XXXXXXXX", - "wiki_name": "Reading Borough Council", + "wiki_name": "Reading", "wiki_note": "Replace XXXXXXXX with your property's UPRN.", "LAD24CD": "E06000038" }, @@ -1839,7 +1851,7 @@ "postcode": "TS10 2RE", "skip_get_url": true, "url": "https://www.redcar-cleveland.gov.uk", - "wiki_name": "Redcar and Cleveland Council", + "wiki_name": "Redcar and Cleveland", "wiki_note": "Pass the house name/number and postcode in their respective parameters", "LAD24CD": "E06000003" }, @@ -1847,7 +1859,7 @@ "uprn": "10094557691", "url": "https://redditchbc.gov.uk", "wiki_command_url_override": "https://redditchbc.gov.uk", - "wiki_name": "Redditch Borough Council", + "wiki_name": "Redditch", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000236" }, @@ -1856,7 +1868,7 @@ "uprn": "68134867", "url": "https://www.reigate-banstead.gov.uk/", "web_driver": "http://selenium:4444", - "wiki_name": "Reigate and Banstead Borough Council", + "wiki_name": "Reigate and Banstead", "wiki_note": "To get the UPRN, you can use [FindMyAddress](https://www.findmyaddress.co.uk/search). This parser requires a Selenium webdriver.", "LAD24CD": "E07000211" }, @@ -1867,7 +1879,7 @@ "skip_get_url": true, "url": "https://www.renfrewshire.gov.uk/bin-day", "web_driver": "http://selenium:4444", - "wiki_name": "Renfrewshire Council", + "wiki_name": "Renfrewshire", "wiki_note": "Pass the full address as it appears on the website. This parser requires a Selenium webdriver.", "LAD24CD": "S12000038" }, @@ -1875,7 +1887,7 @@ "skip_get_url": true, "uprn": "100100778320", "url": "https://www.rctcbc.gov.uk/EN/Resident/RecyclingandWaste/RecyclingandWasteCollectionDays.aspx", - "wiki_name": "Rhondda Cynon Taff Council", + "wiki_name": "Rhondda Cynon Taff", "wiki_note": "To get the UPRN, you can use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "W06000016" }, @@ -1884,20 +1896,20 @@ "skip_get_url": true, "uprn": "23049922", "url": "https://webforms.rochdale.gov.uk/BinCalendar", - "wiki_name": "Rochdale Council", + "wiki_name": "Rochdale", "wiki_note": "Provide your UPRN and postcode. You can find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E08000005" }, "RochfordCouncil": { "url": "https://www.rochford.gov.uk/online-bin-collections-calendar", - "wiki_name": "Rochford Council", + "wiki_name": "Rochford", "wiki_note": "No extra parameters are required. Dates presented should be read as 'week commencing'.", "LAD24CD": "E07000075" }, "RotherDistrictCouncil": { "uprn": "100061937338", "url": "https://www.rother.gov.uk", - "wiki_name": "Rother District Council", + "wiki_name": "Rother", "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000064" }, @@ -1905,7 +1917,7 @@ "uprn": "100050866000", "url": "https://www.rotherham.gov.uk/bin-collections?address=100050866000&submit=Submit", "wiki_command_url_override": "https://www.rotherham.gov.uk/bin-collections?address=XXXXXXXXX&submit=Submit", - "wiki_name": "Rotherham Council", + "wiki_name": "Rotherham", "wiki_note": "Replace `XXXXXXXXX` with your UPRN in the URL. You can find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E08000018" }, @@ -1914,7 +1926,7 @@ "postcode": "BR7 6DN", "skip_get_url": true, "url": "https://www.royalgreenwich.gov.uk", - "wiki_name": "Royal Borough of Greenwich", + "wiki_name": "Greenwich", "wiki_note": "Provide your house number in the `house_number` parameter and your postcode in the `postcode` parameter.", "LAD24CD": "E09000011" }, @@ -1923,7 +1935,8 @@ "skip_get_url": true, "uprn": "100070182634", "url": "https://www.rugby.gov.uk/check-your-next-bin-day", - "wiki_name": "Rugby Borough Council", + "web_driver": "http://selenium:4444", + "wiki_name": "Rugby", "wiki_note": "Provide your UPRN and postcode. You can find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000220" }, @@ -1931,7 +1944,7 @@ "skip_get_url": true, "uprn": "100061483636", "url": "https://www.runnymede.gov.uk/", - "wiki_name": "Runnymede Borough Council", + "wiki_name": "Runnymede", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000212" }, @@ -1941,14 +1954,14 @@ "uprn": "3040040994", "url": "https://www.rushcliffe.gov.uk/", "web_driver": "http://selenium:4444", - "wiki_name": "Rushcliffe Borough Council", + "wiki_name": "Rushcliffe", "wiki_note": "Provide your UPRN and postcode. Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000176" }, "RushmoorCouncil": { "url": "https://www.rushmoor.gov.uk/Umbraco/Api/BinLookUpWorkAround/Get?selectedAddress=100060545034", "wiki_command_url_override": "https://www.rushmoor.gov.uk/Umbraco/Api/BinLookUpWorkAround/Get?selectedAddress=XXXXXXXXXX", - "wiki_name": "Rushmoor Council", + "wiki_name": "Rushmoor", "wiki_note": "Replace `XXXXXXXXXX` with your UPRN, which you can find using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000092" }, @@ -1956,7 +1969,7 @@ "skip_get_url": true, "uprn": "100011416709", "url": "https://www.salford.gov.uk/bins-and-recycling/bin-collection-days/your-bin-collections", - "wiki_name": "Salford City Council", + "wiki_name": "Salford", "wiki_note": "Provide your UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E08000006" }, @@ -1964,7 +1977,7 @@ "skip_get_url": true, "uprn": "32101971", "url": "https://www.sandwell.gov.uk", - "wiki_name": "Sandwell Borough Council", + "wiki_name": "Sandwell", "wiki_note": "Pass the UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E08000028" }, @@ -1972,7 +1985,7 @@ "house_number": "1", "postcode": "L20 6GG", "url": "https://www.sefton.gov.uk", - "wiki_name": "Sefton Council", + "wiki_name": "Sefton", "wiki_note": "Pass the postcode and house number in their respective arguments, both wrapped in quotes.", "LAD24CD": "E08000014" }, @@ -1982,28 +1995,28 @@ "skip_get_url": true, "url": "https://sevenoaks-dc-host01.oncreate.app/w/webpage/waste-collection-day", "web_driver": "http://selenium:4444", - "wiki_name": "Sevenoaks District Council", + "wiki_name": "Sevenoaks", "wiki_note": "Pass the house name/number in the `house_number` parameter, wrapped in double quotes, and the postcode in the `postcode` parameter.", "LAD24CD": "E07000111" }, "SheffieldCityCouncil": { "url": "https://wasteservices.sheffield.gov.uk/property/100050931898", "wiki_command_url_override": "https://wasteservices.sheffield.gov.uk/property/XXXXXXXXXXX", - "wiki_name": "Sheffield City Council", + "wiki_name": "Sheffield", "wiki_note": "Follow the instructions [here](https://wasteservices.sheffield.gov.uk/) until you get the 'Your bin collection dates and services' page, then copy the URL and replace the URL in the command.", "LAD24CD": "E08000019" }, "ShropshireCouncil": { "url": "https://bins.shropshire.gov.uk/property/100070034731", "wiki_command_url_override": "https://bins.shropshire.gov.uk/property/XXXXXXXXXXX", - "wiki_name": "Shropshire Council", + "wiki_name": "Shropshire", "wiki_note": "Follow the instructions [here](https://bins.shropshire.gov.uk/) until you get the page showing your bin collection dates, then copy the URL and replace the URL in the command.", "LAD24CD": "E06000051" }, "SolihullCouncil": { "url": "https://digital.solihull.gov.uk/BinCollectionCalendar/Calendar.aspx?UPRN=100071005444", "wiki_command_url_override": "https://digital.solihull.gov.uk/BinCollectionCalendar/Calendar.aspx?UPRN=XXXXXXXX", - "wiki_name": "Solihull Council", + "wiki_name": "Solihull", "wiki_note": "Replace `XXXXXXXX` with your UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E08000029" }, @@ -2012,7 +2025,7 @@ "skip_get_url": true, "uprn": "10090857775", "url": "https://www.somerset.gov.uk/", - "wiki_name": "Somerset Council", + "wiki_name": "Somerset", "wiki_note": "Provide your UPRN and postcode. Find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000066" }, @@ -2021,7 +2034,7 @@ "skip_get_url": true, "uprn": "141003134", "url": "https://www.south-ayrshire.gov.uk/", - "wiki_name": "South Ayrshire Council", + "wiki_name": "South Ayrshire", "wiki_note": "Provide your UPRN and postcode. Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "S12000028" }, @@ -2030,7 +2043,7 @@ "postcode": "CB23 6GZ", "skip_get_url": true, "url": "https://www.scambs.gov.uk/recycling-and-bins/find-your-household-bin-collection-day/", - "wiki_name": "South Cambridgeshire Council", + "wiki_name": "South Cambridgeshire", "wiki_note": "Provide your house number in the `house_number` parameter and postcode in the `postcode` parameter.", "LAD24CD": "E07000012" }, @@ -2038,7 +2051,7 @@ "uprn": "10000820668", "url": "https://maps.southderbyshire.gov.uk/iShareLIVE.web//getdata.aspx?RequestType=LocalInfo&ms=mapsources/MyHouse&format=JSONP&group=Recycling%20Bins%20and%20Waste|Next%20Bin%20Collections&uid=", "wiki_command_url_override": "https://maps.southderbyshire.gov.uk/iShareLIVE.web//getdata.aspx?RequestType=LocalInfo&ms=mapsources/MyHouse&format=JSONP&group=Recycling%20Bins%20and%20Waste|Next%20Bin%20Collections&uid=XXXXXXXX", - "wiki_name": "South Derbyshire District Council", + "wiki_name": "South Derbyshire", "wiki_note": "Replace `XXXXXXXX` with your UPRN. You can find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000039" }, @@ -2046,14 +2059,14 @@ "skip_get_url": true, "uprn": "566419", "url": "https://beta.southglos.gov.uk/waste-and-recycling-collection-date", - "wiki_name": "South Gloucestershire Council", + "wiki_name": "South Gloucestershire", "wiki_note": "Provide your UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000025" }, "SouthHamsDistrictCouncil": { "uprn": "10004742851", "url": "https://www.southhams.gov.uk", - "wiki_name": "South Hams District Council", + "wiki_name": "South Hams", "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000044" }, @@ -2064,7 +2077,7 @@ "uprn": "100030872493", "url": "https://www.sholland.gov.uk/mycollections", "web_driver": "http://selenium:4444", - "wiki_name": "South Holland District Council", + "wiki_name": "South Holland", "wiki_note": "Pass the UPRN and postcode in their respective parameters. This parser requires a Selenium webdriver.", "LAD24CD": "E07000140" }, @@ -2074,14 +2087,14 @@ "skip_get_url": true, "url": "https://pre.southkesteven.gov.uk/BinSearch.aspx", "web_driver": "http://selenium:4444", - "wiki_name": "South Kesteven District Council", + "wiki_name": "South Kesteven", "wiki_note": "Provide your full address in the `house_number` parameter and your postcode in the `postcode` parameter.", "LAD24CD": "E07000141" }, "SouthLanarkshireCouncil": { "url": "https://www.southlanarkshire.gov.uk/directory_record/579973/abbeyhill_crescent_lesmahagow", "wiki_command_url_override": "https://www.southlanarkshire.gov.uk/directory_record/XXXXX/XXXXX", - "wiki_name": "South Lanarkshire Council", + "wiki_name": "South Lanarkshire", "wiki_note": "Follow the instructions [here](https://www.southlanarkshire.gov.uk/info/200156/bins_and_recycling/1670/bin_collections_and_calendar) until you get the page that shows the weekly collections for your street, then copy the URL and replace the URL in the command.", "LAD24CD": "S12000029" }, @@ -2089,7 +2102,7 @@ "skip_get_url": true, "uprn": "2630102526", "url": "https://www.southnorfolkandbroadland.gov.uk/rubbish-recycling/south-norfolk-bin-collection-day-finder", - "wiki_name": "South Norfolk Council", + "wiki_name": "South Norfolk", "wiki_note": "Provide your UPRN. Find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000149" }, @@ -2097,7 +2110,7 @@ "skip_get_url": true, "uprn": "10033002851", "url": "https://www.southoxon.gov.uk/south-oxfordshire-district-council/recycling-rubbish-and-waste/when-is-your-collection-day/", - "wiki_name": "South Oxfordshire Council", + "wiki_name": "South Oxfordshire", "wiki_note": "Provide your UPRN. Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to locate it.", "LAD24CD": "E07000179" }, @@ -2105,14 +2118,14 @@ "uprn": "010013246384", "url": "https://www.southribble.gov.uk", "wiki_command_url_override": "https://www.southribble.gov.uk", - "wiki_name": "South Ribble Council", + "wiki_name": "South Ribble", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000126" }, "SouthStaffordshireDistrictCouncil": { "uprn": "200004523954", "url": "https://www.sstaffs.gov.uk/where-i-live?uprn=200004523954", - "wiki_name": "South Staffordshire District Council", + "wiki_name": "South Staffordshire", "wiki_note": "The URL needs to be `https://www.sstaffs.gov.uk/where-i-live?uprn=`. Replace `` with your UPRN.", "LAD24CD": "E07000196" }, @@ -2121,7 +2134,7 @@ "postcode": "NE33 3JW", "skip_get_url": true, "url": "https://www.southtyneside.gov.uk/article/33352/Bin-collection-dates", - "wiki_name": "South Tyneside Council", + "wiki_name": "South Tyneside", "wiki_note": "Provide your house number in the `house_number` parameter and postcode in the `postcode` parameter.", "LAD24CD": "E08000023" }, @@ -2129,7 +2142,7 @@ "skip_get_url": true, "uprn": "100060731893", "url": "https://www.southampton.gov.uk", - "wiki_name": "Southampton City Council", + "wiki_name": "Southampton", "wiki_note": "Pass the UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000045" }, @@ -2137,7 +2150,7 @@ "uprn": "200003469271", "url": "https://services.southwark.gov.uk/bins/lookup/", "wiki_command_url_override": "https://services.southwark.gov.uk/bins/lookup/XXXXXXXX", - "wiki_name": "Southwark Council", + "wiki_name": "Southwark", "wiki_note": "Replace `XXXXXXXX` with your UPRN. Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E09000028" }, @@ -2146,14 +2159,14 @@ "postcode": "TW18 2PR", "skip_get_url": true, "url": "https://www.spelthorne.gov.uk", - "wiki_name": "Spelthorne Borough Council", + "wiki_name": "Spelthorne", "LAD24CD": "E07000213" }, "StAlbansCityAndDistrictCouncil": { "skip_get_url": true, "uprn": "100081153583", "url": "https://gis.stalbans.gov.uk/NoticeBoard9/VeoliaProxy.NoticeBoard.asmx/GetServicesByUprnAndNoticeBoard", - "wiki_name": "St Albans City and District Council", + "wiki_name": "St Albans", "wiki_note": "Provide your UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000240" }, @@ -2163,14 +2176,14 @@ "skip_get_url": true, "url": "https://www.sthelens.gov.uk/", "web_driver": "http://selenium:4444", - "wiki_name": "St Helens Borough Council", + "wiki_name": "St. Helens", "wiki_note": "Pass the house name/number in the house number parameter, wrapped in double quotes", "LAD24CD": "E08000013" }, "StaffordBoroughCouncil": { "uprn": "100032203010", "url": "https://www.staffordbc.gov.uk/address/100032203010", - "wiki_name": "Stafford Borough Council", + "wiki_name": "Stafford", "wiki_note": "The URL needs to be `https://www.staffordbc.gov.uk/address/`. Replace `` with your UPRN.", "LAD24CD": "E07000197" }, @@ -2180,14 +2193,14 @@ "uprn": "100031863037", "url": "https://www.staffsmoorlands.gov.uk/", "web_driver": "http://selenium:4444", - "wiki_name": "Staffordshire Moorlands District Council", + "wiki_name": "Staffordshire Moorlands", "wiki_note": "Provide your UPRN and postcode. Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000198" }, "StevenageBoroughCouncil": { "uprn": "100080878852", "url": "https://www.stevenage.gov.uk", - "wiki_name": "Stevenage Borough Council", + "wiki_name": "Stevenage", "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000243" }, @@ -2197,14 +2210,14 @@ "skip_get_url": true, "url": "https://www.stirling.gov.uk/bins-and-recycling/bin-collection-dates-search/", "web_driver": "http://selenium:4444", - "wiki_name": "Stirling Council", + "wiki_name": "Stirling", "wiki_note": "Use the full address as it appears on the drop-down on the site when you search by postcode.", "LAD24CD": "S12000030" }, "StockportBoroughCouncil": { "url": "https://myaccount.stockport.gov.uk/bin-collections/show/100011434401", "wiki_command_url_override": "https://myaccount.stockport.gov.uk/bin-collections/show/XXXXXXXX", - "wiki_name": "Stockport Borough Council", + "wiki_name": "Stockport", "wiki_note": "Replace `XXXXXXXX` with your UPRN.", "LAD24CD": "E08000007" }, @@ -2214,13 +2227,13 @@ "skip_get_url": true, "url": "https://www.stockton.gov.uk", "web_driver": "http://selenium:4444", - "wiki_name": "Stockton On Tees Council", + "wiki_name": "Stockton-on-Tees", "LAD24CD": "E06000004" }, "StokeOnTrentCityCouncil": { "url": "https://www.stoke.gov.uk/jadu/custom/webserviceLookUps/BarTecWebServices_missed_bin_calendar.php?UPRN=3455121482", "wiki_command_url_override": "https://www.stoke.gov.uk/jadu/custom/webserviceLookUps/BarTecWebServices_missed_bin_calendar.php?UPRN=XXXXXXXXXX", - "wiki_name": "Stoke-on-Trent City Council", + "wiki_name": "Stoke-on-Trent", "wiki_note": "Replace `XXXXXXXXXX` with your property's UPRN.", "LAD24CD": "E06000021" }, @@ -2229,14 +2242,14 @@ "skip_get_url": true, "uprn": "100070212698", "url": "https://www.stratford.gov.uk/waste-recycling/when-we-collect.cfm/part/calendar", - "wiki_name": "Stratford Upon Avon Council", + "wiki_name": "Stratford-on-Avon", "wiki_note": "Provide your UPRN. Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find it." }, "StroudDistrictCouncil": { "postcode": "GL10 3BH", "uprn": "100120512183", "url": "https://www.stroud.gov.uk/my-house?uprn=100120512183&postcode=GL10+3BH", - "wiki_name": "Stroud District Council", + "wiki_name": "Stroud", "wiki_note": "Provide your UPRN and postcode. Replace the UPRN and postcode in the URL with your own.", "LAD24CD": "E07000082" }, @@ -2246,7 +2259,7 @@ "skip_get_url": true, "url": "https://webapps.sunderland.gov.uk/WEBAPPS/WSS/Sunderland_Portal/Forms/bindaychecker.aspx", "web_driver": "http://selenium:4444", - "wiki_name": "Sunderland City Council", + "wiki_name": "Sunderland", "wiki_note": "Provide your house number (without quotes) and postcode (wrapped in double quotes with a space).", "LAD24CD": "E08000024" }, @@ -2255,7 +2268,7 @@ "postcode": "GU20 6PN", "skip_get_url": true, "url": "https://asjwsw-wrpsurreyheathmunicipal-live.whitespacews.com/", - "wiki_name": "Surrey Heath Borough Council / Joint Waste Solutions", + "wiki_name": "Surrey Heath", "wiki_note": "Provide your house number in the `house_number` parameter and postcode in the `postcode` parameter.", "LAD24CD": "E07000214" }, @@ -2265,7 +2278,7 @@ "skip_get_url": true, "url": "https://swale.gov.uk/bins-littering-and-the-environment/bins/collection-days", "web_driver": "http://selenium:4444", - "wiki_name": "Swale Borough Council", + "wiki_name": "Swale", "wiki_note": "Provide your house number in the `house_number` parameter and postcode in the `postcode` parameter.", "LAD24CD": "E07000113" }, @@ -2274,7 +2287,7 @@ "skip_get_url": true, "uprn": "100100324821", "url": "https://www1.swansea.gov.uk/recyclingsearch/", - "wiki_name": "Swansea Council", + "wiki_name": "Swansea", "wiki_note": "Provide your UPRN and postcode. Find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "W06000011" }, @@ -2282,7 +2295,7 @@ "uprn": "10022793351", "url": "https://www.swindon.gov.uk", "wiki_command_url_override": "https://www.swindon.gov.uk", - "wiki_name": "Swindon Borough Council", + "wiki_name": "Swindon", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E06000030" }, @@ -2290,7 +2303,7 @@ "skip_get_url": true, "uprn": "100012835362", "url": "http://lite.tameside.gov.uk/BinCollections/CollectionService.svc/GetBinCollection", - "wiki_name": "Tameside Metropolitan Borough Council", + "wiki_name": "Tameside", "wiki_note": "Provide your UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E08000008" }, @@ -2298,7 +2311,7 @@ "skip_get_url": true, "uprn": "100062160432", "url": "https://tdcws01.tandridge.gov.uk/TDCWebAppsPublic/tfaBranded/408?utm_source=pressrelease&utm_medium=smposts&utm_campaign=check_my_bin_day", - "wiki_name": "Tandridge District Council", + "wiki_name": "Tandridge", "wiki_note": "Provide your UPRN. Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to locate it.", "LAD24CD": "E07000215" }, @@ -2307,7 +2320,7 @@ "url": "https://www.google.co.uk", "web_driver": "http://selenium:4444", "wiki_command_url_override": "https://www.google.co.uk", - "wiki_name": "Teignbridge Council", + "wiki_name": "Teignbridge", "wiki_note": "Provide Google as the URL as the real URL breaks the integration. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000045" }, @@ -2315,7 +2328,7 @@ "skip_get_url": true, "uprn": "000452015013", "url": "https://dac.telford.gov.uk/bindayfinder/", - "wiki_name": "Telford and Wrekin Council", + "wiki_name": "Telford and Wrekin", "wiki_note": "Provide your UPRN. Find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000020" }, @@ -2325,7 +2338,7 @@ "uprn": "100090604247", "url": "https://tendring-self.achieveservice.com/en/service/Rubbish_and_recycling_collection_days", "web_driver": "http://selenium:4444", - "wiki_name": "Tendring District Council", + "wiki_name": "Tendring", "wiki_note": "Provide your UPRN and postcode. Find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000076" }, @@ -2334,14 +2347,15 @@ "skip_get_url": true, "uprn": "200010012019", "url": "https://testvalley.gov.uk/wasteandrecycling/when-are-my-bins-collected", - "wiki_name": "Test Valley Borough Council", + "wiki_name": "Test Valley", "wiki_note": "Provide your UPRN and postcode. Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000093" }, "ThanetDistrictCouncil": { "uprn": "100061111858", "url": "https://www.thanet.gov.uk", - "wiki_name": "Thanet District Council", + "web_driver": "http://selenium:4444", + "wiki_name": "Thanet", "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000114" }, @@ -2351,7 +2365,7 @@ "uprn": "100080913662", "url": "https://my.threerivers.gov.uk/en/AchieveForms/?mode=fill&consentMessage=yes&form_uri=sandbox-publish://AF-Process-52df96e3-992a-4b39-bba3-06cfaabcb42b/AF-Stage-01ee28aa-1584-442c-8d1f-119b6e27114a/definition.json&process=1&process_uri=sandbox-processes://AF-Process-52df96e3-992a-4b39-bba3-06cfaabcb42b&process_id=AF-Process-52df96e3-992a-4b39-bba3-06cfaabcb42b&noLoginPrompt=1", "web_driver": "http://selenium:4444", - "wiki_name": "Three Rivers District Council", + "wiki_name": "Three Rivers", "wiki_note": "Provide your UPRN and postcode. Find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000102" }, @@ -2360,7 +2374,7 @@ "postcode": "Round A", "skip_get_url": true, "url": "https://www.thurrock.gov.uk", - "wiki_name": "Thurrock Council", + "wiki_name": "Thurrock", "wiki_note": "Use the House Number field to pass the DAY of the week for your collections. [Monday/Tuesday/Wednesday/Thursday/Friday]. Use the 'postcode' field to pass the ROUND (wrapped in quotes) for your collections. [Round A/Round B].", "LAD24CD": "E06000034" }, @@ -2369,15 +2383,16 @@ "skip_get_url": true, "uprn": "10002914589", "url": "https://www.tmbc.gov.uk/", - "wiki_name": "Tonbridge and Malling Borough Council", + "wiki_name": "Tonbridge and Malling", "wiki_note": "Provide your UPRN and postcode.", "LAD24CD": "E07000115" }, "TorbayCouncil": { "skip_get_url": true, - "uprn": "10024000295", + "uprn": "10000016984", + "postcode": "TQ1 1AG", "url": "https://www.torbay.gov.uk/recycling/bin-collections/", - "wiki_name": "Torbay Council", + "wiki_name": "Torbay", "wiki_note": "Provide your UPRN. Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find it.", "LAD24CD": "E06000027" }, @@ -2385,7 +2400,7 @@ "skip_get_url": true, "uprn": "10091078762", "url": "https://collections-torridge.azurewebsites.net/WebService2.asmx", - "wiki_name": "Torridge District Council", + "wiki_name": "Torridge", "wiki_note": "Provide your UPRN.", "LAD24CD": "E07000046" }, @@ -2393,7 +2408,7 @@ "uprn": "10090058289", "url": "https://tunbridgewells.gov.uk", "wiki_command_url_override": "https://tunbridgewells.gov.uk", - "wiki_name": "Tunbridge Wells Council", + "wiki_name": "Tunbridge Wells", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E07000116" }, @@ -2404,7 +2419,7 @@ "uprn": "100090643434", "url": "https://bins.uttlesford.gov.uk/", "web_driver": "http://selenium:4444", - "wiki_name": "Uttlesford District Council", + "wiki_name": "Uttlesford", "wiki_note": "Provide your full address in the `house_number` parameter and your postcode in the `postcode` parameter.", "LAD24CD": "E07000077" }, @@ -2412,7 +2427,7 @@ "skip_get_url": true, "uprn": "64029020", "url": "https://www.valeofglamorgan.gov.uk/en/living/Recycling-and-Waste/", - "wiki_name": "Vale of Glamorgan Council", + "wiki_name": "The Vale of Glamorgan", "wiki_note": "Provide your UPRN. Find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "W06000014" }, @@ -2421,7 +2436,7 @@ "skip_get_url": true, "uprn": "100121391443", "url": "https://eform.whitehorsedc.gov.uk/ebase/BINZONE_DESKTOP.eb", - "wiki_name": "Vale of White Horse Council", + "wiki_name": "Vale of White Horse", "wiki_note": "Provide your UPRN.", "LAD24CD": "E07000180" }, @@ -2431,7 +2446,7 @@ "url": "https://www.wakefield.gov.uk/where-i-live/?uprn=63035490&a=115%20Elizabeth%20Drive%20Castleford%20WF10%203RR&usrn=41801243&e=445418&n=426091&p=WF10%203RR", "web_driver": "http://selenium:4444", "wiki_command_url_override": "https://www.wakefield.gov.uk/where-i-live/?uprn=XXXXXXXXXXX&a=XXXXXXXXXXX&usrn=XXXXXXXXXXX&e=XXXXXXXXXXX&n=XXXXXXXXXXX&p=XXXXXXXXXXX", - "wiki_name": "Wakefield City Council", + "wiki_name": "Wakefield", "wiki_note": "Follow the instructions [here](https://www.wakefield.gov.uk/where-i-live/) until you get the page that includes a 'Bin Collections' section, then copy the URL and replace the URL in the command.", "LAD24CD": "E08000036" }, @@ -2439,7 +2454,7 @@ "uprn": "100071080513", "url": "https://cag.walsall.gov.uk/", "wiki_command_url_override": "https://cag.walsall.gov.uk/", - "wiki_name": "Walsall Council", + "wiki_name": "Walsall", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E08000030" }, @@ -2458,7 +2473,7 @@ "uprn": "100022684035", "url": "https://www.wandsworth.gov.uk", "wiki_command_url_override": "https://www.wandsworth.gov.uk", - "wiki_name": "Wandsworth Council", + "wiki_name": "Wandsworth", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E09000032" }, @@ -2466,14 +2481,14 @@ "uprn": "10094964379", "url": "https://www.warrington.gov.uk", "wiki_command_url_override": "https://www.warrington.gov.uk", - "wiki_name": "Warrington Borough Council", + "wiki_name": "Warrington", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E06000007" }, "WarwickDistrictCouncil": { "url": "https://estates7.warwickdc.gov.uk/PropertyPortal/Property/Recycling/100070263793", "wiki_command_url_override": "https://estates7.warwickdc.gov.uk/PropertyPortal/Property/Recycling/XXXXXXXX", - "wiki_name": "Warwick District Council", + "wiki_name": "Warwick", "wiki_note": "Replace `XXXXXXXX` with your UPRN.", "LAD24CD": "E07000222" }, @@ -2481,7 +2496,7 @@ "uprn": "100080942183", "url": "https://www.watford.gov.uk", "wiki_command_url_override": "https://www.watford.gov.uk", - "wiki_name": "Watford Borough Council", + "wiki_name": "Watford", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000103" }, @@ -2490,7 +2505,7 @@ "postcode": "GU9 9QG", "skip_get_url": true, "url": "https://wav-wrp.whitespacews.com/", - "wiki_name": "Waverley Borough Council", + "wiki_name": "Waverley", "wiki_note": "Follow the instructions [here](https://wav-wrp.whitespacews.com/#!) until you get the page that shows your next scheduled collections. Then take the number from `pIndex=NUMBER` in the URL and pass it as the `-n` parameter along with your postcode in `-p`.", "LAD24CD": "E07000216" }, @@ -2498,7 +2513,7 @@ "skip_get_url": true, "uprn": "10033413624", "url": "https://www.wealden.gov.uk/recycling-and-waste/bin-search/", - "wiki_name": "Wealden District Council", + "wiki_name": "Wealden", "wiki_note": "Provide your UPRN. Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find it.", "LAD24CD": "E07000065" }, @@ -2507,7 +2522,7 @@ "postcode": "AL8 6HQ", "uprn": "100080982825", "url": "https://www.welhat.gov.uk/xfp/form/214", - "wiki_name": "Welhat Council", + "wiki_name": "Welwyn Hatfield", "wiki_note": "Provide your UPRN and postcode." }, "WestBerkshireCouncil": { @@ -2516,14 +2531,14 @@ "skip_get_url": true, "url": "https://www.westberks.gov.uk/binday", "web_driver": "http://selenium:4444", - "wiki_name": "West Berkshire Council", + "wiki_name": "West Berkshire", "wiki_note": "Provide your house number in the `house_number` parameter and postcode in the `postcode` parameter.", "LAD24CD": "E06000037" }, "WestDunbartonshireCouncil": { "uprn": "129001383", "url": "https://www.west-dunbarton.gov.uk/", - "wiki_name": "West Dunbartonshire Council", + "wiki_name": "West Dunbartonshire", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "S12000039" }, @@ -2531,7 +2546,7 @@ "postcode": "WN8 0HR", "uprn": "10012343339", "url": "https://www.westlancs.gov.uk", - "wiki_name": "West Lancashire Borough Council", + "wiki_name": "West Lancashire", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000127" }, @@ -2540,7 +2555,7 @@ "postcode": "LN8 3AX", "skip_get_url": true, "url": "https://www.west-lindsey.gov.uk/", - "wiki_name": "West Lindsey District Council", + "wiki_name": "West Lindsey", "wiki_note": "Provide your house name/number in the `house_number` parameter, and postcode in the `postcode` parameter, both wrapped in double quotes. If multiple results are returned, the first will be used.", "LAD24CD": "E07000142" }, @@ -2550,7 +2565,7 @@ "skip_get_url": true, "url": "https://www.westlothian.gov.uk/", "web_driver": "http://selenium:4444", - "wiki_name": "West Lothian Council", + "wiki_name": "West Lothian", "wiki_note": "Provide your house name/number in the `house_number` parameter (wrapped in double quotes) and your postcode in the `postcode` parameter.", "LAD24CD": "S12000040" }, @@ -2558,7 +2573,7 @@ "uprn": "100110353478", "url": "https://www.westmorlandandfurness.gov.uk/", "wiki_command_url_override": "https://www.westmorlandandfurness.gov.uk/", - "wiki_name": "West Morland and Furness Council", + "wiki_name": "Westmorland and Furness", "wiki_note": "Provide your UPRN. You can find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000064" }, @@ -2566,7 +2581,7 @@ "skip_get_url": true, "uprn": "28056796", "url": "https://www.westnorthants.gov.uk", - "wiki_name": "West Northamptonshire Council", + "wiki_name": "West Northamptonshire", "wiki_note": "Provide your UPRN. You can find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000062" }, @@ -2576,7 +2591,7 @@ "skip_get_url": true, "url": "https://community.westoxon.gov.uk/s/waste-collection-enquiry", "web_driver": "http://selenium:4444", - "wiki_name": "West Oxfordshire District Council", + "wiki_name": "West Oxfordshire", "wiki_note": "Provide your house number in the `house_number` parameter and your postcode in the `postcode` parameter.", "LAD24CD": "E07000181" }, @@ -2585,7 +2600,7 @@ "skip_get_url": true, "uprn": "10009739960", "url": "https://maps.westsuffolk.gov.uk/MyWestSuffolk.aspx", - "wiki_name": "West Suffolk Council", + "wiki_name": "West Suffolk", "wiki_note": "Provide your UPRN and postcode. You can find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000245" }, @@ -2594,7 +2609,7 @@ "skip_get_url": true, "uprn": "010093942934", "url": "https://apps.wigan.gov.uk/MyNeighbourhood/", - "wiki_name": "Wigan Borough Council", + "wiki_name": "Wigan", "wiki_note": "Provide your UPRN and postcode. Find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E08000010" }, @@ -2603,7 +2618,7 @@ "skip_get_url": true, "uprn": "100120982570", "url": "https://ilambassadorformsprod.azurewebsites.net/wastecollectiondays/index", - "wiki_name": "Wiltshire Council", + "wiki_name": "Wiltshire", "wiki_note": "Provide your UPRN and postcode. Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E06000054" }, @@ -2614,7 +2629,7 @@ "skip_get_url": false, "url": "https://iportal.itouchvision.com/icollectionday/collection-day", "web_driver": "http://selenium:4444", - "wiki_name": "Winchester City Council", + "wiki_name": "Winchester", "wiki_note": "Provide your house name/number in the `house_number` parameter (wrapped in double quotes) and your postcode in the `postcode` parameter.", "LAD24CD": "E07000094" }, @@ -2623,7 +2638,7 @@ "uprn": "100080371082", "url": "https://forms.rbwm.gov.uk/bincollections?uprn=", "web_driver": "http://selenium:4444", - "wiki_name": "Windsor and Maidenhead Council", + "wiki_name": "Windsor and Maidenhead", "wiki_note": "Provide your UPRN. You can find it using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E06000040" }, @@ -2631,7 +2646,7 @@ "uprn": "Vernon Avenue,Seacombe", "url": "https://www.wirral.gov.uk", "wiki_command_url_override": "https://www.wirral.gov.uk", - "wiki_name": "Wirral Council", + "wiki_name": "Wirral", "wiki_note": "In the `uprn` field, enter your street name and suburb separated by a comma (e.g., 'Vernon Avenue,Seacombe').", "LAD24CD": "E08000015" }, @@ -2640,7 +2655,7 @@ "postcode": "GU21 4JY", "skip_get_url": true, "url": "https://asjwsw-wrpwokingmunicipal-live.whitespacews.com/", - "wiki_name": "Woking Borough Council / Joint Waste Solutions", + "wiki_name": "Woking", "wiki_note": "Provide your house number in the `house_number` parameter and postcode in the `postcode` parameter. This works with all collection areas that use Joint Waste Solutions.", "LAD24CD": "E07000217" }, @@ -2650,7 +2665,7 @@ "skip_get_url": true, "url": "https://www.wokingham.gov.uk/rubbish-and-recycling/waste-collection/find-your-bin-collection-day", "web_driver": "http://selenium:4444", - "wiki_name": "Wokingham Borough Council", + "wiki_name": "Wokingham", "wiki_note": "Provide your house number in the `house_number` parameter and postcode in the `postcode` parameter.", "LAD24CD": "E06000041" }, @@ -2658,7 +2673,7 @@ "postcode": "WV3 9NZ", "uprn": "100071205205", "url": "https://www.wolverhampton.gov.uk", - "wiki_name": "Wolverhampton City Council", + "wiki_name": "Wolverhampton", "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN.", "LAD24CD": "E08000031" }, @@ -2666,7 +2681,7 @@ "uprn": "100120650345", "url": "https://www.Worcester.gov.uk", "wiki_command_url_override": "https://www.Worcester.gov.uk", - "wiki_name": "Worcester City Council", + "wiki_name": "Worcester", "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN.", "LAD24CD": "E07000237" }, @@ -2677,7 +2692,7 @@ "skip_get_url": true, "url": "https://www.wrexham.gov.uk/service/when-are-my-bins-collected", "web_driver": "http://selenium:4444", - "wiki_name": "Wrexham County Borough Council", + "wiki_name": "Wrexham", "wiki_note": "Provide your house number in the `house_number` parameter and postcode in the `postcode` parameter.", "LAD24CD": "W06000006" }, @@ -2687,7 +2702,7 @@ "uprn": "100120716273", "url": "https://selfservice.wychavon.gov.uk/wdcroundlookup/wdc_search.jsp", "web_driver": "http://selenium:4444", - "wiki_name": "Wychavon District Council", + "wiki_name": "Wychavon", "wiki_note": "Provide your UPRN and postcode. Find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000238" }, @@ -2695,7 +2710,7 @@ "skip_get_url": true, "uprn": "10003519994", "url": "https://www.wyre.gov.uk/bins-rubbish-recycling", - "wiki_name": "Wyre Council", + "wiki_name": "Wyre", "wiki_note": "Provide your UPRN. Find your UPRN using [FindMyAddress](https://www.findmyaddress.co.uk/search).", "LAD24CD": "E07000128" }, @@ -2703,7 +2718,7 @@ "house_number": "Monday", "skip_get_url": true, "url": "https://www.wyreforestdc.gov.uk", - "wiki_name": "Wyre Forest District Council", + "wiki_name": "Wyre Forest", "wiki_note": "Use the House Number field to pass the DAY of the week for your collections. [Monday/Tuesday/Wednesday/Thursday/Friday/Saturday/Sunday].", "LAD24CD": "E07000239" }, @@ -2711,7 +2726,7 @@ "skip_get_url": true, "uprn": "100050535540", "url": "https://waste-api.york.gov.uk/api/Collections/GetBinCollectionDataForUprn/", - "wiki_name": "York Council", + "wiki_name": "York", "wiki_note": "Provide your UPRN.", "LAD24CD": "E06000014" } diff --git a/uk_bin_collection/uk_bin_collection/councils/ArgyllandButeCouncil.py b/uk_bin_collection/uk_bin_collection/councils/ArgyllandButeCouncil.py index 45a89ee51a..68907c6830 100644 --- a/uk_bin_collection/uk_bin_collection/councils/ArgyllandButeCouncil.py +++ b/uk_bin_collection/uk_bin_collection/councils/ArgyllandButeCouncil.py @@ -8,8 +8,6 @@ # import the wonderful Beautiful Soup and the URL grabber - - class CouncilClass(AbstractGetBinDataClass): """ Concrete classes have to implement all abstract operations of the diff --git a/uk_bin_collection/uk_bin_collection/councils/BrentCouncil.py b/uk_bin_collection/uk_bin_collection/councils/BrentCouncil.py index 7252eeae75..d93d35b145 100644 --- a/uk_bin_collection/uk_bin_collection/councils/BrentCouncil.py +++ b/uk_bin_collection/uk_bin_collection/councils/BrentCouncil.py @@ -74,42 +74,56 @@ def parse_data(self, page: str, **kwargs) -> dict: ) if service_details: - - # Extract next collection date + # Extract next collection date only next_collection_row = service_details.find( "dt", string="Next collection" ) - next_collection = ( - next_collection_row.find_next_sibling("dd").get_text( - strip=True - ) - if next_collection_row - else "Unknown" - ) - - # Parse dates into standard dd/mm/yyyy format - next_collection_date = datetime.strptime( - remove_ordinal_indicator_from_date_string(next_collection), - "%A, %d %B", - ) - - if (datetime.now().month == 12) and ( - next_collection.month == 1 - ): - next_collection_date = next_collection_date.replace( - year=next_year + if next_collection_row: + next_collection = next_collection_row.find_next_sibling( + "dd" + ).get_text(strip=True) + + # Remove the adjusted collection time message + if ( + "(this collection has been adjusted from its usual time)" + in next_collection + ): + next_collection = next_collection.replace( + "(this collection has been adjusted from its usual time)", + "", + ).strip() + + # Parse date from format like "Wednesday, 7th May" + next_collection = remove_ordinal_indicator_from_date_string( + next_collection ) - else: - next_collection_date = next_collection_date.replace( - year=current_year - ) - - dict_data = { - "type": collection_type.strip(), - "collectionDate": next_collection_date.strftime( - date_format - ), - } - data["bins"].append(dict_data) + try: + next_collection_date = datetime.strptime( + next_collection, "%A, %d %B" + ) + + # Handle year rollover + if ( + datetime.now().month == 12 + and next_collection_date.month == 1 + ): + next_collection_date = next_collection_date.replace( + year=next_year + ) + else: + next_collection_date = next_collection_date.replace( + year=current_year + ) + + dict_data = { + "type": collection_type.strip(), + "collectionDate": next_collection_date.strftime( + date_format + ), + } + data["bins"].append(dict_data) + print(dict_data) + except ValueError as e: + print(f"Error parsing date {next_collection}: {e}") return data diff --git a/uk_bin_collection/uk_bin_collection/councils/MaidstoneBoroughCouncil.py b/uk_bin_collection/uk_bin_collection/councils/MaidstoneBoroughCouncil.py new file mode 100644 index 0000000000..571981f81f --- /dev/null +++ b/uk_bin_collection/uk_bin_collection/councils/MaidstoneBoroughCouncil.py @@ -0,0 +1,115 @@ +import time +from datetime import datetime + +from bs4 import BeautifulSoup +from selenium.webdriver.common.by import By +from selenium.webdriver.support import expected_conditions as EC +from selenium.webdriver.support.ui import Select +from selenium.webdriver.support.wait import WebDriverWait + +from uk_bin_collection.uk_bin_collection.common import * +from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass + +# import the wonderful Beautiful Soup and the URL grabber + + +class CouncilClass(AbstractGetBinDataClass): + """ + Concrete classes have to implement all abstract operations of the + base class. They can also override some operations with a default + implementation. + """ + + def parse_data(self, page: str, **kwargs) -> dict: + driver = None + try: + page = "https://my.maidstone.gov.uk/service/Find-your-bin-day" + bin_data = {"bins": []} + user_paon = kwargs.get("paon") + user_postcode = kwargs.get("postcode") + web_driver = kwargs.get("web_driver") + headless = kwargs.get("headless") + check_postcode(user_postcode) + + # Create Selenium webdriver + driver = create_webdriver(web_driver, headless, None, __name__) + driver.get(page) + + iframe_presense = WebDriverWait(driver, 30).until( + EC.presence_of_element_located((By.ID, "fillform-frame-1")) + ) + driver.switch_to.frame(iframe_presense) + + wait = WebDriverWait(driver, 60) + + # Postal code input + inputElement_postcodesearch = wait.until( + EC.element_to_be_clickable((By.NAME, "postcode")) + ) + inputElement_postcodesearch.send_keys(user_postcode) + + # Wait for the 'Select address' dropdown to be updated + dropdown_select = wait.until( + EC.presence_of_element_located((By.XPATH, "//span[contains(text(), 'Select...')]")) + ) + dropdown_select.click() + + dropdown = wait.until( + EC.element_to_be_clickable((By.XPATH, f"//div[contains(text(), ' {user_paon}')]")) + ) + dropdown.click() + + # Wait for 'Searching for...' to be added to page + WebDriverWait(driver, timeout=15).until( + EC.text_to_be_present_in_element( + (By.CSS_SELECTOR, "span[data-name=html1]"), "Searching" + ) + ) + + # Wait for 'Searching for...' to be removed from page + WebDriverWait(driver, timeout=15).until( + EC.none_of( + EC.text_to_be_present_in_element( + (By.CSS_SELECTOR, "span[data-name=html1]"), "Searching" + ) + ) + ) + + # Even then it can still be adding data to the page... + time.sleep(5) + + soup = BeautifulSoup(driver.page_source, features="html.parser") + + # This is ugly but there is literally no consistency to the HTML + def is_a_collection_date(t): + return any("Next collection" in c for c in t.children) + + for next_collection in soup.find_all(is_a_collection_date): + bin_info = list( + next_collection.parent.select_one("div:nth-child(1)").children + ) + if not bin_info: + continue + bin = bin_info[0].get_text() + date = next_collection.select_one("strong").get_text(strip=True) + bin_date = datetime.strptime(date, "%d %b %Y") + dict_data = { + "type": bin, + "collectionDate": bin_date.strftime(date_format), + } + bin_data["bins"].append(dict_data) + + bin_data["bins"].sort( + key=lambda x: datetime.strptime(x.get("collectionDate"), date_format) + ) + + except Exception as e: + # Here you can log the exception if needed + print(f"An error occurred: {e}") + # Optionally, re-raise the exception if you want it to propagate + raise + finally: + # This block ensures that the driver is closed regardless of an exception + if driver: + driver.quit() + return bin_data diff --git a/uk_bin_collection/uk_bin_collection/councils/MeltonBoroughCouncil.py b/uk_bin_collection/uk_bin_collection/councils/MeltonBoroughCouncil.py new file mode 100644 index 0000000000..9aed04a3a8 --- /dev/null +++ b/uk_bin_collection/uk_bin_collection/councils/MeltonBoroughCouncil.py @@ -0,0 +1,82 @@ +import json +from datetime import datetime, timedelta + +import requests +from bs4 import BeautifulSoup + +from uk_bin_collection.uk_bin_collection.common import * +from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass + + +# import the wonderful Beautiful Soup and the URL grabber +class CouncilClass(AbstractGetBinDataClass): + """ + Concrete classes have to implement all abstract operations of the + base class. They can also override some operations with a default + implementation. + """ + + def extract_dates(self, date_string: str) -> list: + """ + Extract dates from strings like "01/05/2025, and then 15/05/2025" + Returns list of datetime objects + """ + date_string = date_string.replace("and then", ",") + date_parts = [part.strip() for part in date_string.split(",") if part.strip()] + + dates = [] + for part in date_parts: + try: + date_obj = datetime.strptime(part, "%d/%m/%Y") + dates.append(date_obj) + except ValueError: + continue + + return dates + + def parse_data(self, page: str, **kwargs) -> dict: + user_uprn = kwargs.get("uprn") + check_uprn(user_uprn) + + url = f"https://my.melton.gov.uk/set-location?id={user_uprn}&redirect=collections&rememberloc=" + response = requests.get(url) + soup = BeautifulSoup(response.text, "html.parser") + + collections = [] + + # Find all box items + box_items = soup.find_all("li", class_=lambda x: x and x.startswith("box-item")) + + for box in box_items: + bin_type = box.find("h2") + if ( + bin_type and "Missed bin" not in bin_type.text + ): # Skip the "Missed bin" section + bin_name = bin_type.text.strip() + + # Find the strong tag containing dates + dates_element = box.find("strong") + if dates_element: + dates_text = dates_element.text.strip() + # Use self.extract_dates instead of extract_dates + collection_dates = self.extract_dates(dates_text) + + # Add each date for this bin type to collections + for date in collection_dates: + collections.append((bin_name, date)) + + # Sort the collections by date + ordered_data = sorted(collections, key=lambda x: x[1]) + + # Format the data as required + data = {"bins": []} + for item in ordered_data: + dict_data = { + "type": item[0], + "collectionDate": item[1].strftime(date_format), + } + data["bins"].append(dict_data) + + print(json.dumps(data, indent=2)) + + return data diff --git a/uk_bin_collection/uk_bin_collection/councils/MorayCouncil.py b/uk_bin_collection/uk_bin_collection/councils/MorayCouncil.py index db0aaa4cda..9e3378bb56 100644 --- a/uk_bin_collection/uk_bin_collection/councils/MorayCouncil.py +++ b/uk_bin_collection/uk_bin_collection/councils/MorayCouncil.py @@ -14,52 +14,70 @@ class CouncilClass(AbstractGetBinDataClass): """ def parse_data(self, page: str, **kwargs) -> dict: - user_uprn = kwargs.get("uprn") + print(f"Using UPRN: {user_uprn}") # Debug bindata = {"bins": []} user_uprn = user_uprn.zfill(8) - year = datetime.today().year - response = requests.get( - f"https://bindayfinder.moray.gov.uk/cal_{year}_view.php", - params={"id": user_uprn}, - ) - if response.status_code != 200: - # fall back to known good calendar URL - response = requests.get( - "https://bindayfinder.moray.gov.uk/cal_2024_view.php", - params={"id": user_uprn}, - ) + url = f"https://bindayfinder.moray.gov.uk/disp_bins.php?id={user_uprn}" + + # year = datetime.today().year + # url = f"https://bindayfinder.moray.gov.uk/cal_{year}_view.php" + print(f"Trying URL: {url}") # Debug + + response = requests.get(url) + print(f"Response status code: {response.status_code}") # Debug + + # if response.status_code != 200: + # fallback_url = "https://bindayfinder.moray.gov.uk/cal_2024_view.php" + # print(f"Falling back to: {fallback_url}") # Debug + # response = requests.get( + # fallback_url, + # params={"id": user_uprn}, + # ) + # print(f"Fallback response status: {response.status_code}") # Debug + soup = BeautifulSoup(response.text, "html.parser") - bin_types = { - "G": "Green", - "B": "Brown", - "P": "Purple", - "C": "Blue", - "O": "Orange", - } - - for month_container in soup.findAll("div", class_="month-container"): - for div in month_container.findAll("div"): - if "month-header" in div["class"]: - month = div.text - elif div["class"] and div["class"][0] in ["B", "GPOC", "GBPOC"]: - bins = div["class"][0] - dom = int(div.text) - for i in bins: + # Find all container_images divs + container_images = soup.find_all("div", class_="container_images") + print(f"Found {len(container_images)} container images") # Debug + + for container in container_images: + # Get bin type from image alt text + img = container.find("img") + if img and img.get("alt"): + # Use the full alt text as one bin type instead of splitting + bin_type = img["alt"] + print(f"Found bin type: {bin_type}") # Debug + + # Get collection date from binz_txt + date_text = container.find("div", class_="binz_txt") + if date_text: + date_str = date_text.text + print(f"Found date text: {date_str}") # Debug + + # Extract just the date portion + import re + + date_match = re.search(r"(\d{1,2}\s+[A-Za-z]+\s+\d{4})", date_str) + if date_match: + date_portion = date_match.group(1) + try: + # Convert the date string to the required format + parsed_date = datetime.strptime(date_portion, "%d %B %Y") + collection_date = parsed_date.strftime("%d/%m/%Y") + print(f"Parsed date: {collection_date}") # Debug + dict_data = { - "type": bin_types.get(i), - "collectionDate": datetime.strptime( - f"{dom} {month} {year}", - "%d %B %Y", - ).strftime("%d/%m/%Y"), + "type": bin_type, + "collectionDate": collection_date, } bindata["bins"].append(dict_data) + except ValueError as e: + print(f"Error parsing date: {e}") # Debug + continue - bindata["bins"].sort( - key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y") - ) - + print(f"Final bindata: {bindata}") # Debug return bindata diff --git a/uk_bin_collection/uk_bin_collection/councils/PembrokeshireCountyCouncil.py b/uk_bin_collection/uk_bin_collection/councils/PembrokeshireCountyCouncil.py new file mode 100644 index 0000000000..fa2718a709 --- /dev/null +++ b/uk_bin_collection/uk_bin_collection/councils/PembrokeshireCountyCouncil.py @@ -0,0 +1,96 @@ +from datetime import datetime + +import bs4.element +from bs4 import BeautifulSoup + +from uk_bin_collection.uk_bin_collection.common import * +from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass + + +class CouncilClass(AbstractGetBinDataClass): + """ + Concrete classes have to implement all abstract operations of the + base class. They can also override some operations with a default + implementation. + """ + + def parse_data(self, page: str, **kwargs) -> dict: + # Make a BeautifulSoup object + soup = BeautifulSoup(page.text, features="html.parser") + + data = {"bins": []} + + # Locate the section containing bin collection data + bin_collection_divs = soup.find_all( + "div", class_="col-6 col-md-4 text-center mb-3" + ) + + if not bin_collection_divs: + raise ValueError("No bin collection data found in the provided HTML.") + + for bin_div in bin_collection_divs: + # Get the image tag first to check if this is a bin collection div + img_tag = bin_div.find("img") + if ( + not img_tag + or not img_tag.get("src") + or "pembrokeshire.gov.uk/images" not in img_tag["src"] + ): + continue + + # Extract bin type - first try the image title + bin_type = None + if img_tag.get("title"): + bin_type = img_tag["title"].strip() + + # If no title, get all text nodes and join them + if not bin_type: + # Get all text nodes that are not within a tag (to exclude the date) + text_nodes = [ + text.strip() + for text in bin_div.find_all(text=True, recursive=True) + if text.strip() + and not isinstance(text.parent, bs4.element.Tag) + or text.parent.name != "strong" + ] + if text_nodes: + bin_type = " ".join(text_nodes).strip() + + if not bin_type: + continue # Skip if we couldn't find a bin type + + # Extract collection date + bin_date_tag = bin_div.find("strong") + if not bin_date_tag: + continue # Skip if no date found + + bin_date = bin_date_tag.text.strip() + + try: + # Parse the date into a datetime object + collection_date = datetime.strptime(bin_date, "%d/%m/%Y") + # Format date back to DD/MM/YYYY format as required by schema + formatted_date = collection_date.strftime("%d/%m/%Y") + except ValueError: + continue # Skip if date parsing fails + + # Append the bin data to the list + dict_data = { + "type": bin_type, + "collectionDate": formatted_date, + } + data["bins"].append(dict_data) + + if not data["bins"]: + raise ValueError( + "No valid bin collection data could be parsed from the HTML." + ) + + # Sort the bins by collection date + data["bins"].sort( + key=lambda x: datetime.strptime(x["collectionDate"], "%d/%m/%Y") + ) + + print(data) + + return data diff --git a/uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py b/uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py index 49fa5e9ba1..57c773204b 100644 --- a/uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py +++ b/uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py @@ -1,4 +1,11 @@ +import time + from bs4 import BeautifulSoup +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.support import expected_conditions as EC +from selenium.webdriver.support.ui import Select, WebDriverWait + from uk_bin_collection.uk_bin_collection.common import * from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass @@ -12,78 +19,128 @@ class CouncilClass(AbstractGetBinDataClass): """ def parse_data(self, page: str, **kwargs) -> dict: - data = {"bins": []} - collections = [] - - user_postcode = kwargs.get("postcode") - user_uprn = kwargs.get("uprn") - - check_uprn(user_uprn) - check_postcode(user_postcode) - - headers = { - "authority": "www.rugby.gov.uk", - "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", - "accept-language": "en-GB,en;q=0.9", - "cache-control": "no-cache", - "content-type": "application/x-www-form-urlencoded", - # 'cookie': 'JSESSIONID=7E90CAB54B649C3DCC7F6B5DA0897C63; COOKIE_SUPPORT=true; GUEST_LANGUAGE_ID=en_GB; AWSELB=D941E98916B5759862ED6C39DA9FB3FD9880491851D200C98112ABEC3223D52B19A2A2C6B37A89D3650D44FA5728FCAFEDE7BB2592D948FFF9C7B18D76C41AF02C308B0F3A2DE17F1585E9959BCE68CC83BC3AC753; CookieControl={"necessaryCookies":[],"optionalCookies":{},"statement":{},"consentDate":1701710876715,"consentExpiry":90,"interactedWith":true,"user":"8FED8810-3C3E-4D50-A9DC-42655030B3B1"}', - "origin": "https://www.rugby.gov.uk", - "pragma": "no-cache", - "referer": "https://www.rugby.gov.uk/check-your-next-bin-day", - "sec-ch-ua": '"Chromium";v="118", "Opera GX";v="104", "Not=A?Brand";v="99"', - "sec-ch-ua-mobile": "?0", - "sec-ch-ua-platform": '"Windows"', - "sec-fetch-dest": "document", - "sec-fetch-mode": "navigate", - "sec-fetch-site": "same-origin", - "sec-fetch-user": "?1", - "upgrade-insecure-requests": "1", - "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.5993.118 Safari/537.36", - } - params = { - "p_p_id": "com_placecube_digitalplace_local_waste_portlet_CollectionDayFinderPortlet", - "p_p_lifecycle": "0", - "p_p_state": "normal", - "p_p_mode": "view", - "_com_placecube_digitalplace_local_waste_portlet_CollectionDayFinderPortlet_mvcRenderCommandName": "/collection_day_finder/get_days", - } - data = { - "_com_placecube_digitalplace_local_waste_portlet_CollectionDayFinderPortlet_formDate": f"{datetime.now().timestamp().__floor__()}", - "_com_placecube_digitalplace_local_waste_portlet_CollectionDayFinderPortlet_postcode": f"{user_postcode}", - "_com_placecube_digitalplace_local_waste_portlet_CollectionDayFinderPortlet_uprn": f"{user_uprn}", - } - - response = requests.post( - "https://www.rugby.gov.uk/check-your-next-bin-day", - params=params, - headers=headers, - data=data, - ) - - soup = BeautifulSoup(response.text, features="html.parser") - soup.prettify() - - table_rows = soup.find("table", {"class": "table"}).find("tbody").find_all("tr") - - for row in table_rows: - row_text = row.text.strip().split("\n") - bin_text = row_text[0].split(" ") - bin_type = " ".join(bin_text[1:]).capitalize() - collections.append( - (bin_type, datetime.strptime(row_text[1], "%A %d %b %Y")) + driver = None + try: + user_postcode = kwargs.get("postcode") + if not user_postcode: + raise ValueError("No postcode provided.") + check_postcode(user_postcode) + + user_uprn = kwargs.get("uprn") + check_uprn(user_uprn) + + headless = kwargs.get("headless") + web_driver = kwargs.get("web_driver") + driver = create_webdriver(web_driver, headless, None, __name__) + page = "https://www.rugby.gov.uk/check-your-next-bin-day" + + driver.get(page) + + wait = WebDriverWait(driver, 60) + accept_cookies_button = wait.until( + EC.element_to_be_clickable( + ( + By.ID, + "ccc-recommended-settings", + ) + ) ) - collections.append( - (bin_type, datetime.strptime(row_text[3], "%A %d %b %Y")) + accept_cookies_button.click() + + postcode_input = WebDriverWait(driver, 10).until( + EC.presence_of_element_located( + ( + By.XPATH, + '//*[@id="_com_placecube_digitalplace_local_waste_portlet_CollectionDayFinderPortlet_postcode"]', + ) + ) + ) + postcode_input.send_keys(user_postcode + Keys.TAB + Keys.ENTER) + + time.sleep(5) + # Wait for address box to be visible + select_address_input = WebDriverWait(driver, 10).until( + EC.presence_of_element_located( + ( + By.ID, + "_com_placecube_digitalplace_local_waste_portlet_CollectionDayFinderPortlet_uprn", + ) + ) + ) + + # Select address based + select = Select(select_address_input) + for option in select.options: + if option.get_attribute("value") == str(user_uprn): + select.select_by_value(str(user_uprn)) + break + else: + raise ValueError(f"UPRN {user_uprn} not found in address options") + + select_address_input.send_keys(Keys.TAB + Keys.ENTER) + + # Wait for the specified table to be present + target_table = WebDriverWait(driver, 10).until( + EC.presence_of_element_located( + ( + By.XPATH, + '//*[@id="portlet_com_placecube_digitalplace_local_waste_portlet_CollectionDayFinderPortlet"]/div/div/div/div/table', + ) + ) + ) + + soup = BeautifulSoup(driver.page_source, "html.parser") + + # Initialize bin data dictionary + bin_data = {"bins": []} + + # Find the table + table = soup.find("table", class_="table") + if table: + # Find all rows in tbody + rows = table.find("tbody").find_all("tr") + + for row in rows: + # Get all cells in the row + cells = row.find_all("td") + if len(cells) >= 4: # Ensure we have enough cells + bin_type = cells[0].text.strip() + next_collection = cells[1].text.strip() + following_collection = cells[3].text.strip() + + # Parse the dates + for collection_date in [next_collection, following_collection]: + try: + # Convert date from "Friday 09 May 2025" format + parsed_date = datetime.strptime( + collection_date, "%A %d %B %Y" + ) + formatted_date = parsed_date.strftime("%d/%m/%Y") + + bin_info = { + "type": bin_type, + "collectionDate": formatted_date, + } + bin_data["bins"].append(bin_info) + except ValueError as e: + print(f"Error parsing date {collection_date}: {e}") + else: + raise ValueError("Collection data table not found") + + # Sort the collections by date + bin_data["bins"].sort( + key=lambda x: datetime.strptime(x["collectionDate"], "%d/%m/%Y") ) - ordered_data = sorted(collections, key=lambda x: x[1]) - data = {"bins": []} - for item in ordered_data: - dict_data = { - "type": item[0], - "collectionDate": item[1].strftime(date_format), - } - data["bins"].append(dict_data) + print(bin_data) - return data + except Exception as e: + # Here you can log the exception if needed + print(f"An error occurred: {e}") + # Optionally, re-raise the exception if you want it to propagate + raise + finally: + # This block ensures that the driver is closed regardless of an exception + if driver: + driver.quit() + return bin_data diff --git a/uk_bin_collection/uk_bin_collection/councils/ThanetDistrictCouncil.py b/uk_bin_collection/uk_bin_collection/councils/ThanetDistrictCouncil.py index cbad92c44f..c108f4c47f 100644 --- a/uk_bin_collection/uk_bin_collection/councils/ThanetDistrictCouncil.py +++ b/uk_bin_collection/uk_bin_collection/councils/ThanetDistrictCouncil.py @@ -1,12 +1,16 @@ +import json import time +from datetime import datetime -import requests +from bs4 import BeautifulSoup +from selenium.webdriver.common.by import By +from selenium.webdriver.support import expected_conditions as EC +from selenium.webdriver.support.ui import WebDriverWait from uk_bin_collection.uk_bin_collection.common import * from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass -# import the wonderful Beautiful Soup and the URL grabber class CouncilClass(AbstractGetBinDataClass): """ Concrete classes have to implement all abstract operations of the @@ -15,37 +19,60 @@ class CouncilClass(AbstractGetBinDataClass): """ def parse_data(self, page: str, **kwargs) -> dict: - user_uprn = kwargs.get("uprn") check_uprn(user_uprn) bindata = {"bins": []} - URI = f"https://www.thanet.gov.uk/wp-content/mu-plugins/collection-day/incl/mu-collection-day-calls.php?pAddress={user_uprn}" + url = f"https://www.thanet.gov.uk/wp-content/mu-plugins/collection-day/incl/mu-collection-day-calls.php?pAddress={user_uprn}" + web_driver = kwargs.get("web_driver") + headless = kwargs.get("headless") + + # Create the Selenium WebDriver + driver = create_webdriver(web_driver, headless, None, __name__) + + try: + print(f"Navigating to URL: {url}") + driver.get(url) + + # Wait for Cloudflare to complete its check + WebDriverWait(driver, 30).until( + lambda d: d.execute_script("return document.readyState") == "complete" + ) + print("Page loaded successfully.") + + # Parse the page source with BeautifulSoup + soup = BeautifulSoup(driver.page_source, "html.parser") - headers = { - "x-requested-with": "XMLHttpRequest", - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36", - } + # Extract the JSON data from the page + print("Extracting bin collection data...") + body_content = soup.find("body").text + if not body_content: + raise ValueError("Expected JSON data not found in the tag.") - # Make the GET request - response = requests.get(URI, headers=headers) + bin_collection = json.loads(body_content) - # Parse the JSON response - bin_collection = response.json() + # Process the bin collection data + for collection in bin_collection: + bin_type = collection["type"] + collection_date = collection["nextDate"].split(" ")[0] - # Loop through each collection in bin_collection - for collection in bin_collection: - bin_type = collection["type"] - collection_date = collection["nextDate"].split(" ")[0] + dict_data = { + "type": bin_type, + "collectionDate": collection_date, + } + bindata["bins"].append(dict_data) - dict_data = { - "type": bin_type, - "collectionDate": collection_date, - } - bindata["bins"].append(dict_data) + # Sort the bins by collection date + bindata["bins"].sort( + key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y") + ) + print(bindata) - bindata["bins"].sort( - key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y") - ) + except Exception as e: + print(f"An error occurred: {e}") + raise + finally: + print("Cleaning up WebDriver...") + driver.quit() return bindata diff --git a/uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py b/uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py index 0a85f347ce..792a5a1018 100644 --- a/uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py +++ b/uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py @@ -1,51 +1,231 @@ +# This script pulls bin collection data from Barking and Dagenham Council +# Example URL: https://www.lbbd.gov.uk/rubbish-recycling/household-bin-collection/check-your-bin-collection-days +import time + +from bs4 import BeautifulSoup +from dateutil.parser import parse +from selenium.common.exceptions import NoSuchElementException, TimeoutException +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.support import expected_conditions as EC +from selenium.webdriver.support.ui import Select +from selenium.webdriver.support.wait import WebDriverWait + from uk_bin_collection.uk_bin_collection.common import * from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass class CouncilClass(AbstractGetBinDataClass): - """ - Concrete classes have to implement all abstract operations of the - base class. They can also override some operations with a default - implementation. - """ def parse_data(self, page: str, **kwargs) -> dict: - uprn = kwargs.get("uprn") - check_uprn(uprn) - - headers = { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8", - "Connection": "keep-alive", - "Host": "online.torbay.gov.uk", - "Origin": "https://www.torbay.gov.uk", - "Referer": "https://www.torbay.gov.uk/", - "sec-ch-ua": '"Chromium";v="110", "Not A(Brand";v="24", "Google Chrome";v="110"', - "sec-ch-ua-mobile": "?0", - "sec-ch-ua-platform": '"Windows"', - "Sec-Fetch-Dest": "empty", - "Sec-Fetch-Mode": "cors", - "Sec-Fetch-Site": "same-site", - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36", - } - requests.packages.urllib3.disable_warnings() - response = requests.get( - f"https://online.torbay.gov.uk/services.bartec/collections?uprn={uprn}", - headers=headers, - ) - if response.status_code != 200: - raise ValueError("No bin data found for provided UPRN.") - json_data = json.loads(response.text) - - data = {"bins": []} - for c in json_data: - dict_data = { - "type": c["Service"].replace("Empty ", "").strip(), - "collectionDate": datetime.strptime( - c["NextCollection"].strip(), "%d %B %Y" - ).strftime(date_format), - } - data["bins"].append(dict_data) + driver = None + try: + data = {"bins": []} + + user_uprn = kwargs.get("uprn") + user_postcode = kwargs.get("postcode") + web_driver = kwargs.get("web_driver") + headless = kwargs.get("headless") + url = kwargs.get("url") + + check_postcode(user_postcode) + + print( + f"Starting parse_data with parameters: postcode={user_postcode}, uprn={user_uprn}" + ) + print( + f"Creating webdriver with: web_driver={web_driver}, headless={headless}" + ) + + driver = create_webdriver(web_driver, headless, None, __name__) + print(f"Navigating to URL: {url}") + driver.get(url) + print("Successfully loaded the page") + + driver.maximize_window() + + WebDriverWait(driver, 10).until( + lambda d: d.execute_script("return document.readyState") == "complete" + ) + + # Handle cookie banner if present + wait = WebDriverWait(driver, 60) + try: + cookie_button = wait.until( + EC.element_to_be_clickable( + ( + By.XPATH, + "/html/body/div[1]/div/div[2]/button[1]", + ) + ), + message="Cookie banner not found", + ) + cookie_button.click() + print("Cookie banner clicked.") + time.sleep(1) # Brief pause to let banner disappear + except (TimeoutException, NoSuchElementException): + print("No cookie banner appeared or selector failed.") + + bin_collection_button = wait.until( + EC.element_to_be_clickable( + ( + By.XPATH, + "/html/body/main/div[4]/div/div[1]/div/div/div/div/div[2]/div/div/div/p/a", + ) + ), + ) + bin_collection_button.click() + + # Save the original window + original_window = driver.current_window_handle + + # Wait for the new window or tab + WebDriverWait(driver, 10).until(EC.number_of_windows_to_be(2)) + + # Loop through until we find a new window handle + for window_handle in driver.window_handles: + if window_handle != original_window: + driver.switch_to.window(window_handle) + break + # Now you're in the new tab and can interact with the postcode input + # Enter postcode + print("Looking for postcode input...") + wait.until(EC.presence_of_element_located((By.ID, "FF1168-text"))) + post_code_input = wait.until( + EC.element_to_be_clickable((By.ID, "FF1168-text")), + message="Postcode input not clickable", + ) + post_code_input.clear() + post_code_input.send_keys(user_postcode) + print(f"Entered postcode: {user_postcode}") + + post_code_input.send_keys(Keys.TAB + Keys.ENTER) + # driver.switch_to.active_element.send_keys(Keys.TAB + Keys.ENTER) + print("Pressed ENTER on Search button") + + # Wait for the dropdown to be clickable + address_select = wait.until( + EC.element_to_be_clickable((By.ID, "FF1168-list")), + message="Address dropdown not found", + ) + + # Click to focus the dropdown + address_select.click() + time.sleep(0.5) # Brief pause to let the dropdown open + + # Get all options + options = address_select.find_elements(By.TAG_NAME, "option") + print(f"Found {len(options)} options in dropdown") + + # Print all options first for debugging + print("\nAvailable options:") + for opt in options: + value = opt.get_attribute("value") + text = opt.text + print(f"Value: '{value}', Text: '{text}'") + + # Try to find our specific UPRN + target_uprn = f"U{user_uprn}|" + print(f"\nLooking for UPRN pattern: {target_uprn}") + + found = False + for option in options: + value = option.get_attribute("value") + if value and target_uprn in value: + print(f"Found matching address with value: {value}") + option.click() + found = True + break + + if not found: + print(f"No matching address found for UPRN: {user_uprn}") + return data + + print("Address selected successfully") + time.sleep(1) # Give time for the selection to take effect + + # Wait for the address selection confirmation to appear + print("Waiting for address selection confirmation...") + WebDriverWait(driver, 10).until( + EC.presence_of_element_located((By.CLASS_NAME, "esbAddressSelected")) + ) + print("Address selection confirmed") + + # Click the Submit button + print("Clicking Submit button...") + submit_button = WebDriverWait(driver, 10).until( + EC.element_to_be_clickable((By.ID, "submit-button")) + ) + submit_button.click() + time.sleep(1) # Brief pause to let the navigation start + + # Wait for the collection details to appear + print("Waiting for collection details to load...") + try: + schedule_list = WebDriverWait(driver, 20).until( + EC.presence_of_element_located((By.ID, "resiCollectionDetails")) + ) + print("Collection details loaded successfully") + except TimeoutException: + print( + "Timeout waiting for collection details - checking if page needs refresh" + ) + driver.refresh() + time.sleep(2) + schedule_list = WebDriverWait(driver, 20).until( + EC.presence_of_element_located((By.ID, "resiCollectionDetails")) + ) + print("Collection details loaded after refresh") + + # Make a BS4 object + print("Parsing page with BeautifulSoup...") + soup = BeautifulSoup(driver.page_source, features="html.parser") + + # Process collection details + print("Looking for collection details in the page...") + + # Find all collection rows + collection_rows = soup.select("#resiCollectionDetails .row.fs-4") + print(f"\nProcessing {len(collection_rows)} collection rows...") + + for row in collection_rows: + try: + # Get the collection service type (e.g., "Domestic Collection Service") + service_type = row.select_one("div.col:nth-child(3)").text.strip() + + # Get the date from the second column + date_text = row.select_one("div[style*='width:360px']").text.strip() + + # Parse the date + parsed_date = parse(date_text, fuzzy=True) + bin_date = parsed_date.strftime("%d/%m/%Y") + + # Extract just the service type without " Collection Service" + bin_type = service_type.replace(" Collection Service", "") + + # Add to data + if bin_type and bin_date: + dict_data = { + "type": bin_type, + "collectionDate": bin_date, + } + data["bins"].append(dict_data) + print(f"Successfully added collection: {dict_data}") + + except Exception as e: + print(f"Error processing collection row: {e}") + continue + + # Debug: Print the complete dict_data + print("\nFinal bin collection data:") + print(data) + + except Exception as e: + print(f"An error occurred: {e}") + raise + finally: + print("Cleaning up webdriver...") + if driver: + driver.quit() return data