refactor: extract common _is_jwt_token_expired to InfoExtractor

This commit is contained in:
Michaël De Boey
2025-03-15 23:56:24 +01:00
parent e67d786c7c
commit 0242090a86
11 changed files with 20 additions and 53 deletions
+4 -8
View File
@@ -4,7 +4,6 @@ import json
import random
import re
import string
import time
from .common import InfoExtractor
from ..utils import (
@@ -106,11 +105,8 @@ class JioCinemaBaseIE(InfoExtractor):
'os': ('os', {str}),
})}, data=data)
def _is_token_expired(self, token):
return (try_call(lambda: jwt_decode_hs256(token)['exp']) or 0) <= int(time.time() - 180)
def _perform_login(self, username, password):
if self._ACCESS_TOKEN and not self._is_token_expired(self._ACCESS_TOKEN):
if self._ACCESS_TOKEN and not self._is_jwt_token_expired(self._ACCESS_TOKEN):
return
UUID_RE = r'[\da-f]{8}-(?:[\da-f]{4}-){3}[\da-f]{12}'
@@ -185,7 +181,7 @@ class JioCinemaBaseIE(InfoExtractor):
if JioCinemaBaseIE._REFRESH_TOKEN:
self._cache_token('access')
self.to_screen(f'Logging in as device ID "{JioCinemaBaseIE._DEVICE_ID}"')
if self._is_token_expired(JioCinemaBaseIE._ACCESS_TOKEN):
if self._is_jwt_token_expired(JioCinemaBaseIE._ACCESS_TOKEN):
self._refresh_token()
@@ -250,9 +246,9 @@ class JioCinemaIE(JioCinemaBaseIE):
def _real_extract(self, url):
video_id = self._match_id(url)
if not self._ACCESS_TOKEN and self._is_token_expired(self._GUEST_TOKEN):
if not self._ACCESS_TOKEN and self._is_jwt_token_expired(self._GUEST_TOKEN):
self._fetch_guest_token()
elif self._ACCESS_TOKEN and self._is_token_expired(self._ACCESS_TOKEN):
elif self._ACCESS_TOKEN and self._is_jwt_token_expired(self._ACCESS_TOKEN):
self._refresh_token()
playback = self._call_api(