Move skip to function. fix blacklist_library.
parent
9bcc500f57
commit
368bd35b16
|
|
@ -33,7 +33,43 @@ def str_to_bool(value: any) -> bool:
|
||||||
def search_mapping(dictionary: dict, key_value: str):
|
def search_mapping(dictionary: dict, key_value: str):
|
||||||
if key_value in dictionary.keys():
|
if key_value in dictionary.keys():
|
||||||
return dictionary[key_value]
|
return dictionary[key_value]
|
||||||
|
elif key_value.lower() in dictionary.keys():
|
||||||
|
return dictionary[key_value]
|
||||||
elif key_value in dictionary.values():
|
elif key_value in dictionary.values():
|
||||||
return list(dictionary.keys())[list(dictionary.values()).index(key_value)]
|
return list(dictionary.keys())[list(dictionary.values()).index(key_value)]
|
||||||
|
elif key_value.lower() in dictionary.values():
|
||||||
|
return list(dictionary.keys())[list(dictionary.values()).index(key_value)]
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def check_skip_logic(library_title, library_type, blacklist_library, whitelist_library, blacklist_library_type, whitelist_library_type, library_mapping):
|
||||||
|
skip_reason = None
|
||||||
|
|
||||||
|
if library_type.lower() in blacklist_library_type:
|
||||||
|
skip_reason = "is blacklist_library_type"
|
||||||
|
|
||||||
|
if library_title.lower() in [x.lower() for x in blacklist_library]:
|
||||||
|
skip_reason = "is blacklist_library"
|
||||||
|
|
||||||
|
library_other = None
|
||||||
|
if library_mapping:
|
||||||
|
library_other = search_mapping(library_mapping, library_title)
|
||||||
|
if library_other:
|
||||||
|
if library_other.lower() in [x.lower() for x in blacklist_library]:
|
||||||
|
skip_reason = "is blacklist_library"
|
||||||
|
|
||||||
|
if len(whitelist_library_type) > 0:
|
||||||
|
if library_type.lower() not in whitelist_library_type:
|
||||||
|
skip_reason = "is not whitelist_library_type"
|
||||||
|
|
||||||
|
# if whitelist is not empty and library is not in whitelist
|
||||||
|
if len(whitelist_library) > 0:
|
||||||
|
if library_title.lower() not in [x.lower() for x in whitelist_library]:
|
||||||
|
skip_reason = "is not whitelist_library"
|
||||||
|
|
||||||
|
if library_other:
|
||||||
|
if library_other.lower() not in [x.lower() for x in whitelist_library]:
|
||||||
|
skip_reason = "is not whitelist_library"
|
||||||
|
|
||||||
|
return skip_reason
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import requests, os
|
import requests, os
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from src.functions import logger, search_mapping, str_to_bool
|
from src.functions import logger, search_mapping, str_to_bool, check_skip_logic
|
||||||
|
|
||||||
load_dotenv(override=True)
|
load_dotenv(override=True)
|
||||||
|
|
||||||
|
|
@ -76,37 +76,10 @@ class Jellyfin():
|
||||||
else:
|
else:
|
||||||
library_type = watched["Items"][0]["Type"]
|
library_type = watched["Items"][0]["Type"]
|
||||||
|
|
||||||
if library_type.lower() in blacklist_library_type:
|
skip_reason = check_skip_logic(library_title, library_type, blacklist_library, whitelist_library, blacklist_library_type, whitelist_library_type, library_mapping)
|
||||||
logger(f"Jellyfin: Library type {library_type} is blacklist_library_type", 1)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if library_title.lower() in [x.lower() for x in blacklist_library]:
|
if skip_reason:
|
||||||
logger(f"Jellyfin: Library {library_title} is blacklist_library", 1)
|
logger(f"Jellyfin: Skipping library {library_title} {skip_reason}", 1)
|
||||||
continue
|
|
||||||
|
|
||||||
library_other = None
|
|
||||||
if library_mapping:
|
|
||||||
library_other = search_mapping(library_mapping, library_title)
|
|
||||||
if library_other:
|
|
||||||
library_other.lower()
|
|
||||||
if library_other not in [x.lower() for x in blacklist_library]:
|
|
||||||
logger(f"Jellyfin: Library {library_other} is blacklist_library", 1)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if len(whitelist_library_type) > 0:
|
|
||||||
if library_type.lower() not in whitelist_library_type:
|
|
||||||
logger(f"Jellyfin: Library type {library_type} is not whitelist_library_type", 1)
|
|
||||||
continue
|
|
||||||
|
|
||||||
# if whitelist is not empty and library is not in whitelist
|
|
||||||
if len(whitelist_library) > 0:
|
|
||||||
if library_title.lower() not in [x.lower() for x in whitelist_library]:
|
|
||||||
logger(f"Jellyfin: Library {library_title} is not whitelist_library", 1)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if library_other:
|
|
||||||
if library_other not in [x.lower() for x in whitelist_library]:
|
|
||||||
logger(f"Jellyfin: Library {library_other} is not whitelist_library", 1)
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
logger(f"Jellyfin: Generating watched for {user_name} in library {library_title}", 0)
|
logger(f"Jellyfin: Generating watched for {user_name} in library {library_title}", 0)
|
||||||
|
|
|
||||||
35
src/plex.py
35
src/plex.py
|
|
@ -1,7 +1,7 @@
|
||||||
import re, os
|
import re, os
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
from src.functions import logger, search_mapping
|
from src.functions import logger, search_mapping, check_skip_logic
|
||||||
from plexapi.server import PlexServer
|
from plexapi.server import PlexServer
|
||||||
from plexapi.myplex import MyPlexAccount
|
from plexapi.myplex import MyPlexAccount
|
||||||
|
|
||||||
|
|
@ -103,37 +103,10 @@ class Plex:
|
||||||
library_title = library.title
|
library_title = library.title
|
||||||
library_type = library.type
|
library_type = library.type
|
||||||
|
|
||||||
if library_type.lower() in blacklist_library_type:
|
skip_reason = check_skip_logic(library_title, library_type, blacklist_library, whitelist_library, blacklist_library_type, whitelist_library_type, library_mapping)
|
||||||
logger(f"Plex: Library type {library_type} is blacklist_library_type", 1)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if library_title.lower() in [x.lower() for x in blacklist_library]:
|
if skip_reason:
|
||||||
logger(f"Plex: Library {library_title} is blacklist_library", 1)
|
logger(f"Plex: Skipping library {library_title} {skip_reason}", 1)
|
||||||
continue
|
|
||||||
|
|
||||||
library_other = None
|
|
||||||
if library_mapping:
|
|
||||||
library_other = search_mapping(library_mapping, library_title)
|
|
||||||
if library_other:
|
|
||||||
library_other.lower()
|
|
||||||
if library_other not in [x.lower() for x in blacklist_library]:
|
|
||||||
logger(f"Plex: Library {library_other} is blacklist_library", 1)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if len(whitelist_library_type) > 0:
|
|
||||||
if library_type.lower() not in whitelist_library_type:
|
|
||||||
logger(f"Plex: Library type {library_type} is not whitelist_library_type", 1)
|
|
||||||
continue
|
|
||||||
|
|
||||||
# if whitelist is not empty and library is not in whitelist
|
|
||||||
if len(whitelist_library) > 0:
|
|
||||||
if library_title.lower() not in [x.lower() for x in whitelist_library]:
|
|
||||||
logger(f"Plex: Library {library_title} is not whitelist_library", 1)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if library_other:
|
|
||||||
if library_other not in [x.lower() for x in whitelist_library]:
|
|
||||||
logger(f"Plex: Library {library_other} is not whitelist_library", 1)
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
for user in users:
|
for user in users:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue