Move skip to function. fix blacklist_library.

pull/10/head
Luigi311 2022-06-11 12:49:44 -06:00
parent 9bcc500f57
commit 368bd35b16
3 changed files with 46 additions and 64 deletions

View File

@ -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

View File

@ -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,39 +76,12 @@ 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)
if skip_reason:
logger(f"Jellyfin: Skipping library {library_title} {skip_reason}", 1)
continue continue
if library_title.lower() in [x.lower() for x in blacklist_library]:
logger(f"Jellyfin: Library {library_title} is blacklist_library", 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
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)
# Movies # Movies
if library_type == "Movie": if library_type == "Movie":

View File

@ -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,38 +103,11 @@ 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)
if skip_reason:
logger(f"Plex: Skipping library {library_title} {skip_reason}", 1)
continue continue
if library_title.lower() in [x.lower() for x in blacklist_library]:
logger(f"Plex: Library {library_title} is blacklist_library", 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
for user in users: for user in users:
logger(f"Plex: Generating watched for {user.title} in library {library_title}", 0) logger(f"Plex: Generating watched for {user.title} in library {library_title}", 0)