]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/duboku.py
[cleanup] Add more ruff rules (#10149)
[yt-dlp.git] / yt_dlp / extractor / duboku.py
index adc7705bc20959255e3c1269e433f67d3dc2c6df..68c3f05731f7cad45b8751612f1b70d4131c2702 100644 (file)
@@ -3,7 +3,6 @@
 import urllib.parse
 
 from .common import InfoExtractor
-from ..compat import compat_urlparse
 from ..utils import (
     ExtractorError,
     clean_html,
@@ -24,23 +23,23 @@ def _get_elements_by_tag_and_attrib(html, tag=None, attribute=None, value=None,
     if attribute is None:
         attribute = ''
     else:
-        attribute = r'\s+(?P<attribute>%s)' % re.escape(attribute)
+        attribute = rf'\s+(?P<attribute>{re.escape(attribute)})'
     if value is None:
         value = ''
     else:
         value = re.escape(value) if escape_value else value
-        value = '=[\'"]?(?P<value>%s)[\'"]?' % value
+        value = f'=[\'"]?(?P<value>{value})[\'"]?'
 
     retlist = []
-    for m in re.finditer(r'''(?xs)
-        <(?P<tag>%s)
+    for m in re.finditer(rf'''(?xs)
+        <(?P<tag>{tag})
          (?:\s+[a-zA-Z0-9:._-]+(?:=[a-zA-Z0-9:._-]*|="[^"]*"|='[^']*'|))*?
-         %s%s
+         {attribute}{value}
          (?:\s+[a-zA-Z0-9:._-]+(?:=[a-zA-Z0-9:._-]*|="[^"]*"|='[^']*'|))*?
         \s*>
         (?P<content>.*?)
         </\1>
-    ''' % (tag, attribute, value), html):
+    ''', html):
         retlist.append(m)
 
     return retlist
@@ -101,7 +100,7 @@ def _real_extract(self, url):
         season_id = temp[1]
         episode_id = temp[2]
 
-        webpage_url = 'https://w.duboku.io/vodplay/%s.html' % video_id
+        webpage_url = f'https://w.duboku.io/vodplay/{video_id}.html'
         webpage_html = self._download_webpage(webpage_url, video_id)
 
         # extract video url
@@ -165,7 +164,7 @@ def _real_extract(self, url):
             'episode_number': int_or_none(episode_id),
             'episode_id': episode_id,
             'formats': formats,
-            'http_headers': headers
+            'http_headers': headers,
         }
 
 
@@ -193,11 +192,11 @@ class DubokuPlaylistIE(InfoExtractor):
     def _real_extract(self, url):
         mobj = self._match_valid_url(url)
         if mobj is None:
-            raise ExtractorError('Invalid URL: %s' % url)
+            raise ExtractorError(f'Invalid URL: {url}')
         series_id = mobj.group('id')
-        fragment = compat_urlparse.urlparse(url).fragment
+        fragment = urllib.parse.urlparse(url).fragment
 
-        webpage_url = 'https://w.duboku.io/voddetail/%s.html' % series_id
+        webpage_url = f'https://w.duboku.io/voddetail/{series_id}.html'
         webpage_html = self._download_webpage(webpage_url, series_id)
 
         # extract title
@@ -221,7 +220,7 @@ def _real_extract(self, url):
                     div.group('content'), 'a', 'href', value='[^\'"]+?', escape_value=False):
                 playlist.append({
                     'href': unescapeHTML(a.group('value')),
-                    'title': unescapeHTML(a.group('content'))
+                    'title': unescapeHTML(a.group('content')),
                 })
             playlists[playlist_id] = playlist
 
@@ -237,11 +236,11 @@ def _real_extract(self, url):
                 (playlist_id, playlist) = first
         if not playlist:
             raise ExtractorError(
-                'Cannot find %s' % fragment if fragment else 'Cannot extract playlist')
+                f'Cannot find {fragment}' if fragment else 'Cannot extract playlist')
 
         # return url results
         return self.playlist_result([
             self.url_result(
-                compat_urlparse.urljoin('https://w.duboku.io', x['href']),
+                urllib.parse.urljoin('https://w.duboku.io', x['href']),
                 ie=DubokuIE.ie_key(), video_title=x.get('title'))
             for x in playlist], series_id + '#' + playlist_id, title)