diff --git a/src/emby.py b/src/emby.py index 0af0e0a..62f6fcb 100644 --- a/src/emby.py +++ b/src/emby.py @@ -1,5 +1,5 @@ from src.jellyfin_emby import JellyfinEmby -from packaging import version +from packaging.version import (parse, Version) class Emby(JellyfinEmby): @@ -21,5 +21,5 @@ class Emby(JellyfinEmby): server_type="Emby", baseurl=baseurl, token=token, headers=headers ) - def is_partial_update_supported(self, server_version): - return server_version > version.parse("4.4") + def is_partial_update_supported(self, server_version: Version) -> bool: + return server_version > parse("4.4") diff --git a/src/jellyfin.py b/src/jellyfin.py index faf91b5..d9ce6ef 100644 --- a/src/jellyfin.py +++ b/src/jellyfin.py @@ -1,5 +1,5 @@ from src.jellyfin_emby import JellyfinEmby -from packaging import version +from packaging.version import (parse, Version) class Jellyfin(JellyfinEmby): @@ -21,5 +21,5 @@ class Jellyfin(JellyfinEmby): server_type="Jellyfin", baseurl=baseurl, token=token, headers=headers ) - def is_partial_update_supported(self, server_version): - return server_version >= version.parse("10.9.0") + def is_partial_update_supported(self, server_version: Version) -> bool: + return server_version >= parse("10.9.0") diff --git a/src/jellyfin_emby.py b/src/jellyfin_emby.py index 55c3609..c99574d 100644 --- a/src/jellyfin_emby.py +++ b/src/jellyfin_emby.py @@ -2,9 +2,10 @@ import traceback, os from math import floor +from typing import Union from dotenv import load_dotenv import requests -from packaging import version +from packaging.version import (parse, Version) from src.functions import ( logger, @@ -172,7 +173,7 @@ class JellyfinEmby: ) raise Exception(e) - def info(self, name_only: bool = False) -> str: + def info(self, name_only: bool = False, version_only: bool = False) -> Union[str | Version]: try: query_string = "/System/Info/Public" @@ -181,6 +182,9 @@ class JellyfinEmby: if response: if name_only: return f"{response['ServerName']}" + elif version_only: + return parse(response["Version"]) + return f"{self.server_type} {response['ServerName']}: {response['Version']}" else: return None @@ -189,19 +193,6 @@ class JellyfinEmby: logger(f"{self.server_type}: Get server name failed {e}", 2) raise Exception(e) - def get_server_version(self): - try: - response = self.query("/System/Info/Public", "get") - - if response: - return version.parse(response["Version"]) - else: - return None - - except Exception as e: - logger(f"{self.server_type}: Get server version failed: {e}", 2) - raise Exception(e) - def get_users(self): try: users = {} @@ -725,7 +716,7 @@ class JellyfinEmby: self, watched_list, user_mapping=None, library_mapping=None, dryrun=False ): try: - server_version = self.get_server_version() + server_version = self.info(version_only=True) update_partial = self.is_partial_update_supported(server_version) if not update_partial: