diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-05 09:06:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-05 09:06:10 +0000 |
commit | 137f07c27a88b07df57df5b2cdebebe3c7722bac (patch) | |
tree | 4ebdcbea6b540f69c40ba0be6ac766008030d149 /yt_dlp/extractor/duboku.py | |
parent | Adding debian version 2024.05.27-1. (diff) | |
download | yt-dlp-137f07c27a88b07df57df5b2cdebebe3c7722bac.tar.xz yt-dlp-137f07c27a88b07df57df5b2cdebebe3c7722bac.zip |
Merging upstream version 2024.07.01.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'yt_dlp/extractor/duboku.py')
-rw-r--r-- | yt_dlp/extractor/duboku.py | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/yt_dlp/extractor/duboku.py b/yt_dlp/extractor/duboku.py index adc7705..68c3f05 100644 --- a/yt_dlp/extractor/duboku.py +++ b/yt_dlp/extractor/duboku.py @@ -3,7 +3,6 @@ import re 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 @@ class DubokuIE(InfoExtractor): 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 @@ class DubokuIE(InfoExtractor): '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 @@ class DubokuPlaylistIE(InfoExtractor): 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 @@ class DubokuPlaylistIE(InfoExtractor): (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) |