Updated the NZB import and export scripts.

(cherry picked from commit 441332f)
This commit is contained in:
DariusIII
2015-06-04 22:50:38 +02:00
parent ee28ab6a2a
commit d6a624b30c
6 changed files with 89 additions and 57 deletions
+37
View File
@@ -0,0 +1,37 @@
<?php
require_once dirname(__FILE__) . '/../../www/config.php';
$n = PHP_EOL;
// Print usage.
if (count($argv) !== 6) {
exit(
'This will export NZB files(to .nzb or .nzb.gz) into sub folders (using group name) of the specified folder.' . $n . $n .
'Usage: ' . $n .
$_SERVER['_'] . ' ' . __FILE__ . ' arg1 arg2 arg3 arg4 arg5' . $n . $n .
'arg1 : Path to folder where NZB files are to be stored. | a folder path' . $n .
'arg2 : The start date in this format: 01/01/2008 or false | date/false' . $n .
'arg3 : The end date in this format: 01/01/2008 or false | date/false' . $n .
'arg4 : Group ID for the group or false | number/false' . $n .
'arg5 : Gzip the NZB files (recommended, faster/takes less space) | true/false' . $n . $n .
'Examples: ' . $n .
$_SERVER['_'] . ' ' . $argv[0] . ' ' . NN_ROOT . 'exportFolder' . DS . ' 01/01/2012 01/01/2014 false true' . $n .
$_SERVER['_'] . ' ' . $argv[0] . ' ' . NN_ROOT . 'exportFolder' . DS . ' false 01/01/2014 12 false' . $n
);
}
$NE = new NZBExport();
$NE->beginExport(
array(
// Path.
$argv[1],
// Start time.
(strtolower($argv[2]) === 'false' ? '' : $argv[2]),
// End time.
(strtolower($argv[3]) === 'false' ? '' : $argv[3]),
// Group ID.
(strtolower($argv[4]) === 'false' ? 0 : (int)$argv[4]),
// Gzip.
(strtolower($argv[5]) === 'true' ? true : false)
)
);
+80
View File
@@ -0,0 +1,80 @@
<?php
require_once dirname(__FILE__) . '/../../www/config.php';
$n = PHP_EOL;
// Print usage.
if (count($argv) !== 6) {
exit(
'This will import NZB files(.nzb or .nzb.gz), into your newznab site from a folder recursively(it will go down into sub-folders).' . $n .
'Please use arg5, something sensible like 100k, if you have millions of NZB files the initial scan will be VERY slow otherwise.' . $n . $n .
'Usage: ' . $n .
$_SERVER['_'] . ' ' . __FILE__ . ' arg1 arg2 arg3 arg4 arg5' . $n . $n .
'arg1 : Path to folder where NZB files are stored. | a folder path' . $n .
'arg2 : Delete NZB when successfully imported.(recommended) | true/false' . $n .
'arg3 : Delete NZB when unsuccessfully imported.(not recommended) | true/false' . $n .
'arg4 : Use NZB file name as release name.(not recommended) | true/false' . $n .
'arg5 : Import this many NZB files. (RECOMMENDED 100,000) | a number' . $n . $n .
'ie: ' . $_SERVER['_'] . ' ' . __FILE__ . ' ' . NN_ROOT . 'nzbToImport' . DS . ' true false false 1000' . $n
);
}
// Verify arguments.
if (!is_dir($argv[1])) {
exit('Error: arg1 must be a path (you might not have read access to this path)' . $n);
}
if (!in_array($argv[2], array('true', 'false'))) {
exit('Error: arg2 must be true or false' . $n);
}
if (!in_array($argv[3], array('true', 'false'))) {
exit('Error: arg3 must be true or false' . $n);
}
if (!in_array($argv[4], array('true', 'false'))) {
exit('Error: arg4 must be true or false' . $n);
}
if (!is_numeric($argv[5])) {
exit('Error: arg5 must be a number' . $n);
}
if ($argv[5] < 0) {
exit('Error: arg5 must be 0 or higher' . $n);
}
$path = $argv[1];
// Check if path ends with dir separator.
if (substr($path, -1) !== DS) {
$path .= DS;
}
$files = new \RegexIterator(
new \RecursiveIteratorIterator(
new \RecursiveDirectoryIterator($argv[1])
),
'/^.+\.nzb(\.gz)?$/i',
\RecursiveRegexIterator::GET_MATCH
);
$i = 1;
$nzbFiles = array();
foreach ($files as $file) {
$nzbFiles[] = $file[0];
if ($i++ >= $argv[5]) {
break;
}
}
if ($i > 1) {
unset($files);
// Check these user argument values, convert them to bool.
$deleteNZB = ($argv[2] == 'true') ? true : false;
$deleteFailedNZB = ($argv[3] == 'true') ? true : false;
$useNzbName = ($argv[4] == 'true') ? true : false;
// Create a new instance of NZBImport and send it the file locations.
$NZBImport = new NZBImport();
$NZBImport->beginImport($nzbFiles, $useNzbName, $deleteNZB, $deleteFailedNZB);
} else {
echo 'Nothing found to import!' . $n;
}