From 137f07c27a88b07df57df5b2cdebebe3c7722bac Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 5 Aug 2024 11:06:10 +0200 Subject: Merging upstream version 2024.07.01. Signed-off-by: Daniel Baumann --- yt_dlp/extractor/duboku.py | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'yt_dlp/extractor/duboku.py') 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%s)' % re.escape(attribute) + attribute = rf'\s+(?P{re.escape(attribute)})' if value is None: value = '' else: value = re.escape(value) if escape_value else value - value = '=[\'"]?(?P%s)[\'"]?' % value + value = f'=[\'"]?(?P{value})[\'"]?' retlist = [] - for m in re.finditer(r'''(?xs) - <(?P%s) + for m in re.finditer(rf'''(?xs) + <(?P{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.*?) - ''' % (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) -- cgit v1.2.3