Fixed bug when renaming with title empty

This commit is contained in:
David Maisonave
2024-07-23 06:52:17 -04:00
parent 1391a4e66f
commit 00e1d260fb
2 changed files with 69 additions and 38 deletions

View File

@@ -27,6 +27,9 @@ logger = logging.getLogger('renamefile')
DEFAULT_ENDPOINT = "http://localhost:9999/graphql" # Default GraphQL endpoint DEFAULT_ENDPOINT = "http://localhost:9999/graphql" # Default GraphQL endpoint
DEFAULT_FIELD_KEY_LIST = "title, performers, tags" # Default Field Key List with the desired order DEFAULT_FIELD_KEY_LIST = "title, performers, tags" # Default Field Key List with the desired order
DEFAULT_SEPERATOR = "-" DEFAULT_SEPERATOR = "-"
PLUGIN_ARGS = False
# ------------------------------------------ # ------------------------------------------
# ------------------------------------------ # ------------------------------------------
@@ -58,7 +61,11 @@ debugTracing = settings["zzdebugTracing"]
# Extract dry_run setting from settings # Extract dry_run setting from settings
dry_run = settings["dryRun"] dry_run = settings["dryRun"]
dry_run_prefix = '' dry_run_prefix = ''
logger.info(f"\nStarting (debugTracing={debugTracing}) (dry_run={dry_run})************************************************") try:
PLUGIN_ARGS = json_input['args']["mode"]
except:
pass
logger.info(f"\nStarting (debugTracing={debugTracing}) (dry_run={dry_run}) (PLUGIN_ARGS={PLUGIN_ARGS})************************************************")
if debugTracing: logger.info("settings: %s " % (settings,)) if debugTracing: logger.info("settings: %s " % (settings,))
if dry_run: if dry_run:
logger.info("Dry run mode is enabled.") logger.info("Dry run mode is enabled.")
@@ -96,6 +103,7 @@ separator = settings["zseparators"]
double_separator = separator + separator double_separator = separator + separator
# GraphQL query to fetch all scenes # GraphQL query to fetch all scenes
query_all_scenes = """ query_all_scenes = """
query AllScenes { query AllScenes {
@@ -152,7 +160,7 @@ def form_filename(original_file_stem, scene_details, wrapper_styles):
title = default_title title = default_title
# ................... # ...................
if debugTracing: logger.info("Debug Tracing................") if debugTracing: logger.info(f"Debug Tracing (title=\"{title}\")................")
# Function to add tag to filename # Function to add tag to filename
def add_tag(tag_name): def add_tag(tag_name):
@@ -195,7 +203,9 @@ def form_filename(original_file_stem, scene_details, wrapper_styles):
if settings["performerAppend"]: if settings["performerAppend"]:
performers = '-'.join([performer.get('name', '') for performer in scene_details.get('performers', [])]) performers = '-'.join([performer.get('name', '') for performer in scene_details.get('performers', [])])
if performers: if performers:
if not include_performer_if_in_name or performers.lower() not in title.lower(): if debugTracing: logger.info(f"Debug Tracing (include_performer_if_in_name={include_performer_if_in_name})................")
if include_performer_if_in_name or performers.lower() not in title.lower():
if debugTracing: logger.info(f"Debug Tracing (performers={performers})................")
if wrapper_styles.get('performers'): if wrapper_styles.get('performers'):
filename_parts.append(f"{wrapper_styles['performers'][0]}{performers}{wrapper_styles['performers'][1]}") filename_parts.append(f"{wrapper_styles['performers'][0]}{performers}{wrapper_styles['performers'][1]}")
else: else:
@@ -237,7 +247,7 @@ def form_filename(original_file_stem, scene_details, wrapper_styles):
if debugTracing: logger.info(f"Debug Tracing (include_tag_if_in_name={include_tag_if_in_name})................") if debugTracing: logger.info(f"Debug Tracing (include_tag_if_in_name={include_tag_if_in_name})................")
if include_tag_if_in_name or tag_name.lower() not in title.lower(): if include_tag_if_in_name or tag_name.lower() not in title.lower():
add_tag(tag_name) add_tag(tag_name)
if debugTracing: logger.info("Debug Tracing................") if debugTracing: logger.info(f"Debug Tracing (tag_name={tag_name})................")
new_filename = separator.join(filename_parts).replace(double_separator, separator) new_filename = separator.join(filename_parts).replace(double_separator, separator)
@@ -408,6 +418,8 @@ def rename_scene(scene_id, wrapper_styles, stash_directory):
return new_filename, original_path_info, new_path_info return new_filename, original_path_info, new_path_info
# Main default function for rename scene
def rename_files_task():
if debugTracing: logger.info("Debug Tracing................") if debugTracing: logger.info("Debug Tracing................")
# Execute the GraphQL query to fetch all scenes # Execute the GraphQL query to fetch all scenes
scene_result = graphql_request(query_all_scenes) scene_result = graphql_request(query_all_scenes)
@@ -449,8 +461,23 @@ elif not new_filename:
logger.info("No changes were made.") logger.info("No changes were made.")
else: else:
logger.info("Change success!") logger.info("Change success!")
return
def fetch_dup_filename_tags(): # Place holder for new implementation
return
if PLUGIN_ARGS == "fetch_dup_filename_tags":
fetch_dup_filename_tags()
elif PLUGIN_ARGS == "rename_files_task":
rename_files_task()
else:
rename_files_task()
if debugTracing: logger.info("\n*********************************\nEXITING ***********************\n*********************************") if debugTracing: logger.info("\n*********************************\nEXITING ***********************\n*********************************")
# ToDo List # ToDo List
# Add logic to max_filename_length code so it checks base file length and checks folder length, instead of lumping them altogether. # Add logic to max_filename_length code so it checks base file length and checks folder length, instead of lumping them altogether.
# Add logic to update Sqlite DB on file name change, instead of perform_metadata_scan. # Add logic to update Sqlite DB on file name change, instead of perform_metadata_scan.
# Get variables from the Plugins Settings UI instead of from renamefile_settings.py # Get variables from the Plugins Settings UI instead of from renamefile_settings.py
# Add code to get tags from duplicate filenames

View File

@@ -70,7 +70,11 @@ hooks:
triggeredBy: triggeredBy:
- Scene.Update.Post - Scene.Update.Post
tasks: tasks:
- name: Rename Files Task # - name: Fetch Tags
description: Renames scene files. # description: Get tags from duplicate file names.
# defaultArgs:
# mode: fetch_dup_filename_tags
- name: Rename Last Scene
description: Renames file of last updated scene.
defaultArgs: defaultArgs:
mode: rename_files_task mode: rename_files_task