We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
YGGTorrent : Unable to bdecode torrent
**Describe the bug**
The YggTorrent provider seems to have a bug. The downloads are not correctly handled to rtorrent. The "unable to bdecode torrent" occurs. Thank you for your help. 


**Medusa (please complete the following information):**

Branch: master 
Commit: e7c4ff3bc9a48b47c932b0e40a539d62e3a62f64 Version: v0.2.6 Database: 44.11
Python Version: | 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609]
SSL Version: | OpenSSL 1.0.2g 1 Mar 2016
OS: | Linux-4.12.14-041214-generic-x86_64-with-Ubuntu-16.04-xenial

**Logs:**
<details>

```
2018-07-23 12:45:32 WARNING  SEARCHQUEUE-FORCED-325517 :: [e7c4ff3] Unable to bdecode torrent. Invalid torrent: Salvation.S02E01.FASTSUB.VOSTFR.720p.AMZN.WEB-DL.DDP5.1.H.264-GOLD. Deleting cached result if exists
2018-07-23 12:45:32 INFO     SEARCHQUEUE-FORCED-325517 :: [e7c4ff3] Downloading Salvation.S02E01.FASTSUB.VOSTFR.720p.AMZN.WEB-DL.DDP5.1.H.264-GOLD with 36 seeders and 0 leechers and size 938.52 MB from Yggtorrent
2018-07-23 12:45:32 INFO     SEARCHQUEUE-FORCED-325517 :: [Yggtorrent] :: [e7c4ff3] Picked Salvation.S02E01.FASTSUB.VOSTFR.720p.AMZN.WEB-DL.DDP5.1.H.264-GOLD as the best result.
2018-07-23 12:45:32 INFO     SEARCHQUEUE-FORCED-325517 :: [Yggtorrent] :: [e7c4ff3] Quality of Salvation.S02E01.(FASTSUB.VOSTFR.720p.WEBRip.x265.NSP) is 720p WEB-DL
2018-07-23 12:45:32 INFO     SEARCHQUEUE-FORCED-325517 :: [Yggtorrent] :: [e7c4ff3] Quality of Salvation.S02E01.FASTSUB.VOSTFR.720p.HDTV.x264.-.ZKH is 720p HDTV
2018-07-23 12:45:32 INFO     SEARCHQUEUE-FORCED-325517 :: [Yggtorrent] :: [e7c4ff3] Quality of Salvation.S02E01.FASTSUB.VOSTFR.720p.AMZN.WEB-DL.DDP5.1.H.264-GOLD is 720p WEB-DL
2018-07-23 12:45:31 INFO     SEARCHQUEUE-FORCED-325517 :: [Yggtorrent] :: [e7c4ff3] Performing episode search for Salvation```
</details>



--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `medusa/providers/torrent/html/yggtorrent.py`
Content:
```
1 # coding=utf-8
2 
3 """Provider code for Yggtorrent."""
4 
5 from __future__ import unicode_literals
6 
7 import logging
8 import re
9 
10 from medusa import tv
11 from medusa.bs4_parser import BS4Parser
12 from medusa.helper.common import (
13     convert_size,
14     try_int,
15 )
16 from medusa.logger.adapters.style import BraceAdapter
17 from medusa.providers.torrent.torrent_provider import TorrentProvider
18 
19 from requests.compat import urljoin
20 
21 log = BraceAdapter(logging.getLogger(__name__))
22 log.logger.addHandler(logging.NullHandler())
23 
24 
25 class YggtorrentProvider(TorrentProvider):
26     """Yggtorrent Torrent provider."""
27 
28     torrent_id_pattern = re.compile(r'\/(\d+)-')
29 
30     def __init__(self):
31         """Initialize the class."""
32         super(YggtorrentProvider, self).__init__('Yggtorrent')
33 
34         # Credentials
35         self.username = None
36         self.password = None
37 
38         # URLs
39         self.url = 'https://ww1.yggtorrent.is'
40         self.urls = {
41             'login': urljoin(self.url, 'user/login'),
42             'search': urljoin(self.url, 'engine/search'),
43             'download': urljoin(self.url, 'engine/download_torrent?id={0}')
44         }
45 
46         # Proper Strings
47         self.proper_strings = ['PROPER', 'REPACK', 'REAL', 'RERIP']
48 
49         # Torrent Stats
50         self.minseed = None
51         self.minleech = None
52 
53         # Cache
54         self.cache = tv.Cache(self, min_time=20)
55 
56     def search(self, search_strings, age=0, ep_obj=None, **kwargs):
57         """
58         Search a provider and parse the results.
59 
60         :param search_strings: A dict with mode (key) and the search value (value)
61         :param age: Not used
62         :param ep_obj: Not used
63         :returns: A list of search results (structure)
64         """
65         results = []
66         if not self.login():
67             return results
68 
69         # Search Params
70         search_params = {
71             'category': 2145,
72             'do': 'search'
73         }
74 
75         for mode in search_strings:
76             log.debug('Search mode: {0}', mode)
77 
78             for search_string in search_strings[mode]:
79 
80                 if mode != 'RSS':
81                     log.debug('Search string: {search}',
82                               {'search': search_string})
83 
84                     search_params['name'] = re.sub(r'[()]', '', search_string)
85 
86                 response = self.session.get(self.urls['search'], params=search_params)
87                 if not response or not response.text:
88                     log.debug('No data returned from provider')
89                     continue
90 
91                 results += self.parse(response.text, mode)
92 
93         return results
94 
95     def parse(self, data, mode):
96         """
97         Parse search results for items.
98 
99         :param data: The raw response from a search
100         :param mode: The current mode used to search, e.g. RSS
101 
102         :return: A list of items found
103         """
104         # Units
105         units = ['O', 'KO', 'MO', 'GO', 'TO', 'PO']
106 
107         items = []
108 
109         with BS4Parser(data, 'html5lib') as html:
110             torrent_table = html.find(class_='table-responsive results')
111             torrent_rows = torrent_table('tr') if torrent_table else []
112 
113             # Continue only if at least one Release is found
114             if len(torrent_rows) < 2:
115                 log.debug('Data returned from provider does not contain any torrents')
116                 return items
117 
118             # Skip column headers
119             for result in torrent_rows[1:]:
120                 cells = result('td')
121                 if len(cells) < 9:
122                     continue
123 
124                 try:
125                     info = cells[1].find('a')
126                     title = info.get_text(strip=True)
127                     download_url = info.get('href')
128                     if not (title and download_url):
129                         continue
130 
131                     torrent_id = self.torrent_id_pattern.search(download_url)
132                     download_url = self.urls['download'].format(torrent_id.group(1))
133 
134                     seeders = try_int(cells[7].get_text(strip=True), 0)
135                     leechers = try_int(cells[8].get_text(strip=True), 0)
136 
137                     # Filter unseeded torrent
138                     if seeders < min(self.minseed, 1):
139                         if mode != 'RSS':
140                             log.debug("Discarding torrent because it doesn't meet the"
141                                       " minimum seeders: {0}. Seeders: {1}",
142                                       title, seeders)
143                         continue
144 
145                     torrent_size = cells[5].get_text()
146                     size = convert_size(torrent_size, sep='', units=units, default=-1)
147 
148                     pubdate_raw = cells[4].find('div', class_='hidden').get_text(strip=True)
149                     pubdate = self.parse_pubdate(pubdate_raw, fromtimestamp=True)
150 
151                     item = {
152                         'title': title,
153                         'link': download_url,
154                         'size': size,
155                         'seeders': seeders,
156                         'leechers': leechers,
157                         'pubdate': pubdate,
158                     }
159                     if mode != 'RSS':
160                         log.debug('Found result: {0} with {1} seeders and {2} leechers',
161                                   title, seeders, leechers)
162 
163                     items.append(item)
164                 except (AttributeError, TypeError, KeyError, ValueError, IndexError):
165                     log.exception('Failed parsing provider.')
166 
167         return items
168 
169     def login(self):
170         """Login method used for logging in before doing search and torrent downloads."""
171         login_params = {
172             'id': self.username,
173             'pass': self.password
174         }
175 
176         login_resp = self.session.post(self.urls['login'], data=login_params)
177         if not login_resp:
178             log.warning('Invalid username or password. Check your settings')
179             return False
180 
181         response = self.session.get(self.url)
182         if not response:
183             log.warning('Unable to connect to provider')
184             return False
185 
186         if 'Bienvenue' not in response.text:
187             log.warning('Unable to login to provider')
188             return False
189 
190         return True
191 
192 
193 provider = YggtorrentProvider()
194
```
--- 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()

```

diff --git a/medusa/providers/torrent/html/yggtorrent.py b/medusa/providers/torrent/html/yggtorrent.py
--- a/medusa/providers/torrent/html/yggtorrent.py
+++ b/medusa/providers/torrent/html/yggtorrent.py
@@ -36,7 +36,7 @@
         self.password = None
 
         # URLs
-        self.url = 'https://ww1.yggtorrent.is'
+        self.url = 'https://ww2.yggtorrent.is'
         self.urls = {
             'login': urljoin(self.url, 'user/login'),
             'search': urljoin(self.url, 'engine/search'),

{"golden_diff": "diff --git a/medusa/providers/torrent/html/yggtorrent.py b/medusa/providers/torrent/html/yggtorrent.py\n--- a/medusa/providers/torrent/html/yggtorrent.py\n+++ b/medusa/providers/torrent/html/yggtorrent.py\n@@ -36,7 +36,7 @@\n         self.password = None\n \n         # URLs\n-        self.url = 'https://ww1.yggtorrent.is'\n+        self.url = 'https://ww2.yggtorrent.is'\n         self.urls = {\n             'login': urljoin(self.url, 'user/login'),\n             'search': urljoin(self.url, 'engine/search'),\n", "issue": "YGGTorrent : Unable to bdecode torrent\n**Describe the bug**\r\nThe YggTorrent provider seems to have a bug. The downloads are not correctly handled to rtorrent. The \"unable to bdecode torrent\" occurs. Thank you for your help. \r\n\r\n\r\n**Medusa (please complete the following information):**\r\n\r\nBranch:\u00a0master\u00a0\r\nCommit:\u00a0e7c4ff3bc9a48b47c932b0e40a539d62e3a62f64\u00a0Version:\u00a0v0.2.6\u00a0Database:\u00a044.11\r\nPython Version: | 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609]\r\nSSL Version: | OpenSSL 1.0.2g 1 Mar 2016\r\nOS: | Linux-4.12.14-041214-generic-x86_64-with-Ubuntu-16.04-xenial\r\n\r\n**Logs:**\r\n<details>\r\n\r\n```\r\n2018-07-23 12:45:32 WARNING  SEARCHQUEUE-FORCED-325517 :: [e7c4ff3] Unable to bdecode torrent. Invalid torrent: Salvation.S02E01.FASTSUB.VOSTFR.720p.AMZN.WEB-DL.DDP5.1.H.264-GOLD. Deleting cached result if exists\r\n2018-07-23 12:45:32 INFO     SEARCHQUEUE-FORCED-325517 :: [e7c4ff3] Downloading Salvation.S02E01.FASTSUB.VOSTFR.720p.AMZN.WEB-DL.DDP5.1.H.264-GOLD with 36 seeders and 0 leechers and size 938.52 MB from Yggtorrent\r\n2018-07-23 12:45:32 INFO     SEARCHQUEUE-FORCED-325517 :: [Yggtorrent] :: [e7c4ff3] Picked Salvation.S02E01.FASTSUB.VOSTFR.720p.AMZN.WEB-DL.DDP5.1.H.264-GOLD as the best result.\r\n2018-07-23 12:45:32 INFO     SEARCHQUEUE-FORCED-325517 :: [Yggtorrent] :: [e7c4ff3] Quality of Salvation.S02E01.(FASTSUB.VOSTFR.720p.WEBRip.x265.NSP) is 720p WEB-DL\r\n2018-07-23 12:45:32 INFO     SEARCHQUEUE-FORCED-325517 :: [Yggtorrent] :: [e7c4ff3] Quality of Salvation.S02E01.FASTSUB.VOSTFR.720p.HDTV.x264.-.ZKH is 720p HDTV\r\n2018-07-23 12:45:32 INFO     SEARCHQUEUE-FORCED-325517 :: [Yggtorrent] :: [e7c4ff3] Quality of Salvation.S02E01.FASTSUB.VOSTFR.720p.AMZN.WEB-DL.DDP5.1.H.264-GOLD is 720p WEB-DL\r\n2018-07-23 12:45:31 INFO     SEARCHQUEUE-FORCED-325517 :: [Yggtorrent] :: [e7c4ff3] Performing episode search for Salvation```\r\n</details>\r\n\r\n\n", "before_files": [{"content": "# coding=utf-8\n\n\"\"\"Provider code for Yggtorrent.\"\"\"\n\nfrom __future__ import unicode_literals\n\nimport logging\nimport re\n\nfrom medusa import tv\nfrom medusa.bs4_parser import BS4Parser\nfrom medusa.helper.common import (\n    convert_size,\n    try_int,\n)\nfrom medusa.logger.adapters.style import BraceAdapter\nfrom medusa.providers.torrent.torrent_provider import TorrentProvider\n\nfrom requests.compat import urljoin\n\nlog = BraceAdapter(logging.getLogger(__name__))\nlog.logger.addHandler(logging.NullHandler())\n\n\nclass YggtorrentProvider(TorrentProvider):\n    \"\"\"Yggtorrent Torrent provider.\"\"\"\n\n    torrent_id_pattern = re.compile(r'\\/(\\d+)-')\n\n    def __init__(self):\n        \"\"\"Initialize the class.\"\"\"\n        super(YggtorrentProvider, self).__init__('Yggtorrent')\n\n        # Credentials\n        self.username = None\n        self.password = None\n\n        # URLs\n        self.url = 'https://ww1.yggtorrent.is'\n        self.urls = {\n            'login': urljoin(self.url, 'user/login'),\n            'search': urljoin(self.url, 'engine/search'),\n            'download': urljoin(self.url, 'engine/download_torrent?id={0}')\n        }\n\n        # Proper Strings\n        self.proper_strings = ['PROPER', 'REPACK', 'REAL', 'RERIP']\n\n        # Torrent Stats\n        self.minseed = None\n        self.minleech = None\n\n        # Cache\n        self.cache = tv.Cache(self, min_time=20)\n\n    def search(self, search_strings, age=0, ep_obj=None, **kwargs):\n        \"\"\"\n        Search a provider and parse the results.\n\n        :param search_strings: A dict with mode (key) and the search value (value)\n        :param age: Not used\n        :param ep_obj: Not used\n        :returns: A list of search results (structure)\n        \"\"\"\n        results = []\n        if not self.login():\n            return results\n\n        # Search Params\n        search_params = {\n            'category': 2145,\n            'do': 'search'\n        }\n\n        for mode in search_strings:\n            log.debug('Search mode: {0}', mode)\n\n            for search_string in search_strings[mode]:\n\n                if mode != 'RSS':\n                    log.debug('Search string: {search}',\n                              {'search': search_string})\n\n                    search_params['name'] = re.sub(r'[()]', '', search_string)\n\n                response = self.session.get(self.urls['search'], params=search_params)\n                if not response or not response.text:\n                    log.debug('No data returned from provider')\n                    continue\n\n                results += self.parse(response.text, mode)\n\n        return results\n\n    def parse(self, data, mode):\n        \"\"\"\n        Parse search results for items.\n\n        :param data: The raw response from a search\n        :param mode: The current mode used to search, e.g. RSS\n\n        :return: A list of items found\n        \"\"\"\n        # Units\n        units = ['O', 'KO', 'MO', 'GO', 'TO', 'PO']\n\n        items = []\n\n        with BS4Parser(data, 'html5lib') as html:\n            torrent_table = html.find(class_='table-responsive results')\n            torrent_rows = torrent_table('tr') if torrent_table else []\n\n            # Continue only if at least one Release is found\n            if len(torrent_rows) < 2:\n                log.debug('Data returned from provider does not contain any torrents')\n                return items\n\n            # Skip column headers\n            for result in torrent_rows[1:]:\n                cells = result('td')\n                if len(cells) < 9:\n                    continue\n\n                try:\n                    info = cells[1].find('a')\n                    title = info.get_text(strip=True)\n                    download_url = info.get('href')\n                    if not (title and download_url):\n                        continue\n\n                    torrent_id = self.torrent_id_pattern.search(download_url)\n                    download_url = self.urls['download'].format(torrent_id.group(1))\n\n                    seeders = try_int(cells[7].get_text(strip=True), 0)\n                    leechers = try_int(cells[8].get_text(strip=True), 0)\n\n                    # Filter unseeded torrent\n                    if seeders < min(self.minseed, 1):\n                        if mode != 'RSS':\n                            log.debug(\"Discarding torrent because it doesn't meet the\"\n                                      \" minimum seeders: {0}. Seeders: {1}\",\n                                      title, seeders)\n                        continue\n\n                    torrent_size = cells[5].get_text()\n                    size = convert_size(torrent_size, sep='', units=units, default=-1)\n\n                    pubdate_raw = cells[4].find('div', class_='hidden').get_text(strip=True)\n                    pubdate = self.parse_pubdate(pubdate_raw, fromtimestamp=True)\n\n                    item = {\n                        'title': title,\n                        'link': download_url,\n                        'size': size,\n                        'seeders': seeders,\n                        'leechers': leechers,\n                        'pubdate': pubdate,\n                    }\n                    if mode != 'RSS':\n                        log.debug('Found result: {0} with {1} seeders and {2} leechers',\n                                  title, seeders, leechers)\n\n                    items.append(item)\n                except (AttributeError, TypeError, KeyError, ValueError, IndexError):\n                    log.exception('Failed parsing provider.')\n\n        return items\n\n    def login(self):\n        \"\"\"Login method used for logging in before doing search and torrent downloads.\"\"\"\n        login_params = {\n            'id': self.username,\n            'pass': self.password\n        }\n\n        login_resp = self.session.post(self.urls['login'], data=login_params)\n        if not login_resp:\n            log.warning('Invalid username or password. Check your settings')\n            return False\n\n        response = self.session.get(self.url)\n        if not response:\n            log.warning('Unable to connect to provider')\n            return False\n\n        if 'Bienvenue' not in response.text:\n            log.warning('Unable to login to provider')\n            return False\n\n        return True\n\n\nprovider = YggtorrentProvider()\n", "path": "medusa/providers/torrent/html/yggtorrent.py"}], "after_files": [{"content": "# coding=utf-8\n\n\"\"\"Provider code for Yggtorrent.\"\"\"\n\nfrom __future__ import unicode_literals\n\nimport logging\nimport re\n\nfrom medusa import tv\nfrom medusa.bs4_parser import BS4Parser\nfrom medusa.helper.common import (\n    convert_size,\n    try_int,\n)\nfrom medusa.logger.adapters.style import BraceAdapter\nfrom medusa.providers.torrent.torrent_provider import TorrentProvider\n\nfrom requests.compat import urljoin\n\nlog = BraceAdapter(logging.getLogger(__name__))\nlog.logger.addHandler(logging.NullHandler())\n\n\nclass YggtorrentProvider(TorrentProvider):\n    \"\"\"Yggtorrent Torrent provider.\"\"\"\n\n    torrent_id_pattern = re.compile(r'\\/(\\d+)-')\n\n    def __init__(self):\n        \"\"\"Initialize the class.\"\"\"\n        super(YggtorrentProvider, self).__init__('Yggtorrent')\n\n        # Credentials\n        self.username = None\n        self.password = None\n\n        # URLs\n        self.url = 'https://ww2.yggtorrent.is'\n        self.urls = {\n            'login': urljoin(self.url, 'user/login'),\n            'search': urljoin(self.url, 'engine/search'),\n            'download': urljoin(self.url, 'engine/download_torrent?id={0}')\n        }\n\n        # Proper Strings\n        self.proper_strings = ['PROPER', 'REPACK', 'REAL', 'RERIP']\n\n        # Torrent Stats\n        self.minseed = None\n        self.minleech = None\n\n        # Cache\n        self.cache = tv.Cache(self, min_time=20)\n\n    def search(self, search_strings, age=0, ep_obj=None, **kwargs):\n        \"\"\"\n        Search a provider and parse the results.\n\n        :param search_strings: A dict with mode (key) and the search value (value)\n        :param age: Not used\n        :param ep_obj: Not used\n        :returns: A list of search results (structure)\n        \"\"\"\n        results = []\n        if not self.login():\n            return results\n\n        # Search Params\n        search_params = {\n            'category': 2145,\n            'do': 'search'\n        }\n\n        for mode in search_strings:\n            log.debug('Search mode: {0}', mode)\n\n            for search_string in search_strings[mode]:\n\n                if mode != 'RSS':\n                    log.debug('Search string: {search}',\n                              {'search': search_string})\n\n                    search_params['name'] = re.sub(r'[()]', '', search_string)\n\n                response = self.session.get(self.urls['search'], params=search_params)\n                if not response or not response.text:\n                    log.debug('No data returned from provider')\n                    continue\n\n                results += self.parse(response.text, mode)\n\n        return results\n\n    def parse(self, data, mode):\n        \"\"\"\n        Parse search results for items.\n\n        :param data: The raw response from a search\n        :param mode: The current mode used to search, e.g. RSS\n\n        :return: A list of items found\n        \"\"\"\n        # Units\n        units = ['O', 'KO', 'MO', 'GO', 'TO', 'PO']\n\n        items = []\n\n        with BS4Parser(data, 'html5lib') as html:\n            torrent_table = html.find(class_='table-responsive results')\n            torrent_rows = torrent_table('tr') if torrent_table else []\n\n            # Continue only if at least one Release is found\n            if len(torrent_rows) < 2:\n                log.debug('Data returned from provider does not contain any torrents')\n                return items\n\n            # Skip column headers\n            for result in torrent_rows[1:]:\n                cells = result('td')\n                if len(cells) < 9:\n                    continue\n\n                try:\n                    info = cells[1].find('a')\n                    title = info.get_text(strip=True)\n                    download_url = info.get('href')\n                    if not (title and download_url):\n                        continue\n\n                    torrent_id = self.torrent_id_pattern.search(download_url)\n                    download_url = self.urls['download'].format(torrent_id.group(1))\n\n                    seeders = try_int(cells[7].get_text(strip=True), 0)\n                    leechers = try_int(cells[8].get_text(strip=True), 0)\n\n                    # Filter unseeded torrent\n                    if seeders < min(self.minseed, 1):\n                        if mode != 'RSS':\n                            log.debug(\"Discarding torrent because it doesn't meet the\"\n                                      \" minimum seeders: {0}. Seeders: {1}\",\n                                      title, seeders)\n                        continue\n\n                    torrent_size = cells[5].get_text()\n                    size = convert_size(torrent_size, sep='', units=units, default=-1)\n\n                    pubdate_raw = cells[4].find('div', class_='hidden').get_text(strip=True)\n                    pubdate = self.parse_pubdate(pubdate_raw, fromtimestamp=True)\n\n                    item = {\n                        'title': title,\n                        'link': download_url,\n                        'size': size,\n                        'seeders': seeders,\n                        'leechers': leechers,\n                        'pubdate': pubdate,\n                    }\n                    if mode != 'RSS':\n                        log.debug('Found result: {0} with {1} seeders and {2} leechers',\n                                  title, seeders, leechers)\n\n                    items.append(item)\n                except (AttributeError, TypeError, KeyError, ValueError, IndexError):\n                    log.exception('Failed parsing provider.')\n\n        return items\n\n    def login(self):\n        \"\"\"Login method used for logging in before doing search and torrent downloads.\"\"\"\n        login_params = {\n            'id': self.username,\n            'pass': self.password\n        }\n\n        login_resp = self.session.post(self.urls['login'], data=login_params)\n        if not login_resp:\n            log.warning('Invalid username or password. Check your settings')\n            return False\n\n        response = self.session.get(self.url)\n        if not response:\n            log.warning('Unable to connect to provider')\n            return False\n\n        if 'Bienvenue' not in response.text:\n            log.warning('Unable to login to provider')\n            return False\n\n        return True\n\n\nprovider = YggtorrentProvider()\n", "path": "medusa/providers/torrent/html/yggtorrent.py"}]}