Last of the fish

This commit is contained in:
VineFeeder
2026-06-22 19:53:57 +01:00
parent a865cb4ca2
commit bb5d37bda4
2 changed files with 17 additions and 17 deletions
@@ -7,13 +7,13 @@ from http.cookiejar import CookieJar
from typing import Any from typing import Any
import click import click
from envied.core.credential import Credential from unshackle.core.credential import Credential
from envied.core.manifests import DASH from unshackle.core.manifests import DASH
from envied.core.service import Service from unshackle.core.service import Service
from envied.core.session import session from unshackle.core.session import session
from envied.core.titles import Episode, Movie, Movies, Series from unshackle.core.titles import Episode, Movie, Movies, Series
from envied.core.tracks import Audio, Chapter, Chapters, Subtitle, Tracks from unshackle.core.tracks import Audio, Chapter, Chapters, Subtitle, Tracks
from envied.core.cdm.detect import is_playready_cdm from unshackle.core.cdm.detect import is_playready_cdm
class CRAV(Service): class CRAV(Service):
@@ -21,7 +21,7 @@ class CRAV(Service):
Service code for Bell Media's Crave streaming service (https://crave.ca). Service code for Bell Media's Crave streaming service (https://crave.ca).
\b \b
Version: 1.0.1 Version: 1.0.2
Author: stabbedbybrick Author: stabbedbybrick
Authorization: Credentials Authorization: Credentials
Geofence: CA (API and downloads) Geofence: CA (API and downloads)
@@ -70,7 +70,7 @@ class CRAV(Service):
self.user_profile = "default" self.user_profile = "default"
def get_session(self) -> session: def get_session(self) -> session:
return session() return session("OkHttp4_12", status_forcelist=[429, 502, 503, 504])
def authenticate(self, cookies: CookieJar | None = None, credential: Credential | None = None) -> None: def authenticate(self, cookies: CookieJar | None = None, credential: Credential | None = None) -> None:
if not credential: if not credential:
@@ -424,8 +424,8 @@ class CRAV(Service):
service=self.__class__, service=self.__class__,
title=episode.get("media", {}).get("title"), title=episode.get("media", {}).get("title"),
year=episode.get("media", {}).get("productionYear"), year=episode.get("media", {}).get("productionYear"),
season=int(episode.get("seasonNumber", 0)), season=int(episode.get("seasonNumber") or 0),
number=int(episode.get("episodeNumber", 0)), number=int(episode.get("episodeNumber") or 0),
name=episode.get("title"), name=episode.get("title"),
language=original_language, language=original_language,
data=episode, data=episode,
@@ -535,8 +535,8 @@ class CRAV(Service):
service=self.__class__, service=self.__class__,
title=content.get("media", {}).get("title"), title=content.get("media", {}).get("title"),
year=content.get("media", {}).get("productionYear"), year=content.get("media", {}).get("productionYear"),
season=int(content.get("seasonNumber", 0)), season=int(content.get("seasonNumber") or 0),
number=int(content.get("episodeNumber", 0)), number=int(content.get("episodeNumber") or 0),
name=content.get("title"), name=content.get("title"),
language=original_language, language=original_language,
data=content, data=content,
@@ -20,7 +20,7 @@ from envied.core.credential import Credential
from envied.core.manifests import DASH from envied.core.manifests import DASH
from envied.core.search_result import SearchResult from envied.core.search_result import SearchResult
from envied.core.service import Service from envied.core.service import Service
from envied.core.session import session as CurlSession from envied.core.session import session
from envied.core.titles import Episode, Movie, Movies, Series from envied.core.titles import Episode, Movie, Movies, Series
from envied.core.tracks import Audio, Chapter, Chapters, Subtitle, Track, Tracks from envied.core.tracks import Audio, Chapter, Chapters, Subtitle, Track, Tracks
from envied.core.utilities import is_close_match from envied.core.utilities import is_close_match
@@ -33,7 +33,7 @@ class DSCP(Service):
Credit to @sp4rk.y for the subtitle fix. Credit to @sp4rk.y for the subtitle fix.
\b \b
Version: 1.0.3 Version: 1.0.4
Author: stabbedbybrick Author: stabbedbybrick
Authorization: Cookies for subscription, none for freely available titles Authorization: Cookies for subscription, none for freely available titles
Robustness: Robustness:
@@ -96,8 +96,8 @@ class DSCP(Service):
self.base_url = self.config["endpoints"]["default_url"] self.base_url = self.config["endpoints"]["default_url"]
def get_session(self) -> CurlSession: def get_session(self) -> session:
return CurlSession("okhttp4", status_forcelist=[429, 502, 503, 504]) return session("OkHttp4_12", status_forcelist=[429, 502, 503, 504])
def authenticate(self, cookies: CookieJar | None = None, credential: Credential | None = None) -> None: def authenticate(self, cookies: CookieJar | None = None, credential: Credential | None = None) -> None:
super().authenticate(cookies, credential) super().authenticate(cookies, credential)