prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  [Bug]: Waste type not showing for City of Doncaster  (Green Bin Collection)
  ### I Have A Problem With:
  
  A specific source, The integration in general
  
  ### What's Your Problem
  
  For Doncaster Council the Green bin collection only runs 9months out of 12. Next collection is in early March which can be viewed via the Council bin look-up calendar, but the waste type is not returned on the integration, it only seems to scrape 3 weeks in advance, can this be changed? 
  
  ### Source (if relevant)
  
  doncaster_gov_uk
  
  ### Logs
  
  ```Shell
  no relevant logs
  ```
  
  
  ### Relevant Configuration
  
  ```YAML
  waste_collection_schedule:
      sources:
      - name: doncaster_gov_uk
        args:
          uprn: "xxxxxxx"
  
    - platform: waste_collection_schedule
      name: Bins
      details_format: appointment_types
      leadtime: 90
  #    value_template: VALUE_TEMPLATE
  #    date_template: DATE_TEMPLATE
      add_days_to: true
  #    event_index: EVENT_INDEX
  ```
  
  
  ### Checklist Source Error
  
  - [X] Use the example parameters for your source (often available in the documentation) (don't forget to restart Home Assistant after changing the configuration)
  - [X] Checked that the website of your service provider is still working
  - [ ] Tested my attributes on the service provider website (if possible)
  - [X] I have tested with the latest version of the integration (master) (for HACS in the 3 dot menu of the integration click on "Redownload" and choose master as version)
  
  ### Checklist Sensor Error
  
  - [X] Checked in the Home Assistant Calendar tab if the event names match the types names (if types argument is used)
  
  ### Required
  
  - [X] I have searched past (closed AND opened) issues to see if this bug has already been reported, and it hasn't been.
  - [X] I understand that people give their precious time for free, and thus I've done my very best to make this problem as easy as possible to investigate.
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `custom_components/waste_collection_schedule/waste_collection_schedule/source/doncaster_gov_uk.py`
  Content:
  ```
  1 import re
  2 import requests
  3 import json
  4 from datetime import datetime, timedelta
  5 from waste_collection_schedule import Collection  # type: ignore[attr-defined]
  6 
  7 TITLE = "City of Doncaster Council"
  8 DESCRIPTION = "Source for doncaster.gov.uk services for the City of Doncaster Council, UK."
  9 URL = "https://doncaster.gov.uk"
  10 
  11 TEST_CASES = {
  12     "Test_001": {"uprn": "100050701118"},
  13     "Test_002": {"uprn": "100050753396"},
  14     "Test_003": {"uprn": 100050699118},
  15 }
  16 
  17 ICON_MAP = {
  18     "GREEN": "mdi:leaf",
  19     "RECYCLING": "mdi:recycle",
  20     "BLACK": "mdi:trash-can",
  21     "BULKY": "mdi:fridge",
  22     "RE-USE": "mdi:sofa",
  23 }
  24 
  25 REGEX_DATE = r"\(([0-9]{10})"
  26 
  27 
  28 class Source:
  29     def __init__(self, uprn):
  30         self._uprn = str(uprn).zfill(12)
  31 
  32 
  33     def fetch(self):
  34 
  35         # Query needs start and end epoch dates    
  36         today = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
  37         start = (today - timedelta(weeks=3)).strftime("%s")
  38         end = (today + timedelta(weeks=3)).strftime("%s")
  39         url = f"https://www.doncaster.gov.uk/Compass/PremiseDetail/GetCollectionsForCalendar?UPRN={self._uprn}&Start={start}&End={end}"
  40         # start = start.strftime("%s")
  41         # end = end.strftime("%s")
  42 
  43         s = requests.Session()
  44         r = s.get(url)
  45         data = json.loads(r.text)
  46 
  47         entries = []
  48 
  49         for entry in data["slots"]:
  50             waste_type = entry["title"]
  51             waste_date = entry["end"]
  52             epoch = re.findall(REGEX_DATE, waste_date)
  53             waste_date = datetime.fromtimestamp(int(epoch[0])).date()
  54             entries.append(
  55                 Collection(
  56                     date=waste_date,
  57                     t=waste_type,
  58                     icon=ICON_MAP.get(waste_type.upper()),
  59                 )
  60             )
  61 
  62         return entries
  63
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/source/doncaster_gov_uk.py b/custom_components/waste_collection_schedule/waste_collection_schedule/source/doncaster_gov_uk.py
  --- a/custom_components/waste_collection_schedule/waste_collection_schedule/source/doncaster_gov_uk.py
  +++ b/custom_components/waste_collection_schedule/waste_collection_schedule/source/doncaster_gov_uk.py
  @@ -1,11 +1,14 @@
  -import re
  -import requests
   import json
  +import re
   from datetime import datetime, timedelta
  +
  +import requests
   from waste_collection_schedule import Collection  # type: ignore[attr-defined]
   
   TITLE = "City of Doncaster Council"
  -DESCRIPTION = "Source for doncaster.gov.uk services for the City of Doncaster Council, UK."
  +DESCRIPTION = (
  +    "Source for doncaster.gov.uk services for the City of Doncaster Council, UK."
  +)
   URL = "https://doncaster.gov.uk"
   
   TEST_CASES = {
  @@ -29,13 +32,11 @@
       def __init__(self, uprn):
           self._uprn = str(uprn).zfill(12)
   
  -
       def fetch(self):
  -
  -        # Query needs start and end epoch dates    
  +        # Query needs start and end epoch dates
           today = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
  -        start = (today - timedelta(weeks=3)).strftime("%s")
  -        end = (today + timedelta(weeks=3)).strftime("%s")
  +        start = (today - timedelta(days=365)).strftime("%s")
  +        end = (today + timedelta(days=365)).strftime("%s")
           url = f"https://www.doncaster.gov.uk/Compass/PremiseDetail/GetCollectionsForCalendar?UPRN={self._uprn}&Start={start}&End={end}"
           # start = start.strftime("%s")
           # end = end.strftime("%s")
  
verification_info: {"golden_diff": "diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/source/doncaster_gov_uk.py b/custom_components/waste_collection_schedule/waste_collection_schedule/source/doncaster_gov_uk.py\n--- a/custom_components/waste_collection_schedule/waste_collection_schedule/source/doncaster_gov_uk.py\n+++ b/custom_components/waste_collection_schedule/waste_collection_schedule/source/doncaster_gov_uk.py\n@@ -1,11 +1,14 @@\n-import re\n-import requests\n import json\n+import re\n from datetime import datetime, timedelta\n+\n+import requests\n from waste_collection_schedule import Collection  # type: ignore[attr-defined]\n \n TITLE = \"City of Doncaster Council\"\n-DESCRIPTION = \"Source for doncaster.gov.uk services for the City of Doncaster Council, UK.\"\n+DESCRIPTION = (\n+    \"Source for doncaster.gov.uk services for the City of Doncaster Council, UK.\"\n+)\n URL = \"https://doncaster.gov.uk\"\n \n TEST_CASES = {\n@@ -29,13 +32,11 @@\n     def __init__(self, uprn):\n         self._uprn = str(uprn).zfill(12)\n \n-\n     def fetch(self):\n-\n-        # Query needs start and end epoch dates    \n+        # Query needs start and end epoch dates\n         today = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)\n-        start = (today - timedelta(weeks=3)).strftime(\"%s\")\n-        end = (today + timedelta(weeks=3)).strftime(\"%s\")\n+        start = (today - timedelta(days=365)).strftime(\"%s\")\n+        end = (today + timedelta(days=365)).strftime(\"%s\")\n         url = f\"https://www.doncaster.gov.uk/Compass/PremiseDetail/GetCollectionsForCalendar?UPRN={self._uprn}&Start={start}&End={end}\"\n         # start = start.strftime(\"%s\")\n         # end = end.strftime(\"%s\")\n", "issue": "[Bug]: Waste type not showing for City of Doncaster  (Green Bin Collection)\n### I Have A Problem With:\n\nA specific source, The integration in general\n\n### What's Your Problem\n\nFor Doncaster Council the Green bin collection only runs 9months out of 12. Next collection is in early March which can be viewed via the Council bin look-up calendar, but the waste type is not returned on the integration, it only seems to scrape 3 weeks in advance, can this be changed? \n\n### Source (if relevant)\n\ndoncaster_gov_uk\n\n### Logs\n\n```Shell\nno relevant logs\n```\n\n\n### Relevant Configuration\n\n```YAML\nwaste_collection_schedule:\r\n    sources:\r\n    - name: doncaster_gov_uk\r\n      args:\r\n        uprn: \"xxxxxxx\"\r\n\r\n  - platform: waste_collection_schedule\r\n    name: Bins\r\n    details_format: appointment_types\r\n    leadtime: 90\r\n#    value_template: VALUE_TEMPLATE\r\n#    date_template: DATE_TEMPLATE\r\n    add_days_to: true\r\n#    event_index: EVENT_INDEX\n```\n\n\n### Checklist Source Error\n\n- [X] Use the example parameters for your source (often available in the documentation) (don't forget to restart Home Assistant after changing the configuration)\n- [X] Checked that the website of your service provider is still working\n- [ ] Tested my attributes on the service provider website (if possible)\n- [X] I have tested with the latest version of the integration (master) (for HACS in the 3 dot menu of the integration click on \"Redownload\" and choose master as version)\n\n### Checklist Sensor Error\n\n- [X] Checked in the Home Assistant Calendar tab if the event names match the types names (if types argument is used)\n\n### Required\n\n- [X] I have searched past (closed AND opened) issues to see if this bug has already been reported, and it hasn't been.\n- [X] I understand that people give their precious time for free, and thus I've done my very best to make this problem as easy as possible to investigate.\n", "before_files": [{"content": "import re\nimport requests\nimport json\nfrom datetime import datetime, timedelta\nfrom waste_collection_schedule import Collection  # type: ignore[attr-defined]\n\nTITLE = \"City of Doncaster Council\"\nDESCRIPTION = \"Source for doncaster.gov.uk services for the City of Doncaster Council, UK.\"\nURL = \"https://doncaster.gov.uk\"\n\nTEST_CASES = {\n    \"Test_001\": {\"uprn\": \"100050701118\"},\n    \"Test_002\": {\"uprn\": \"100050753396\"},\n    \"Test_003\": {\"uprn\": 100050699118},\n}\n\nICON_MAP = {\n    \"GREEN\": \"mdi:leaf\",\n    \"RECYCLING\": \"mdi:recycle\",\n    \"BLACK\": \"mdi:trash-can\",\n    \"BULKY\": \"mdi:fridge\",\n    \"RE-USE\": \"mdi:sofa\",\n}\n\nREGEX_DATE = r\"\\(([0-9]{10})\"\n\n\nclass Source:\n    def __init__(self, uprn):\n        self._uprn = str(uprn).zfill(12)\n\n\n    def fetch(self):\n\n        # Query needs start and end epoch dates    \n        today = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)\n        start = (today - timedelta(weeks=3)).strftime(\"%s\")\n        end = (today + timedelta(weeks=3)).strftime(\"%s\")\n        url = f\"https://www.doncaster.gov.uk/Compass/PremiseDetail/GetCollectionsForCalendar?UPRN={self._uprn}&Start={start}&End={end}\"\n        # start = start.strftime(\"%s\")\n        # end = end.strftime(\"%s\")\n\n        s = requests.Session()\n        r = s.get(url)\n        data = json.loads(r.text)\n\n        entries = []\n\n        for entry in data[\"slots\"]:\n            waste_type = entry[\"title\"]\n            waste_date = entry[\"end\"]\n            epoch = re.findall(REGEX_DATE, waste_date)\n            waste_date = datetime.fromtimestamp(int(epoch[0])).date()\n            entries.append(\n                Collection(\n                    date=waste_date,\n                    t=waste_type,\n                    icon=ICON_MAP.get(waste_type.upper()),\n                )\n            )\n\n        return entries\n", "path": "custom_components/waste_collection_schedule/waste_collection_schedule/source/doncaster_gov_uk.py"}], "after_files": [{"content": "import json\nimport re\nfrom datetime import datetime, timedelta\n\nimport requests\nfrom waste_collection_schedule import Collection  # type: ignore[attr-defined]\n\nTITLE = \"City of Doncaster Council\"\nDESCRIPTION = (\n    \"Source for doncaster.gov.uk services for the City of Doncaster Council, UK.\"\n)\nURL = \"https://doncaster.gov.uk\"\n\nTEST_CASES = {\n    \"Test_001\": {\"uprn\": \"100050701118\"},\n    \"Test_002\": {\"uprn\": \"100050753396\"},\n    \"Test_003\": {\"uprn\": 100050699118},\n}\n\nICON_MAP = {\n    \"GREEN\": \"mdi:leaf\",\n    \"RECYCLING\": \"mdi:recycle\",\n    \"BLACK\": \"mdi:trash-can\",\n    \"BULKY\": \"mdi:fridge\",\n    \"RE-USE\": \"mdi:sofa\",\n}\n\nREGEX_DATE = r\"\\(([0-9]{10})\"\n\n\nclass Source:\n    def __init__(self, uprn):\n        self._uprn = str(uprn).zfill(12)\n\n    def fetch(self):\n        # Query needs start and end epoch dates\n        today = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)\n        start = (today - timedelta(days=365)).strftime(\"%s\")\n        end = (today + timedelta(days=365)).strftime(\"%s\")\n        url = f\"https://www.doncaster.gov.uk/Compass/PremiseDetail/GetCollectionsForCalendar?UPRN={self._uprn}&Start={start}&End={end}\"\n        # start = start.strftime(\"%s\")\n        # end = end.strftime(\"%s\")\n\n        s = requests.Session()\n        r = s.get(url)\n        data = json.loads(r.text)\n\n        entries = []\n\n        for entry in data[\"slots\"]:\n            waste_type = entry[\"title\"]\n            waste_date = entry[\"end\"]\n            epoch = re.findall(REGEX_DATE, waste_date)\n            waste_date = datetime.fromtimestamp(int(epoch[0])).date()\n            entries.append(\n                Collection(\n                    date=waste_date,\n                    t=waste_type,\n                    icon=ICON_MAP.get(waste_type.upper()),\n                )\n            )\n\n        return entries\n", "path": "custom_components/waste_collection_schedule/waste_collection_schedule/source/doncaster_gov_uk.py"}]}