Skip to content

Commit 2663cbe

Browse files
committed
#328 added create_asset_folders to settings
1 parent ed8d769 commit 2663cbe

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

modules/builder.py

+1
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ def __init__(self, config, library, metadata, name, data):
149149
"show_missing": self.library.show_missing,
150150
"save_missing": self.library.save_missing,
151151
"released_missing_only": self.library.released_missing_only,
152+
"create_asset_folders": self.library.create_asset_folders,
152153
"item_assets": False
153154
}
154155
self.item_details = {}

modules/config.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,8 @@ def check_for_attribute(data, attribute, parent=None, test_list=None, default=No
183183
"show_filtered": check_for_attribute(self.data, "show_filtered", parent="settings", var_type="bool", default=False),
184184
"show_missing": check_for_attribute(self.data, "show_missing", parent="settings", var_type="bool", default=True),
185185
"save_missing": check_for_attribute(self.data, "save_missing", parent="settings", var_type="bool", default=True),
186-
"released_missing_only": check_for_attribute(self.data, "released_missing_only", parent="settings", var_type="bool", default=False)
186+
"released_missing_only": check_for_attribute(self.data, "released_missing_only", parent="settings", var_type="bool", default=False),
187+
"create_asset_folders": check_for_attribute(self.data, "create_asset_folders", parent="settings", var_type="bool", default=False)
187188
}
188189
if self.general["cache"]:
189190
util.separator()
@@ -349,6 +350,7 @@ def check_for_attribute(data, attribute, parent=None, test_list=None, default=No
349350
params["show_missing"] = check_for_attribute(lib, "show_missing", parent="settings", var_type="bool", default=self.general["show_missing"], do_print=False, save=False)
350351
params["save_missing"] = check_for_attribute(lib, "save_missing", parent="settings", var_type="bool", default=self.general["save_missing"], do_print=False, save=False)
351352
params["released_missing_only"] = check_for_attribute(lib, "released_missing_only", parent="settings", var_type="bool", default=self.general["released_missing_only"], do_print=False, save=False)
353+
params["create_asset_folders"] = check_for_attribute(lib, "create_asset_folders", parent="settings", var_type="bool", default=self.general["create_asset_folders"], do_print=False, save=False)
352354

353355
if lib and "mass_genre_update" in lib and lib["mass_genre_update"]:
354356
params["mass_genre_update"] = check_for_attribute(lib, "mass_genre_update", test_list=mass_update_options, default_is_none=True, save=False)

modules/plex.py

+10-3
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@ def __init__(self, config, params):
280280
self.show_missing = params["show_missing"]
281281
self.save_missing = params["save_missing"]
282282
self.released_missing_only = params["released_missing_only"]
283+
self.create_asset_folders = params["create_asset_folders"]
283284
self.mass_genre_update = params["mass_genre_update"]
284285
self.mass_audience_rating_update = params["mass_audience_rating_update"]
285286
self.mass_critic_rating_update = params["mass_critic_rating_update"]
@@ -746,7 +747,7 @@ def edit_tags(self, attr, obj, add_tags=None, remove_tags=None, sync_tags=None):
746747
logger.info(f"Detail: {attr.capitalize()} {_remove} removed")
747748
return updated
748749

749-
def update_item_from_assets(self, item, overlay=None):
750+
def update_item_from_assets(self, item, overlay=None, create=False):
750751
name = os.path.basename(os.path.dirname(str(item.locations[0])) if self.is_movie else str(item.locations[0]))
751752
logger.debug(name)
752753
found_folder = False
@@ -798,12 +799,15 @@ def update_item_from_assets(self, item, overlay=None):
798799
self.upload_images(episode, poster=episode_poster)
799800
if not poster and overlay:
800801
self.upload_images(item, overlay=overlay)
801-
if not overlay and self.asset_folders and not found_folder:
802+
if create and self.asset_folders and not found_folder:
803+
os.makedirs(os.path.join(self.asset_directory[0], name), exist_ok=True)
804+
logger.info(f"Asset Directory Created: {os.path.join(self.asset_directory[0], name)}")
805+
elif not overlay and self.asset_folders and not found_folder:
802806
logger.error(f"Asset Warning: No asset folder found called '{name}'")
803807
elif not poster and not background:
804808
logger.error(f"Asset Warning: No poster or background found in an assets folder for '{name}'")
805809

806-
def find_collection_assets(self, item, name=None):
810+
def find_collection_assets(self, item, name=None, create=False):
807811
if name is None:
808812
name = item.title
809813
for ad in self.asset_directory:
@@ -825,4 +829,7 @@ def find_collection_assets(self, item, name=None):
825829
background = ImageData("asset_directory", os.path.abspath(matches[0]), prefix=f"{item.title}'s ", is_poster=False, is_url=False)
826830
if poster or background:
827831
return poster, background
832+
if create and self.asset_folders and not os.path.isdir(os.path.join(self.asset_directory[0], name)):
833+
os.makedirs(os.path.join(self.asset_directory[0], name), exist_ok=True)
834+
logger.info(f"Asset Directory Created: {os.path.join(self.asset_directory[0], name)}")
828835
return None, None

plex_meta_manager.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,10 @@ def update_libraries(config):
189189
util.separator(f"All {'Movies' if library.is_movie else 'Shows'} Assets Check for {library.name} Library", space=False, border=False)
190190
logger.info("")
191191
for col in unmanaged_collections:
192-
poster, background = library.find_collection_assets(col)
192+
poster, background = library.find_collection_assets(col, create=library.create_asset_folders)
193193
library.upload_images(col, poster=poster, background=background)
194194
for item in library.get_all():
195-
library.update_item_from_assets(item)
195+
library.update_item_from_assets(item, create=library.create_asset_folders)
196196

197197
logger.removeHandler(library_handler)
198198

0 commit comments

Comments
 (0)