]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/nba.py
[cleanup] Add more ruff rules (#10149)
[yt-dlp.git] / yt_dlp / extractor / nba.py
index ec4d6368e442e5fdfcf5553997f65a01086bef96..91ae1d14c65c8fa0f0efa92efe035c6c881ecd7d 100644 (file)
@@ -1,11 +1,8 @@
 import functools
 import re
+import urllib.parse
 
 from .turner import TurnerBaseIE
-from ..compat import (
-    compat_str,
-    compat_urllib_parse_unquote,
-)
 from ..utils import (
     OnDemandPagedList,
     int_or_none,
@@ -22,7 +19,7 @@
 class NBACVPBaseIE(TurnerBaseIE):
     def _extract_nba_cvp_info(self, path, video_id, fatal=False):
         return self._extract_cvp_info(
-            'http://secure.nba.com/%s' % path, video_id, {
+            f'http://secure.nba.com/{path}', video_id, {
                 'default': {
                     'media_src': 'http://nba.cdn.turner.com/nba/big',
                 },
@@ -185,7 +182,7 @@ def _fetch_page(self, collection_id, page):
         page += 1
         videos = self._download_json(
             'https://content-api-prod.nba.com/public/1/endeavor/video-list/collection/' + collection_id,
-            collection_id, 'Downloading page %d JSON metadata' % page, query={
+            collection_id, f'Downloading page {page} JSON metadata', query={
                 'count': self._PAGE_SIZE,
                 'page': page,
             })['results']['videos']
@@ -260,14 +257,14 @@ def _embed_url_result(self, team, content_id):
 
     def _call_api(self, team, content_id, query, resource):
         return self._download_json(
-            'https://api.nba.net/2/%s/video,imported_video,wsc/' % team,
-            content_id, 'Download %s JSON metadata' % resource,
+            f'https://api.nba.net/2/{team}/video,imported_video,wsc/',
+            content_id, f'Download {resource} JSON metadata',
             query=query, headers={
                 'accessToken': 'internal|bb88df6b4c2244e78822812cecf1ee1b',
             })['response']['result']
 
     def _extract_video(self, video, team, extract_all=True):
-        video_id = compat_str(video['nid'])
+        video_id = str(video['nid'])
         team = video['brand']
 
         info = {
@@ -330,7 +327,7 @@ def _extract_video(self, video, team, extract_all=True):
     def _real_extract(self, url):
         team, display_id = self._match_valid_url(url).groups()
         if '/play#/' in url:
-            display_id = compat_urllib_parse_unquote(display_id)
+            display_id = urllib.parse.unquote(display_id)
         else:
             webpage = self._download_webpage(url, display_id)
             display_id = self._search_regex(
@@ -362,7 +359,7 @@ def _real_extract(self, url):
 
 class NBAIE(NBABaseIE):
     IE_NAME = 'nba'
-    _VALID_URL = NBABaseIE._VALID_URL_BASE + '(?!%s)video/(?P<id>(?:[^/]+/)*[^/?#&]+)' % NBABaseIE._CHANNEL_PATH_REGEX
+    _VALID_URL = NBABaseIE._VALID_URL_BASE + f'(?!{NBABaseIE._CHANNEL_PATH_REGEX})video/(?P<id>(?:[^/]+/)*[^/?#&]+)'
     _TESTS = [{
         'url': 'https://www.nba.com/bulls/video/teams/bulls/2020/12/04/3478774/1607105587854-20201204schedulereleasefinaldrupal-3478774',
         'info_dict': {
@@ -389,7 +386,7 @@ def _extract_url_results(self, team, content_id):
 
 class NBAChannelIE(NBABaseIE):
     IE_NAME = 'nba:channel'
-    _VALID_URL = NBABaseIE._VALID_URL_BASE + '(?:%s)/(?P<id>[^/?#&]+)' % NBABaseIE._CHANNEL_PATH_REGEX
+    _VALID_URL = NBABaseIE._VALID_URL_BASE + f'(?:{NBABaseIE._CHANNEL_PATH_REGEX})/(?P<id>[^/?#&]+)'
     _TESTS = [{
         'url': 'https://www.nba.com/blazers/video/channel/summer_league',
         'info_dict': {
@@ -408,7 +405,7 @@ def _fetch_page(self, team, channel, page):
             'channels': channel,
             'count': self._PAGE_SIZE,
             'offset': page * self._PAGE_SIZE,
-        }, 'page %d' % (page + 1))
+        }, f'page {page + 1}')
         for video in results:
             yield self._extract_video(video, team, False)