diff --git a/services/DROP/__init__.py b/services/DROP/__init__.py index d7fa67d..2faf098 100644 --- a/services/DROP/__init__.py +++ b/services/DROP/__init__.py @@ -1,15 +1,15 @@ import re +import json +import click from typing import Optional, Union from http.cookiejar import CookieJar -import json from bs4 import BeautifulSoup -import click from devine.core.service import Service from devine.core.titles import Episode, Series from devine.core.tracks import Tracks, Subtitle, Video, Audio -from devine.core.manifests import DASH from devine.core.credential import Credential +from devine.core.manifests import HLS class DROP(Service): @@ -22,7 +22,9 @@ class DROP(Service): # Updated regex to capture anything between / and /season or end of the URL TITLE_RE = r"^(?:https?://(?:www\.)?dropout\.tv/)([^/]+)(?:/.*)?$" SERIES_RE = r"https?://(?:www\.)?dropout\.tv/([^/]+)(?:/season:(\d+))?/?$" - EPISODE_RE = r"https?://(?:www\.)?dropout\.tv/([^/]+)/season:(\d+)/videos/([^/]+)/?$" + EPISODE_RE = ( + r"https?://(?:www\.)?dropout\.tv/([^/]+)/season:(\d+)/videos/([^/]+)/?$" + ) LOGIN_URL = "https://www.dropout.tv/login" @@ -37,7 +39,11 @@ class DROP(Service): self.title = title super().__init__(ctx) - def authenticate(self, cookies: Optional[CookieJar] = None, credential: Optional[Credential] = None) -> None: + def authenticate( + self, + cookies: Optional[CookieJar] = None, + credential: Optional[Credential] = None, + ) -> None: self.credentials = credential if cookies: @@ -50,7 +56,9 @@ class DROP(Service): "utf8": "true", } - response = self.session.post(self.LOGIN_URL, data=login_data, allow_redirects=False) + response = self.session.post( + self.LOGIN_URL, data=login_data, allow_redirects=False + ) if '