prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Turkuvaz Plugin missing Streams
  Hi,
  
  first of all to be sure installed Streamlink 2.0.0 via Python3 again.
  
  After that tested all streams one by one with the turkuvaz.py
  
  Most of them are working, only 2 of 9 channels missing, "error: No plugin can handle URL"
  
  A2 and A Haber TV:
  
  https://www.atv.com.tr/a2tv/canli-yayin
  https://www.ahaber.com.tr/video/canli-yayin
  
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `src/streamlink/plugins/turkuvaz.py`
  Content:
  ```
  1 import logging
  2 import re
  3 
  4 from streamlink.plugin import Plugin
  5 from streamlink.plugin.api import useragents, validate
  6 from streamlink.stream import HLSStream
  7 
  8 log = logging.getLogger(__name__)
  9 
  10 
  11 class Turkuvaz(Plugin):
  12     """
  13     Plugin to support ATV/A2TV Live streams from www.atv.com.tr and www.a2tv.com.tr
  14     """
  15 
  16     _url_re = re.compile(r"""(?x)https?://(?:www\.)?
  17     (?:
  18         (?:
  19             (atvavrupa)\.tv
  20             |
  21             (atv|a2tv|ahaber|aspor|minikago|minikacocuk|anews)\.com\.tr
  22         )/webtv/(?:live-broadcast|canli-yayin)
  23     |
  24         sabah\.com\.tr/(apara)/canli-yayin
  25     )""")
  26     _hls_url = "https://trkvz-live.ercdn.net/{channel}/{channel}.m3u8"
  27     _token_url = "https://securevideotoken.tmgrup.com.tr/webtv/secure"
  28     _token_schema = validate.Schema(validate.all(
  29         {
  30             "Success": True,
  31             "Url": validate.url(),
  32         },
  33         validate.get("Url"))
  34     )
  35 
  36     @classmethod
  37     def can_handle_url(cls, url):
  38         return cls._url_re.match(url) is not None
  39 
  40     def _get_streams(self):
  41         url_m = self._url_re.match(self.url)
  42         domain = url_m.group(1) or url_m.group(2) or url_m.group(3)
  43         # remap the domain to channel
  44         channel = {"atv": "atvhd",
  45                    "ahaber": "ahaberhd",
  46                    "apara": "aparahd",
  47                    "aspor": "asporhd",
  48                    "anews": "anewshd",
  49                    "minikacocuk": "minikagococuk"}.get(domain, domain)
  50         hls_url = self._hls_url.format(channel=channel)
  51         # get the secure HLS URL
  52         res = self.session.http.get(self._token_url,
  53                                     params="url={0}".format(hls_url),
  54                                     headers={"Referer": self.url,
  55                                              "User-Agent": useragents.CHROME})
  56 
  57         secure_hls_url = self.session.http.json(res, schema=self._token_schema)
  58 
  59         log.debug("Found HLS URL: {0}".format(secure_hls_url))
  60         return HLSStream.parse_variant_playlist(self.session, secure_hls_url)
  61 
  62 
  63 __plugin__ = Turkuvaz
  64
  ```
  --- 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/src/streamlink/plugins/turkuvaz.py b/src/streamlink/plugins/turkuvaz.py
  --- a/src/streamlink/plugins/turkuvaz.py
  +++ b/src/streamlink/plugins/turkuvaz.py
  @@ -20,6 +20,10 @@
               |
               (atv|a2tv|ahaber|aspor|minikago|minikacocuk|anews)\.com\.tr
           )/webtv/(?:live-broadcast|canli-yayin)
  +    |
  +        (ahaber)\.com\.tr/video/canli-yayin
  +    |
  +        atv\.com\.tr/(a2tv)/canli-yayin
       |
           sabah\.com\.tr/(apara)/canli-yayin
       )""")
  @@ -39,7 +43,7 @@
   
       def _get_streams(self):
           url_m = self._url_re.match(self.url)
  -        domain = url_m.group(1) or url_m.group(2) or url_m.group(3)
  +        domain = url_m.group(1) or url_m.group(2) or url_m.group(3) or url_m.group(4) or url_m.group(5)
           # remap the domain to channel
           channel = {"atv": "atvhd",
                      "ahaber": "ahaberhd",
  
verification_info: {"golden_diff": "diff --git a/src/streamlink/plugins/turkuvaz.py b/src/streamlink/plugins/turkuvaz.py\n--- a/src/streamlink/plugins/turkuvaz.py\n+++ b/src/streamlink/plugins/turkuvaz.py\n@@ -20,6 +20,10 @@\n             |\n             (atv|a2tv|ahaber|aspor|minikago|minikacocuk|anews)\\.com\\.tr\n         )/webtv/(?:live-broadcast|canli-yayin)\n+    |\n+        (ahaber)\\.com\\.tr/video/canli-yayin\n+    |\n+        atv\\.com\\.tr/(a2tv)/canli-yayin\n     |\n         sabah\\.com\\.tr/(apara)/canli-yayin\n     )\"\"\")\n@@ -39,7 +43,7 @@\n \n     def _get_streams(self):\n         url_m = self._url_re.match(self.url)\n-        domain = url_m.group(1) or url_m.group(2) or url_m.group(3)\n+        domain = url_m.group(1) or url_m.group(2) or url_m.group(3) or url_m.group(4) or url_m.group(5)\n         # remap the domain to channel\n         channel = {\"atv\": \"atvhd\",\n                    \"ahaber\": \"ahaberhd\",\n", "issue": "Turkuvaz Plugin missing Streams\nHi,\r\n\r\nfirst of all to be sure installed Streamlink 2.0.0 via Python3 again.\r\n\r\nAfter that tested all streams one by one with the turkuvaz.py\r\n\r\nMost of them are working, only 2 of 9 channels missing, \"error: No plugin can handle URL\"\r\n\r\nA2 and A Haber TV:\r\n\r\nhttps://www.atv.com.tr/a2tv/canli-yayin\r\nhttps://www.ahaber.com.tr/video/canli-yayin\r\n\r\n\n", "before_files": [{"content": "import logging\nimport re\n\nfrom streamlink.plugin import Plugin\nfrom streamlink.plugin.api import useragents, validate\nfrom streamlink.stream import HLSStream\n\nlog = logging.getLogger(__name__)\n\n\nclass Turkuvaz(Plugin):\n    \"\"\"\n    Plugin to support ATV/A2TV Live streams from www.atv.com.tr and www.a2tv.com.tr\n    \"\"\"\n\n    _url_re = re.compile(r\"\"\"(?x)https?://(?:www\\.)?\n    (?:\n        (?:\n            (atvavrupa)\\.tv\n            |\n            (atv|a2tv|ahaber|aspor|minikago|minikacocuk|anews)\\.com\\.tr\n        )/webtv/(?:live-broadcast|canli-yayin)\n    |\n        sabah\\.com\\.tr/(apara)/canli-yayin\n    )\"\"\")\n    _hls_url = \"https://trkvz-live.ercdn.net/{channel}/{channel}.m3u8\"\n    _token_url = \"https://securevideotoken.tmgrup.com.tr/webtv/secure\"\n    _token_schema = validate.Schema(validate.all(\n        {\n            \"Success\": True,\n            \"Url\": validate.url(),\n        },\n        validate.get(\"Url\"))\n    )\n\n    @classmethod\n    def can_handle_url(cls, url):\n        return cls._url_re.match(url) is not None\n\n    def _get_streams(self):\n        url_m = self._url_re.match(self.url)\n        domain = url_m.group(1) or url_m.group(2) or url_m.group(3)\n        # remap the domain to channel\n        channel = {\"atv\": \"atvhd\",\n                   \"ahaber\": \"ahaberhd\",\n                   \"apara\": \"aparahd\",\n                   \"aspor\": \"asporhd\",\n                   \"anews\": \"anewshd\",\n                   \"minikacocuk\": \"minikagococuk\"}.get(domain, domain)\n        hls_url = self._hls_url.format(channel=channel)\n        # get the secure HLS URL\n        res = self.session.http.get(self._token_url,\n                                    params=\"url={0}\".format(hls_url),\n                                    headers={\"Referer\": self.url,\n                                             \"User-Agent\": useragents.CHROME})\n\n        secure_hls_url = self.session.http.json(res, schema=self._token_schema)\n\n        log.debug(\"Found HLS URL: {0}\".format(secure_hls_url))\n        return HLSStream.parse_variant_playlist(self.session, secure_hls_url)\n\n\n__plugin__ = Turkuvaz\n", "path": "src/streamlink/plugins/turkuvaz.py"}], "after_files": [{"content": "import logging\nimport re\n\nfrom streamlink.plugin import Plugin\nfrom streamlink.plugin.api import useragents, validate\nfrom streamlink.stream import HLSStream\n\nlog = logging.getLogger(__name__)\n\n\nclass Turkuvaz(Plugin):\n    \"\"\"\n    Plugin to support ATV/A2TV Live streams from www.atv.com.tr and www.a2tv.com.tr\n    \"\"\"\n\n    _url_re = re.compile(r\"\"\"(?x)https?://(?:www\\.)?\n    (?:\n        (?:\n            (atvavrupa)\\.tv\n            |\n            (atv|a2tv|ahaber|aspor|minikago|minikacocuk|anews)\\.com\\.tr\n        )/webtv/(?:live-broadcast|canli-yayin)\n    |\n        (ahaber)\\.com\\.tr/video/canli-yayin\n    |\n        atv\\.com\\.tr/(a2tv)/canli-yayin\n    |\n        sabah\\.com\\.tr/(apara)/canli-yayin\n    )\"\"\")\n    _hls_url = \"https://trkvz-live.ercdn.net/{channel}/{channel}.m3u8\"\n    _token_url = \"https://securevideotoken.tmgrup.com.tr/webtv/secure\"\n    _token_schema = validate.Schema(validate.all(\n        {\n            \"Success\": True,\n            \"Url\": validate.url(),\n        },\n        validate.get(\"Url\"))\n    )\n\n    @classmethod\n    def can_handle_url(cls, url):\n        return cls._url_re.match(url) is not None\n\n    def _get_streams(self):\n        url_m = self._url_re.match(self.url)\n        domain = url_m.group(1) or url_m.group(2) or url_m.group(3) or url_m.group(4) or url_m.group(5)\n        # remap the domain to channel\n        channel = {\"atv\": \"atvhd\",\n                   \"ahaber\": \"ahaberhd\",\n                   \"apara\": \"aparahd\",\n                   \"aspor\": \"asporhd\",\n                   \"anews\": \"anewshd\",\n                   \"minikacocuk\": \"minikagococuk\"}.get(domain, domain)\n        hls_url = self._hls_url.format(channel=channel)\n        # get the secure HLS URL\n        res = self.session.http.get(self._token_url,\n                                    params=\"url={0}\".format(hls_url),\n                                    headers={\"Referer\": self.url,\n                                             \"User-Agent\": useragents.CHROME})\n\n        secure_hls_url = self.session.http.json(res, schema=self._token_schema)\n\n        log.debug(\"Found HLS URL: {0}\".format(secure_hls_url))\n        return HLSStream.parse_variant_playlist(self.session, secure_hls_url)\n\n\n__plugin__ = Turkuvaz\n", "path": "src/streamlink/plugins/turkuvaz.py"}]}