]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/panopto.py
[misc] Add `hatch`, `ruff`, `pre-commit` and improve dev docs (#7409)
[yt-dlp.git] / yt_dlp / extractor / panopto.py
index 5ab2b2bcec40bcae283ac1eb7639a872e8187144..6b25962361baf3148e690aa002d77216bd8b0baf 100644 (file)
@@ -1,21 +1,17 @@
 import calendar
-import json
+import datetime as dt
 import functools
-from datetime import datetime, timezone
-from random import random
+import json
+import random
 
 from .common import InfoExtractor
-from ..compat import (
-    compat_urllib_parse_urlparse,
-    compat_urlparse
-)
-
+from ..compat import compat_urllib_parse_urlparse, compat_urlparse
 from ..utils import (
-    bug_reports_message,
     ExtractorError,
+    OnDemandPagedList,
+    bug_reports_message,
     get_first,
     int_or_none,
-    OnDemandPagedList,
     parse_qs,
     srt_subtitles_timecode,
     traverse_obj,
@@ -243,7 +239,7 @@ def _mark_watched(self, base_url, video_id, delivery_info):
         invocation_id = delivery_info.get('InvocationId')
         stream_id = traverse_obj(delivery_info, ('Delivery', 'Streams', ..., 'PublicID'), get_all=False, expected_type=str)
         if invocation_id and stream_id and duration:
-            timestamp_str = f'/Date({calendar.timegm(datetime.now(timezone.utc).timetuple())}000)/'
+            timestamp_str = f'/Date({calendar.timegm(dt.datetime.now(dt.timezone.utc).timetuple())}000)/'
             data = {
                 'streamRequests': [
                     {
@@ -415,7 +411,7 @@ def _real_extract(self, url):
             'cast': traverse_obj(delivery, ('Contributors', ..., 'DisplayName'), expected_type=lambda x: x or None),
             'timestamp': session_start_time - 11640000000 if session_start_time else None,
             'duration': delivery.get('Duration'),
-            'thumbnail': base_url + f'/Services/FrameGrabber.svc/FrameRedirect?objectId={video_id}&mode=Delivery&random={random()}',
+            'thumbnail': base_url + f'/Services/FrameGrabber.svc/FrameRedirect?objectId={video_id}&mode=Delivery&random={random.random()}',
             'average_rating': delivery.get('AverageRating'),
             'chapters': self._extract_chapters(timestamps),
             'uploader': delivery.get('OwnerDisplayName') or None,
@@ -536,7 +532,7 @@ def _fetch_page(self, base_url, query_params, display_id, page):
         }
 
         response = self._call_api(
-            base_url, '/Services/Data.svc/GetSessions', f'{display_id} page {page+1}',
+            base_url, '/Services/Data.svc/GetSessions', f'{display_id} page {page + 1}',
             data={'queryParameters': params}, fatal=False)
 
         for result in get_first(response, 'Results', default=[]):