Discuss newly added features or request new features.
-
hugbug
- Developer & Admin
- Posts: 7645
- Joined: 09 Sep 2008, 11:58
- Location: Germany
Post
by hugbug » 12 Dec 2014, 18:52
To unpack files NZBGet uses external unrar. The executed command looks like this:
Code: Select all
unrar x -y -p- -o+ *.rar /full/path/to/dest/_unpack/
Parameter "-p-" is replaced with "-ppassword" if a password is set for nzb-file.
Option
UnrarCmd is used to specify the path to unrar. Now (r1180) the extra switches can be added directly into the option UnrarCmd. NZBGet then add other required parameters (destination path, etc.).
Examples:
- Ignore file attributes (permissions) using switch "-ai" (requested in Feature Request: File Extraction to Ignore File Permissions):
If unrar is in search path it's not necessary to specify the full path. The following will work too:
- Unpack without subdirectories (flatten):
- Decrease priority of unrar-process:
- If the path to unrar contain spaces put the path into apostrophes:
Code: Select all
'C:\Program Files\WinRar\unrar' -ai
- On Windows and Mac OS X the unrar is supplied with NZBGet. Since the path may contain spaces you should use apostrophes as well:
-
hugbug
- Developer & Admin
- Posts: 7645
- Joined: 09 Sep 2008, 11:58
- Location: Germany
Post
by hugbug » 12 Dec 2014, 19:02
Scripts which use option
UnrarCmd to determine path to unrar should be more careful now since the option UnrarCmd cannot be used directly anymore. The following python function parses option UnrarCmd to extract the path to unrar and can be used in your scripts:
Code: Select all
import shlex
# Extract path to unrar from NZBGet's global option "UnrarCmd";
# Since v15 "UnrarCmd" may contain extra parameters passed to unrar;
# We have to strip these parameters because we need only the path to unrar.
# Returns path to unrar executable.
def unrar():
exe_name = 'unrar.exe' if os.name == 'nt' else 'unrar'
UnrarCmd = os.environ['NZBOP_UNRARCMD']
if os.path.isfile(UnrarCmd) and UnrarCmd.lower().endswith(exe_name):
return UnrarCmd
args = shlex.split(UnrarCmd)
for arg in args:
if arg.lower().endswith(exe_name):
return arg
# We were unable to determine the path to unrar;
# Let's use the exe name with a hope it's in the search path
return exe_name
Script
FakeDetector has been update to correctly work with the custom unrar parameters.
-
neilt0
- Posts: 261
- Joined: 10 Sep 2008, 19:11
Post
by neilt0 » 13 Dec 2014, 15:22
This is working nice(ly)! Thanks.
-
a3gill
- Posts: 2
- Joined: 17 Oct 2020, 09:48
Post
by a3gill » 17 Oct 2020, 09:58
In Windows, to decrease priority, I've tried setting UnrarCmd to:
Code: Select all
Start.exe '' /BelowNormal /b 'C:\Program Files\NZBGet\UnRAR.exe' x -y -p- -o+ *.rar .\_unpack\
trying mimic the Linux suggestion
I am getting this error
Unrar: Could not find file Start.exe
Is there some other way I should do this?
-
hugbug
- Developer & Admin
- Posts: 7645
- Joined: 09 Sep 2008, 11:58
- Location: Germany
Post
by hugbug » 18 Oct 2020, 20:13
If it can't find the file you need to specify the full path.
I doubt the unpack started through start.exe will work properly. Form the description of start.exe it creates a separate console meaning nzbget will probably not be able to see the unrar output.
Who is online
Users browsing this forum: No registered users and 16 guests