Jellyfin/emby: Combine info/version, add typing for versions
Signed-off-by: Luis Garcia <git@luigi311.com>pull/210/head
parent
58749a4fb8
commit
e1c65fc082
|
|
@ -1,5 +1,5 @@
|
||||||
from src.jellyfin_emby import JellyfinEmby
|
from src.jellyfin_emby import JellyfinEmby
|
||||||
from packaging import version
|
from packaging.version import (parse, Version)
|
||||||
|
|
||||||
|
|
||||||
class Emby(JellyfinEmby):
|
class Emby(JellyfinEmby):
|
||||||
|
|
@ -21,5 +21,5 @@ class Emby(JellyfinEmby):
|
||||||
server_type="Emby", baseurl=baseurl, token=token, headers=headers
|
server_type="Emby", baseurl=baseurl, token=token, headers=headers
|
||||||
)
|
)
|
||||||
|
|
||||||
def is_partial_update_supported(self, server_version):
|
def is_partial_update_supported(self, server_version: Version) -> bool:
|
||||||
return server_version > version.parse("4.4")
|
return server_version > parse("4.4")
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
from src.jellyfin_emby import JellyfinEmby
|
from src.jellyfin_emby import JellyfinEmby
|
||||||
from packaging import version
|
from packaging.version import (parse, Version)
|
||||||
|
|
||||||
|
|
||||||
class Jellyfin(JellyfinEmby):
|
class Jellyfin(JellyfinEmby):
|
||||||
|
|
@ -21,5 +21,5 @@ class Jellyfin(JellyfinEmby):
|
||||||
server_type="Jellyfin", baseurl=baseurl, token=token, headers=headers
|
server_type="Jellyfin", baseurl=baseurl, token=token, headers=headers
|
||||||
)
|
)
|
||||||
|
|
||||||
def is_partial_update_supported(self, server_version):
|
def is_partial_update_supported(self, server_version: Version) -> bool:
|
||||||
return server_version >= version.parse("10.9.0")
|
return server_version >= parse("10.9.0")
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,10 @@
|
||||||
|
|
||||||
import traceback, os
|
import traceback, os
|
||||||
from math import floor
|
from math import floor
|
||||||
|
from typing import Union
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
import requests
|
import requests
|
||||||
from packaging import version
|
from packaging.version import (parse, Version)
|
||||||
|
|
||||||
from src.functions import (
|
from src.functions import (
|
||||||
logger,
|
logger,
|
||||||
|
|
@ -172,7 +173,7 @@ class JellyfinEmby:
|
||||||
)
|
)
|
||||||
raise Exception(e)
|
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:
|
try:
|
||||||
query_string = "/System/Info/Public"
|
query_string = "/System/Info/Public"
|
||||||
|
|
||||||
|
|
@ -181,6 +182,9 @@ class JellyfinEmby:
|
||||||
if response:
|
if response:
|
||||||
if name_only:
|
if name_only:
|
||||||
return f"{response['ServerName']}"
|
return f"{response['ServerName']}"
|
||||||
|
elif version_only:
|
||||||
|
return parse(response["Version"])
|
||||||
|
|
||||||
return f"{self.server_type} {response['ServerName']}: {response['Version']}"
|
return f"{self.server_type} {response['ServerName']}: {response['Version']}"
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
@ -189,19 +193,6 @@ class JellyfinEmby:
|
||||||
logger(f"{self.server_type}: Get server name failed {e}", 2)
|
logger(f"{self.server_type}: Get server name failed {e}", 2)
|
||||||
raise Exception(e)
|
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):
|
def get_users(self):
|
||||||
try:
|
try:
|
||||||
users = {}
|
users = {}
|
||||||
|
|
@ -725,7 +716,7 @@ class JellyfinEmby:
|
||||||
self, watched_list, user_mapping=None, library_mapping=None, dryrun=False
|
self, watched_list, user_mapping=None, library_mapping=None, dryrun=False
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
server_version = self.get_server_version()
|
server_version = self.info(version_only=True)
|
||||||
update_partial = self.is_partial_update_supported(server_version)
|
update_partial = self.is_partial_update_supported(server_version)
|
||||||
|
|
||||||
if not update_partial:
|
if not update_partial:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue