diff --git a/sabnzbd/postproc.py b/sabnzbd/postproc.py
index f922932..f8113c7 100644
--- a/sabnzbd/postproc.py
+++ b/sabnzbd/postproc.py
@@ -65,7 +65,7 @@ from sabnzbd.filesystem import (
get_filename,
)
from sabnzbd.nzbstuff import NzbObject
-from sabnzbd.sorting import Sorter, is_sample, move_to_parent_directory
+from sabnzbd.sorting import Sorter, is_sample
from sabnzbd.constants import (
REPAIR_PRIORITY,
FORCE_PRIORITY,
@@ -80,7 +80,6 @@ import sabnzbd.emailer as emailer
import sabnzbd.downloader
import sabnzbd.config as config
import sabnzbd.cfg as cfg
-import sabnzbd.encoding as encoding
import sabnzbd.nzbqueue
import sabnzbd.database as database
import sabnzbd.notifier as notifier
@@ -317,6 +316,8 @@ def process_job(nzo: NzbObject):
# Signal empty download, for when 'empty_postproc' is enabled
empty = False
nzb_list = []
+ one_folder = False
+ newfiles = []
# These need to be initialized in case of a crash
workdir_complete = ""
script_log = ""
@@ -419,7 +420,6 @@ def process_job(nzo: NzbObject):
nzo
)
- newfiles = []
# Run Stage 2: Unpack
if flag_unpack:
# Set the current nzo status to "Extracting...". Used in History
@@ -480,6 +480,7 @@ def process_job(nzo: NzbObject):
script_output = ""
script_ret = 0
+ script_error = False
if not nzb_list:
# Give destination its final name
if cfg.folder_rename() and tmp_workdir_complete and not one_folder:
@@ -513,52 +514,47 @@ def process_job(nzo: NzbObject):
if newfiles:
workdir_complete, ok = file_sorter.rename(newfiles, workdir_complete)
if not ok:
- workdir_complete, ok = move_to_parent_directory(workdir_complete)
nzo.set_unpack_info("Unpack", T("Failed to move files"))
all_ok = False
- # Use par2 files to deobfuscate unpacked file names
- if cfg.process_unpacked_par2():
- newfiles = deobfuscate.recover_par2_names(newfiles)
-
- if cfg.deobfuscate_final_filenames() and all_ok and not nzb_list:
- # Deobfuscate the filenames
- logging.info("Running deobfuscate")
- deobfuscate.deobfuscate_list(newfiles, nzo.final_name)
-
- # Run the user script
- script_path = make_script_path(script)
- if (all_ok or not cfg.safe_postproc()) and (not nzb_list) and script_path:
- # Set the current nzo status to "Ext Script...". Used in History
- nzo.status = Status.RUNNING
- nzo.set_action_line(T("Running script"), script)
- nzo.set_unpack_info("Script", T("Running user script %s") % script, unique=True)
- script_log, script_ret = external_processing(
- script_path, nzo, clip_path(workdir_complete), nzo.final_name, job_result
- )
- script_line = get_last_line(script_log)
- if script_log:
- script_output = nzo.nzo_id
- if script_line:
- nzo.set_unpack_info("Script", script_line, unique=True)
- else:
- nzo.set_unpack_info("Script", T("Ran %s") % script, unique=True)
- else:
- script = ""
- script_line = ""
- script_ret = 0
-
- # Maybe bad script result should fail job
- if script_ret and cfg.script_can_fail():
- script_error = True
- all_ok = False
- nzo.fail_msg = T("Script exit code is %s") % script_ret
- else:
- script_error = False
+ # Run further post-processing
+ if (all_ok or not cfg.safe_postproc()) and not nzb_list:
+ # Use par2 files to deobfuscate unpacked file names
+ if cfg.process_unpacked_par2():
+ newfiles = deobfuscate.recover_par2_names(newfiles)
+
+ if cfg.deobfuscate_final_filenames():
+ # Deobfuscate the filenames
+ logging.info("Running deobfuscate")
+ deobfuscate.deobfuscate_list(newfiles, nzo.final_name)
+
+ # Run the user script
+ script_path = make_script_path(script)
+ if script_path:
+ # Set the current nzo status to "Ext Script...". Used in History
+ nzo.status = Status.RUNNING
+ nzo.set_action_line(T("Running script"), script)
+ nzo.set_unpack_info("Script", T("Running user script %s") % script, unique=True)
+ script_log, script_ret = external_processing(
+ script_path, nzo, clip_path(workdir_complete), nzo.final_name, job_result
+ )
+ script_line = get_last_line(script_log)
+ if script_log:
+ script_output = nzo.nzo_id
+ if script_line:
+ nzo.set_unpack_info("Script", script_line, unique=True)
+ else:
+ nzo.set_unpack_info("Script", T("Ran %s") % script, unique=True)
+
+ # Maybe bad script result should fail job
+ if script_ret and cfg.script_can_fail():
+ script_error = True
+ all_ok = False
+ nzo.fail_msg = T("Script exit code is %s") % script_ret
# Email the results
- if (not nzb_list) and cfg.email_endjob():
- if (cfg.email_endjob() == 1) or (cfg.email_endjob() == 2 and (unpack_error or par_error or script_error)):
+ if not nzb_list and cfg.email_endjob():
+ if cfg.email_endjob() == 1 or (cfg.email_endjob() == 2 and (unpack_error or par_error or script_error)):
emailer.endjob(
nzo.final_name,
nzo.cat,
@@ -581,8 +577,7 @@ def process_job(nzo: NzbObject):
if len(script_log.rstrip().split("\n")) > 1:
nzo.set_unpack_info(
"Script",
- '%s%s (%s)'
- % (script_ret, script_line, encoding.xml_name(script_output), T("More")),
+ '%s%s (%s)' % (script_ret, script_line, script_output, T("More")),
unique=True,
)
else: