1.0.5 release
- Update version number - Refactor cookie check to raise error when no cookies are found (required)
This commit is contained in:
		
							parent
							
								
									b553865ff5
								
							
						
					
					
						commit
						61befd1a2a
					
				@ -25,7 +25,7 @@ class CR(Service):
 | 
			
		||||
    """
 | 
			
		||||
    Service code for Crunchyroll
 | 
			
		||||
    Author: TPD94
 | 
			
		||||
    Version: 1.0.4
 | 
			
		||||
    Version: 1.0.5
 | 
			
		||||
    Authorization: Cookies for web endpoints, Credentials for TV endpoints, Cookies/Credentials for both. Cookies required.
 | 
			
		||||
    Security: FHD@L3
 | 
			
		||||
    Use Series ID/URL (for example - https://www.crunchyroll.com/series/GG5H5XQ7D/kaiju-no-8) or Series ID (for example - GG5H5XQ7D).
 | 
			
		||||
@ -36,7 +36,7 @@ class CR(Service):
 | 
			
		||||
                   help="""
 | 
			
		||||
                       Service code for Crunchyroll\n
 | 
			
		||||
                       Author: TPD94\n
 | 
			
		||||
                       Version: 1.0.4\n
 | 
			
		||||
                       Version: 1.0.5\n
 | 
			
		||||
                       Authorization: Cookies for web endpoints, Credentials for TV endpoints, Cookies/Credentials for both. Cookies required.\n
 | 
			
		||||
                       Security: FHD@L3\n
 | 
			
		||||
                       Use Series ID/URL (for example - https://www.crunchyroll.com/series/GG5H5XQ7D/kaiju-no-8) or Series ID (for example - GG5H5XQ7D).
 | 
			
		||||
@ -84,6 +84,9 @@ class CR(Service):
 | 
			
		||||
        # Run the super method to load the cookies without writing redundant code
 | 
			
		||||
        if not self.initial_login:
 | 
			
		||||
            super().authenticate(cookies, credential)
 | 
			
		||||
            # Raise error if no cookies, Crunchyroll has implemented recaptcha, so authorization via credentials is not implemented
 | 
			
		||||
            if not cookies and not self.initial_login:
 | 
			
		||||
                raise EnvironmentError("Service requires cookies for authentication.")
 | 
			
		||||
            if cookies:
 | 
			
		||||
                self.cookies = cookies
 | 
			
		||||
            elif hasattr(self, 'cookies'):
 | 
			
		||||
@ -96,10 +99,6 @@ class CR(Service):
 | 
			
		||||
 | 
			
		||||
            self.initial_login = True
 | 
			
		||||
 | 
			
		||||
        # Raise error if no cookies, Crunchyroll has implemented recaptcha, so authorization via credentials is not implemented
 | 
			
		||||
        if not cookies and not self.initial_login:
 | 
			
		||||
            raise EnvironmentError("Service requires cookies for authentication.")
 | 
			
		||||
 | 
			
		||||
        # If authenticate is being called for the first time and cookies are present, retrieve an authorization token
 | 
			
		||||
        if cookies and self.auth_token_web is None:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										59
									
								
								HMAX/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								HMAX/__init__.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,59 @@
 | 
			
		||||
import base64
 | 
			
		||||
import hashlib
 | 
			
		||||
import json
 | 
			
		||||
import re
 | 
			
		||||
from codecs import Codec
 | 
			
		||||
from collections.abc import Generator
 | 
			
		||||
from datetime import datetime, timedelta
 | 
			
		||||
from http.cookiejar import CookieJar
 | 
			
		||||
from typing import Optional, Union
 | 
			
		||||
import click
 | 
			
		||||
from langcodes import Language
 | 
			
		||||
from unshackle.core.console import console
 | 
			
		||||
from unshackle.core.constants import AnyTrack
 | 
			
		||||
from unshackle.core.credential import Credential
 | 
			
		||||
from unshackle.core.manifests import DASH
 | 
			
		||||
from unshackle.core.search_result import SearchResult
 | 
			
		||||
from unshackle.core.service import Service
 | 
			
		||||
from unshackle.core.session import session
 | 
			
		||||
from unshackle.core.titles import Episode, Movie, Movies, Series, Title_T, Titles_T
 | 
			
		||||
from unshackle.core.tracks import Chapter, Subtitle, Tracks, Video, Chapters
 | 
			
		||||
 | 
			
		||||
class HMAX(Service):
 | 
			
		||||
 | 
			
		||||
    """
 | 
			
		||||
    Service code for HBO Max
 | 
			
		||||
    Author: TPD94
 | 
			
		||||
    Version: 1.0.0
 | 
			
		||||
    Authorization:
 | 
			
		||||
    Security:
 | 
			
		||||
    Use Series ID/URL (for example - ).
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    @click.command(name="HMAX", short_help="https://hbomax.com/",
 | 
			
		||||
                   help="""
 | 
			
		||||
                       Service code for HBO Max\n
 | 
			
		||||
                       Author: TPD94\n
 | 
			
		||||
                       Version: 1.0.0\n
 | 
			
		||||
                       Authorization:\n
 | 
			
		||||
                       Security:\n
 | 
			
		||||
                       Use full URL (for example - ).
 | 
			
		||||
                       """
 | 
			
		||||
                   )
 | 
			
		||||
    @click.argument("title", type=str)
 | 
			
		||||
    @click.pass_context
 | 
			
		||||
 | 
			
		||||
    def cli(ctx, **kwargs):
 | 
			
		||||
        return HMAX(ctx, **kwargs)
 | 
			
		||||
 | 
			
		||||
    def __init__(self, ctx, title):
 | 
			
		||||
        super().__init__(ctx)
 | 
			
		||||
 | 
			
		||||
    def get_session(self):
 | 
			
		||||
 | 
			
		||||
        # Create a session using curl_cffi as it can impersonate browsers and avoid bot detection by HBO Max
 | 
			
		||||
        return session("chrome124")
 | 
			
		||||
 | 
			
		||||
    def authenticate(self, cookies: Optional[CookieJar] = None, credential: Optional[Credential] = None) -> None:
 | 
			
		||||
        super().authenticate(cookies, credential)
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user