mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-29 01:08:56 +00:00
Merge remote-tracking branch 'origin/dev' into dev-fix-anime-regexes
This commit is contained in:
@@ -1,4 +1,16 @@
|
||||
2017-04-21 DariusIII
|
||||
* Chg: Update NNTP class, small refactor of if - else
|
||||
* Chg: Update Binaries class for PHP7
|
||||
* Chg: Make guzzlehttp return codes more service specific
|
||||
* Chg: Remove duplicated checks in XXX class
|
||||
* Chg: Update composer with new versions of libraries
|
||||
* Fix: Anime page layout in Gentele theme
|
||||
2017-04-20 DariusIII
|
||||
* Chg: Adjust the renaming logic in NameFixer
|
||||
* Chg: Change definition of XXX movies array
|
||||
* Chg: Update PreDB class for PHP7
|
||||
* Fix: Fix usage of fixRelNames script
|
||||
* Mrg: Merge PR #133 from Nightah - Rebase all anime regexes
|
||||
* Chg: Update XXX class for better PHP7 support
|
||||
* Fix: Properly update anidb_episodes table on anidb updates
|
||||
2017-04-19 DariusIII
|
||||
|
||||
@@ -33,7 +33,7 @@ $error = false;
|
||||
$git = new Git();
|
||||
$branch = $git->active_branch();
|
||||
|
||||
if (in_array($branch, $git->mainBranches())) {
|
||||
if (in_array($branch, $git->mainBranches(), false)) {
|
||||
// Only update patches, etc. on specific branches to lessen conflicts
|
||||
try {
|
||||
// Run DbUpdates to make sure we're up to date.
|
||||
@@ -41,8 +41,8 @@ if (in_array($branch, $git->mainBranches())) {
|
||||
$DbUpdater->newPatches(['safe' => false]);
|
||||
} catch (\Exception $e) {
|
||||
$error = 1;
|
||||
echo "Error while checking patches!\n";
|
||||
echo $e->getMessage() . "\n";
|
||||
echo 'Error while checking patches!' . PHP_EOL;
|
||||
echo $e->getMessage() . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -16,8 +16,8 @@
|
||||
</last>
|
||||
</scripts>
|
||||
<sql>
|
||||
<db>303</db>
|
||||
<file>303</file>
|
||||
<db>304</db>
|
||||
<file>304</file>
|
||||
</sql>
|
||||
</versions>
|
||||
</nntmux>
|
||||
|
||||
Generated
+16
-16
@@ -2296,7 +2296,7 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/contracts",
|
||||
"version": "v5.4.17",
|
||||
"version": "v5.4.19",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/contracts.git",
|
||||
@@ -2338,16 +2338,16 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/filesystem",
|
||||
"version": "v5.4.17",
|
||||
"version": "v5.4.19",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/filesystem.git",
|
||||
"reference": "3ed8b9a35880a9619141e2965fd5cbbe2e1c0da1"
|
||||
"reference": "7f656e3421b94d759627e891567380b50586f045"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/filesystem/zipball/3ed8b9a35880a9619141e2965fd5cbbe2e1c0da1",
|
||||
"reference": "3ed8b9a35880a9619141e2965fd5cbbe2e1c0da1",
|
||||
"url": "https://api.github.com/repos/illuminate/filesystem/zipball/7f656e3421b94d759627e891567380b50586f045",
|
||||
"reference": "7f656e3421b94d759627e891567380b50586f045",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2384,20 +2384,20 @@
|
||||
],
|
||||
"description": "The Illuminate Filesystem package.",
|
||||
"homepage": "https://laravel.com",
|
||||
"time": "2017-03-01T21:44:04+00:00"
|
||||
"time": "2017-04-07T19:38:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "illuminate/support",
|
||||
"version": "v5.4.17",
|
||||
"version": "v5.4.19",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/support.git",
|
||||
"reference": "c7e7c9daf5044e76b46085b8351f8235a3e979c6"
|
||||
"reference": "b8cb37e15331c59da51c8ee5838038baa22d7955"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/support/zipball/c7e7c9daf5044e76b46085b8351f8235a3e979c6",
|
||||
"reference": "c7e7c9daf5044e76b46085b8351f8235a3e979c6",
|
||||
"url": "https://api.github.com/repos/illuminate/support/zipball/b8cb37e15331c59da51c8ee5838038baa22d7955",
|
||||
"reference": "b8cb37e15331c59da51c8ee5838038baa22d7955",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2441,7 +2441,7 @@
|
||||
],
|
||||
"description": "The Illuminate Support package.",
|
||||
"homepage": "https://laravel.com",
|
||||
"time": "2017-03-28T12:49:45+00:00"
|
||||
"time": "2017-04-09T14:34:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "james-heinrich/getid3",
|
||||
@@ -3700,16 +3700,16 @@
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v2.3.1",
|
||||
"version": "v2.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "437efc435619c8e67acacda37b3984344854142c"
|
||||
"reference": "85e8372c451510165c04bf781295f9d922fa524b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/437efc435619c8e67acacda37b3984344854142c",
|
||||
"reference": "437efc435619c8e67acacda37b3984344854142c",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/85e8372c451510165c04bf781295f9d922fa524b",
|
||||
"reference": "85e8372c451510165c04bf781295f9d922fa524b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3759,7 +3759,7 @@
|
||||
"keywords": [
|
||||
"templating"
|
||||
],
|
||||
"time": "2017-04-18T21:50:11+00:00"
|
||||
"time": "2017-04-21T00:13:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "unionofrad/lithium",
|
||||
|
||||
@@ -10,36 +10,33 @@
|
||||
require_once dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'bootstrap.php';
|
||||
|
||||
use app\models\Settings;
|
||||
use nntmux\ColorCLI;
|
||||
use nntmux\NameFixer;
|
||||
use nntmux\NNTP;
|
||||
use nntmux\PreDb;
|
||||
use nntmux\db\DB;
|
||||
|
||||
$n = "\n";
|
||||
$pdo = new DB();
|
||||
$namefixer = new NameFixer(['Settings' => $pdo]);
|
||||
$predb = new PreDb(['Echo' => true, 'Settings' => $pdo]);
|
||||
|
||||
if (isset($argv[1]) && isset($argv[2]) && isset($argv[3]) && isset($argv[4])) {
|
||||
$update = ($argv[2] == "true") ? true : false;
|
||||
if (isset($argv[1], $argv[2], $argv[3], $argv[4])) {
|
||||
$update = $argv[2] === 'true' ? true : false;
|
||||
$other = 1;
|
||||
if ($argv[3] === 'all') {
|
||||
$other = 2;
|
||||
} else if ($argv[3] === 'predb_id') {
|
||||
$other = 3;
|
||||
}
|
||||
$setStatus = ($argv[4] == "yes") ? 1 : 2;
|
||||
$setStatus = $argv[4] === 'yes' ? 1 : 2;
|
||||
|
||||
$show = 2;
|
||||
if (isset($argv[5]) && $argv[5] === 'show') {
|
||||
$show = 1;
|
||||
}
|
||||
$show = isset($argv[5]) && $argv[5] === 'show' ? 1 : 2;
|
||||
|
||||
$nntp = null;
|
||||
if ($argv[1] == 7 || $argv[1] == 8) {
|
||||
if ($argv[1] === 7 || $argv[1] === 8) {
|
||||
$nntp = new NNTP(['Settings' => $pdo]);
|
||||
if ((Settings::value('..alternate_nntp') == '1' ? $nntp->doConnect(true, true) : $nntp->doConnect()) !== true) {
|
||||
echo $pdo->log->error("Unable to connect to usenet.\n");
|
||||
if ((Settings::value('..alternate_nntp') === 1 ? $nntp->doConnect(true, true) : $nntp->doConnect()) !== true) {
|
||||
echo ColorCLI::error('Unable to connect to usenet.'. PHP_EOL);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -94,29 +91,29 @@ if (isset($argv[1]) && isset($argv[2]) && isset($argv[3]) && isset($argv[4])) {
|
||||
$namefixer->fixNamesWithParHash(2, $update, $other, $setStatus, $show);
|
||||
break;
|
||||
default :
|
||||
exit($pdo->log->error("\nERROR: Wrong argument, type php $argv[0] to see a list of valid arguments." . $n));
|
||||
exit(ColorCLI::error(PHP_EOL . 'ERROR: Wrong argument, type php $argv[0] to see a list of valid arguments.' . PHP_EOL));
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
exit($pdo->log->error("\nYou must supply 4 arguments.\n"
|
||||
. "The 2nd argument, false, will display the results, but not change the name, type true to have the names changed.\n"
|
||||
. "The 3rd argument, other, will only do against other categories, to do against all categories use all, or predb_id to process all not matched to predb.\n"
|
||||
. "The 4th argument, yes, will set the release as checked, so the next time you run it will not be processed, to not set as checked type no.\n"
|
||||
. "The 5th argument (optional), show, will display the release changes or only show a counter.\n\n"
|
||||
. "php $argv[0] 1 false other no ...: Fix release names using the usenet subject in the past 3 hours with predb information.\n"
|
||||
. "php $argv[0] 2 false other no ...: Fix release names using the usenet subject with predb information.\n"
|
||||
. "php $argv[0] 3 false other no ...: Fix release names using NFO in the past 6 hours.\n"
|
||||
. "php $argv[0] 4 false other no ...: Fix release names using NFO.\n"
|
||||
. "php $argv[0] 5 false other no ...: Fix release names in misc categories using File Name in the past 6 hours.\n"
|
||||
. "php $argv[0] 6 false other no ...: Fix release names in misc categories using File Name.\n"
|
||||
. "php $argv[0] 7 false other no ...: Fix release names in misc categories using Par2 Files in the past 6 hours.\n"
|
||||
. "php $argv[0] 8 false other no ...: Fix release names in misc categories using Par2 Files.\n"
|
||||
. "php $argv[0] 9 false other no ...: Fix release names in misc categories using UID in the past 6 hours.\n"
|
||||
. "php $argv[0] 10 false other no ...: Fix release names in misc categories using UID.\n"
|
||||
. "php $argv[0] 11 false other no ...: Fix SDPORN XXX release names in misc categories using specific File Name in the past 6 hours.\n"
|
||||
. "php $argv[0] 12 false other no ...: Fix SDPORN XXX release names in misc categories using specific File Name.\n"
|
||||
. "php $argv[0] 13 false other no ...: Fix release names in misc categories using SRR files in the past 6 hours.\n"
|
||||
. "php $argv[0] 14 false other no ...: Fix release names in misc categories using SRR files.\n"
|
||||
. "php $argv[0] 15 false other no ...: Fix release names in misc categories using PAR2 hash_16K block in the past 6 hours.\n"
|
||||
. "php $argv[0] 16 false other no ...: Fix release names in misc categories using PAR2 hash_16K block.\n"));
|
||||
exit(ColorCLI::error(PHP_EOL . 'You must supply 4 arguments.' . PHP_EOL
|
||||
. 'The 2nd argument, false, will display the results, but not change the name, type true to have the names changed.' . PHP_EOL
|
||||
. 'The 3rd argument, other, will only do against other categories, to do against all categories use all, or predb_id to process all not matched to predb.' . PHP_EOL
|
||||
. 'The 4th argument, yes, will set the release as checked, so the next time you run it will not be processed, to not set as checked type no.' . PHP_EOL
|
||||
. 'The 5th argument (optional), show, will display the release changes or only show a counter.\n' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 1 false other no ...: Fix release names using the usenet subject in the past 3 hours with predb information.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 2 false other no ...: Fix release names using the usenet subject with predb information.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 3 false other no ...: Fix release names using NFO in the past 6 hours.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 4 false other no ...: Fix release names using NFO.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 5 false other no ...: Fix release names in misc categories using File Name in the past 6 hours.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 6 false other no ...: Fix release names in misc categories using File Name.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 7 false other no ...: Fix release names in misc categories using Par2 Files in the past 6 hours.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 8 false other no ...: Fix release names in misc categories using Par2 Files.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 9 false other no ...: Fix release names in misc categories using UID in the past 6 hours.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 10 false other no ...: Fix release names in misc categories using UID.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 11 false other no ...: Fix SDPORN XXX release names in misc categories using specific File Name in the past 6 hours.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 12 false other no ...: Fix SDPORN XXX release names in misc categories using specific File Name.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 13 false other no ...: Fix release names in misc categories using SRR files in the past 6 hours.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 14 false other no ...: Fix release names in misc categories using SRR files.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 15 false other no ...: Fix release names in misc categories using PAR2 hash_16K block in the past 6 hours.' . PHP_EOL
|
||||
. 'php ' . $argv[0] . ' 16 false other no ...: Fix release names in misc categories using PAR2 hash_16K block.' . PHP_EOL));
|
||||
}
|
||||
|
||||
@@ -111,7 +111,7 @@ switch (true) {
|
||||
}
|
||||
if ($namefixer->matched === false && !empty($release['filehash']) && preg_match('/[a-fA-F0-9]{32,40}/i', $release['filehash'], $matches)) {
|
||||
echo ColorCLI::primaryOver('h');
|
||||
$namefixer->matchPredbHash($matches[0], $release, 1, 1, true, 1);
|
||||
$namefixer->matchPredbHash($matches[0], $release, true, 1, true, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -235,7 +235,7 @@ switch (true) {
|
||||
foreach ($pres as $pre) {
|
||||
$namefixer->done = $namefixer->matched = false;
|
||||
$ftmatched = $searched = 0;
|
||||
$ftmatched = $namefixer->matchPredbFT($pre, 1, 1, true, 1);
|
||||
$ftmatched = $namefixer->matchPredbFT($pre, true, 1, true, 1);
|
||||
if ($ftmatched > 0) {
|
||||
$searched = 1;
|
||||
} elseif ($ftmatched < 0) {
|
||||
|
||||
+11
-7
@@ -341,29 +341,33 @@ class ADE
|
||||
} catch (RequestException $e) {
|
||||
if ($e->hasResponse()) {
|
||||
if($e->getCode() === 404) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on server'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on ADE server'));
|
||||
} else if ($e->getCode() === 503) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Service unavailable'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('ADE service unavailable'));
|
||||
} else {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data, http error reported: ' . $e->getCode()));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data from ADE, http error reported: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
} catch (\RuntimeException $e) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Runtime error: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
if (!empty($this->directLink)) {
|
||||
try {
|
||||
$this->_response = $this->client->get($this->directLink)->getBody()->getContents();
|
||||
$this->directLink = "";
|
||||
$this->directLink = '';
|
||||
} catch (RequestException $e) {
|
||||
if ($e->hasResponse()) {
|
||||
if($e->getCode() === 404) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on server'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on ADE server'));
|
||||
} else if ($e->getCode() === 503) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Service unavailable'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('ADE service unavailable'));
|
||||
} else {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data, http error reported: ' . $e->getCode()));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data from ADE, http error reported: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
} catch (\RuntimeException $e) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Runtime error: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
-6
@@ -301,13 +301,15 @@ class ADM
|
||||
} catch (RequestException $e) {
|
||||
if ($e->hasResponse()) {
|
||||
if($e->getCode() === 404) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on server'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on ADM server'));
|
||||
} else if ($e->getCode() === 503) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Service unavailable'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('ADM Service unavailable'));
|
||||
} else {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data, http error reported: ' . $e->getCode()));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data from ADM, http error reported: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
} catch (\RuntimeException $e) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Runtime error: ' . $e->getCode()));
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
@@ -315,13 +317,15 @@ class ADM
|
||||
} catch (RequestException $e) {
|
||||
if ($e->hasResponse()) {
|
||||
if($e->getCode() === 404) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on server'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on ADM server'));
|
||||
} else if ($e->getCode() === 503) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Service unavailable'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('ADM service unavailable'));
|
||||
} else {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data, http error reported: ' . $e->getCode()));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data from ADM, http error reported: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
} catch (\RuntimeException $e) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Runtime error: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
-6
@@ -368,13 +368,15 @@ class AEBN
|
||||
} catch (RequestException $e) {
|
||||
if ($e->hasResponse()) {
|
||||
if($e->getCode() === 404) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on server'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on AEBN server'));
|
||||
} else if ($e->getCode() === 503) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Service unavailable'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('AEBN service unavailable'));
|
||||
} else {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data, http error reported: ' . $e->getCode()));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data from AEBN, http error reported: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
} catch (\RuntimeException $e) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Runtime error: ' . $e->getCode()));
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
@@ -382,13 +384,15 @@ class AEBN
|
||||
} catch (RequestException $e) {
|
||||
if ($e->hasResponse()) {
|
||||
if($e->getCode() === 404) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on server'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on AEBN server'));
|
||||
} else if ($e->getCode() === 503) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Service unavailable'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('AEBN service unavailable'));
|
||||
} else {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data, http error reported: ' . $e->getCode()));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data from AEBN, http error reported: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
} catch (\RuntimeException $e) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Runtime error: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+75
-75
@@ -2,6 +2,7 @@
|
||||
namespace nntmux;
|
||||
|
||||
use app\models\Settings;
|
||||
use nntmux\ColorCLI;
|
||||
use nntmux\db\DB;
|
||||
use nntmux\processing\ProcessReleasesMultiGroup;
|
||||
|
||||
@@ -290,7 +291,7 @@ class Binaries
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function updateAllGroups($maxHeaders = 100000)
|
||||
public function updateAllGroups($maxHeaders = 100000): void
|
||||
{
|
||||
$groups = $this->_groups->getActive();
|
||||
|
||||
@@ -337,7 +338,7 @@ class Binaries
|
||||
/**
|
||||
* When the indexer is started, log the date/time.
|
||||
*/
|
||||
public function logIndexerStart()
|
||||
public function logIndexerStart(): void
|
||||
{
|
||||
$this->_pdo->queryExec("UPDATE settings SET value = NOW() WHERE setting = 'last_run_time'");
|
||||
}
|
||||
@@ -350,7 +351,7 @@ class Binaries
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function updateGroup($groupMySQL, $maxHeaders = 0)
|
||||
public function updateGroup($groupMySQL, $maxHeaders = 0): void
|
||||
{
|
||||
$startGroup = microtime(true);
|
||||
|
||||
@@ -360,7 +361,7 @@ class Binaries
|
||||
$groupNNTP = $this->_nntp->selectGroup($groupMySQL['name']);
|
||||
if ($this->_nntp->isError($groupNNTP)) {
|
||||
$groupNNTP = $this->_nntp->dataError($this->_nntp, $groupMySQL['name']);
|
||||
if ($groupNNTP->code == 411) {
|
||||
if ($groupNNTP->code === 411) {
|
||||
$this->_groups->disableIfNotExist($groupMySQL['id']);
|
||||
}
|
||||
if ($this->_nntp->isError($groupNNTP)) {
|
||||
@@ -369,23 +370,23 @@ class Binaries
|
||||
}
|
||||
|
||||
if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho($this->_colorCLI->primary('Processing ' . $groupMySQL['name']), true);
|
||||
ColorCLI::doEcho(ColorCLI::primary('Processing ' . $groupMySQL['name']), true);
|
||||
}
|
||||
|
||||
// Attempt to repair any missing parts before grabbing new ones.
|
||||
if ($groupMySQL['last_record'] != 0) {
|
||||
if ($this->_partRepair) {
|
||||
if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho($this->_colorCLI->primary('Part repair enabled. Checking for missing parts.'), true);
|
||||
ColorCLI::doEcho(ColorCLI::primary('Part repair enabled. Checking for missing parts.'), true);
|
||||
}
|
||||
$this->partRepair($groupMySQL);
|
||||
} else if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho($this->_colorCLI->primary('Part repair disabled by user.'), true);
|
||||
ColorCLI::doEcho(ColorCLI::primary('Part repair disabled by user.'), true);
|
||||
}
|
||||
}
|
||||
|
||||
// Generate postdate for first record, for those that upgraded.
|
||||
if (is_null($groupMySQL['first_record_postdate']) && $groupMySQL['first_record'] != 0) {
|
||||
if ($groupMySQL['first_record_postdate'] === null && $groupMySQL['first_record'] != 0) {
|
||||
|
||||
$groupMySQL['first_record_postdate'] = $this->postdate($groupMySQL['first_record'], $groupNNTP);
|
||||
|
||||
@@ -427,10 +428,10 @@ class Binaries
|
||||
// Check if the server has more articles than our loop limit x 2.
|
||||
if ($totalCount > ($this->messageBuffer * 2)) {
|
||||
// Get the remainder of $totalCount / $this->message buffer
|
||||
$leaveOver = round(($totalCount % $this->messageBuffer), 0, PHP_ROUND_HALF_DOWN) + $this->messageBuffer;
|
||||
$leaveOver = round($totalCount % $this->messageBuffer, 0, PHP_ROUND_HALF_DOWN) + $this->messageBuffer;
|
||||
} else {
|
||||
// Else get half of the available.
|
||||
$leaveOver = round(($totalCount / 2), 0, PHP_ROUND_HALF_DOWN);
|
||||
$leaveOver = round($totalCount / 2, 0, PHP_ROUND_HALF_DOWN);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -459,8 +460,8 @@ class Binaries
|
||||
if ($total > 0) {
|
||||
|
||||
if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->primary(
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::primary(
|
||||
($groupMySQL['last_record'] == 0
|
||||
? 'New group ' . $groupNNTP['group'] . ' starting with ' .
|
||||
($this->_newGroupScanByDays
|
||||
@@ -493,8 +494,8 @@ class Binaries
|
||||
$first++;
|
||||
|
||||
if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->header(
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::header(
|
||||
PHP_EOL . 'Getting ' . number_format($last - $first + 1) . ' articles (' . number_format($first) .
|
||||
' to ' . number_format($last) . ') from ' . $groupMySQL['name'] . ' - (' .
|
||||
number_format($groupLast - $last) . ' articles in queue).'
|
||||
@@ -509,7 +510,7 @@ class Binaries
|
||||
if (!empty($scanSummary)) {
|
||||
|
||||
// If new group, update first record & postdate
|
||||
if (is_null($groupMySQL['first_record_postdate']) && $groupMySQL['first_record'] == 0) {
|
||||
if ($groupMySQL['first_record_postdate'] === null && $groupMySQL['first_record'] == 0) {
|
||||
$groupMySQL['first_record'] = $scanSummary['firstArticleNumber'];
|
||||
|
||||
if (isset($scanSummary['firstArticleDate'])) {
|
||||
@@ -566,16 +567,16 @@ class Binaries
|
||||
}
|
||||
|
||||
if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->primary(
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::primary(
|
||||
PHP_EOL . 'Group ' . $groupMySQL['name'] . ' processed in ' .
|
||||
number_format(microtime(true) - $startGroup, 2) . ' seconds.'
|
||||
), true
|
||||
);
|
||||
}
|
||||
} else if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->primary(
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::primary(
|
||||
'No new articles for ' . $groupMySQL['name'] . ' (first ' . number_format($first) .
|
||||
', last ' . number_format($last) . ', grouplast ' . number_format($groupMySQL['last_record']) .
|
||||
', total ' . number_format($total) . ")\n" . 'Server oldest: ' . number_format($groupNNTP['first']) .
|
||||
@@ -596,7 +597,7 @@ class Binaries
|
||||
*
|
||||
* @return array Empty on failure.
|
||||
*/
|
||||
public function scan($groupMySQL, $first, $last, $type = 'update', $missingParts = null)
|
||||
public function scan($groupMySQL, $first, $last, $type = 'update', $missingParts = null): array
|
||||
{
|
||||
// Start time of scan method and of fetching headers.
|
||||
$this->startLoop = microtime(true);
|
||||
@@ -702,13 +703,12 @@ class Binaries
|
||||
|
||||
// If set we are running in partRepair mode.
|
||||
if ($partRepair === true && !is_null($missingParts)) {
|
||||
if (!in_array($header['Number'], $missingParts)) {
|
||||
if (!in_array($header['Number'], $missingParts, false)) {
|
||||
// If article isn't one that is missing skip it.
|
||||
continue;
|
||||
} else {
|
||||
// We got the part this time. Remove article from part repair.
|
||||
$headersRepaired[] = $header['Number'];
|
||||
}
|
||||
// We got the part this time. Remove article from part repair.
|
||||
$headersRepaired[] = $header['Number'];
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -814,8 +814,8 @@ class Binaries
|
||||
$this->addMissingParts($rangeNotReceived, $this->tableNames['prname'], $this->groupMySQL['id']);
|
||||
|
||||
if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->alternate(
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::alternate(
|
||||
'Server did not return ' . $notReceivedCount .
|
||||
' articles from ' . $this->groupMySQL['name'] . '.'
|
||||
), true
|
||||
@@ -835,7 +835,7 @@ class Binaries
|
||||
* @param array $headers The retrieved headers
|
||||
* @param bool $multiGroup Is this task being run in MGR mode?
|
||||
*/
|
||||
protected function storeHeaders(array $headers, $multiGroup)
|
||||
protected function storeHeaders(array $headers, $multiGroup): void
|
||||
{
|
||||
$this->multiGroup = $multiGroup;
|
||||
$binariesUpdate = $collectionIDs = $articles = [];
|
||||
@@ -999,8 +999,8 @@ class Binaries
|
||||
// Check if we got any binaries. If we did, try to insert them.
|
||||
if (strlen($binariesCheck . $binariesEnd) === strlen($binariesQuery) ? true : $this->_pdo->queryExec($binariesQuery)) {
|
||||
if ($this->_debug) {
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->debug(
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::debug(
|
||||
'Sending ' . round(strlen($partsQuery) / 1024, 2) .
|
||||
' KB of' . ($this->multiGroup ? ' MGR' : '') . ' parts to MySQL'
|
||||
)
|
||||
@@ -1029,7 +1029,7 @@ class Binaries
|
||||
* @param array $headers
|
||||
* @param int $msgCount
|
||||
*/
|
||||
protected function getHighLowArticleInfo(array &$returnArray, array $headers, int $msgCount)
|
||||
protected function getHighLowArticleInfo(array &$returnArray, array $headers, int $msgCount): void
|
||||
{
|
||||
// Get highest and lowest article numbers/dates.
|
||||
$iterator1 = 0;
|
||||
@@ -1060,7 +1060,7 @@ class Binaries
|
||||
/**
|
||||
* Updates Blacklist Regex Timers in DB to reflect last usage
|
||||
*/
|
||||
protected function updateBlacklistUsage()
|
||||
protected function updateBlacklistUsage(): void
|
||||
{
|
||||
$this->_pdo->queryExec(
|
||||
sprintf('UPDATE binaryblacklist SET last_activity = NOW() WHERE id IN (%s)',
|
||||
@@ -1073,10 +1073,10 @@ class Binaries
|
||||
/**
|
||||
* Outputs the initial header scan results after yEnc check and blacklist routines
|
||||
*/
|
||||
protected function outputHeaderInitial()
|
||||
protected function outputHeaderInitial(): void
|
||||
{
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->primary(
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::primary(
|
||||
'Received ' . count($this->headersReceived) .
|
||||
' articles of ' . number_format($this->last - $this->first + 1) . ' requested, ' .
|
||||
$this->headersBlackListed . ' blacklisted, ' . $this->notYEnc . ' not yEnc.'
|
||||
@@ -1087,21 +1087,21 @@ class Binaries
|
||||
/**
|
||||
* Outputs speed metrics of the scan function to CLI
|
||||
*/
|
||||
protected function outputHeaderDuration()
|
||||
protected function outputHeaderDuration(): void
|
||||
{
|
||||
$currentMicroTime = microtime(true);
|
||||
if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->alternateOver($this->timeHeaders . 's') .
|
||||
$this->_colorCLI->primaryOver(' to download articles, ') .
|
||||
$this->_colorCLI->alternateOver($this->timeCleaning . 's') .
|
||||
$this->_colorCLI->primaryOver(' to process collections, ') .
|
||||
$this->_colorCLI->alternateOver($this->timeInsert . 's') .
|
||||
$this->_colorCLI->primaryOver(' to insert binaries/parts, ') .
|
||||
$this->_colorCLI->alternateOver(number_format($currentMicroTime - $this->startPR, 2) . 's') .
|
||||
$this->_colorCLI->primaryOver(' for part repair, ') .
|
||||
$this->_colorCLI->alternateOver(number_format($currentMicroTime - $this->startLoop, 2) . 's') .
|
||||
$this->_colorCLI->primary(' total.')
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::alternateOver($this->timeHeaders . 's') .
|
||||
ColorCLI::primaryOver(' to download articles, ') .
|
||||
ColorCLI::alternateOver($this->timeCleaning . 's') .
|
||||
ColorCLI::primaryOver(' to process collections, ') .
|
||||
ColorCLI::alternateOver($this->timeInsert . 's') .
|
||||
ColorCLI::primaryOver(' to insert binaries/parts, ') .
|
||||
ColorCLI::alternateOver(number_format($currentMicroTime - $this->startPR, 2) . 's') .
|
||||
ColorCLI::primaryOver(' for part repair, ') .
|
||||
ColorCLI::alternateOver(number_format($currentMicroTime - $this->startLoop, 2) . 's') .
|
||||
ColorCLI::primary(' total.')
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1115,7 +1115,7 @@ class Binaries
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function _rollbackAddToPartRepair(array $headers)
|
||||
protected function _rollbackAddToPartRepair(array $headers): array
|
||||
{
|
||||
$headersNotInserted = [];
|
||||
foreach ($headers as $header) {
|
||||
@@ -1134,7 +1134,7 @@ class Binaries
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function partRepair($groupArr)
|
||||
public function partRepair($groupArr): void
|
||||
{
|
||||
$tableNames = $this->_groups->getCBPTableNames($groupArr['id']);
|
||||
// Get all parts in partrepair table.
|
||||
@@ -1153,8 +1153,8 @@ class Binaries
|
||||
$missingCount = count($missingParts);
|
||||
if ($missingCount > 0) {
|
||||
if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->primary(
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::primary(
|
||||
'Attempting to repair ' .
|
||||
number_format($missingCount) .
|
||||
' parts.'
|
||||
@@ -1237,8 +1237,8 @@ class Binaries
|
||||
}
|
||||
|
||||
if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->primary(
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::primary(
|
||||
PHP_EOL .
|
||||
number_format($partsRepaired) .
|
||||
' parts repaired.'
|
||||
@@ -1266,7 +1266,7 @@ class Binaries
|
||||
*
|
||||
* @return int Timestamp.
|
||||
*/
|
||||
public function postdate($post, array $groupData)
|
||||
public function postdate($post, array $groupData): int
|
||||
{
|
||||
// Set table names
|
||||
$groupID = $this->_groups->getIDByName($groupData['group']);
|
||||
@@ -1331,7 +1331,7 @@ class Binaries
|
||||
$currentPost = $tempPost;
|
||||
|
||||
if ($this->_debug) {
|
||||
$this->_colorCLI->doEcho($this->_colorCLI->debug('Postdate retried ' . $attempts . " time(s)."));
|
||||
ColorCLI::doEcho(ColorCLI::debug('Postdate retried ' . $attempts . ' time(s).'));
|
||||
}
|
||||
} while ($attempts++ <= 20);
|
||||
|
||||
@@ -1344,7 +1344,7 @@ class Binaries
|
||||
|
||||
if ($this->_debug) {
|
||||
$this->_debugging->log(
|
||||
get_class(),
|
||||
__CLASS__,
|
||||
__FUNCTION__,
|
||||
'Article (' .
|
||||
$post .
|
||||
@@ -1389,8 +1389,8 @@ class Binaries
|
||||
}
|
||||
|
||||
if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->primary(
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::primary(
|
||||
'Searching for an approximate article number for group ' . $data['group'] . ' ' . $days . ' days back.'
|
||||
)
|
||||
);
|
||||
@@ -1449,8 +1449,8 @@ class Binaries
|
||||
|
||||
$wantedArticle = (int)$wantedArticle;
|
||||
if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->primary(
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::primary(
|
||||
PHP_EOL . 'Found article #' . $wantedArticle . ' which has a date of ' . date('r', $articleTime) .
|
||||
', vs wanted date of ' . date('r', $goalTime) . '. Difference from goal is ' . round(($goalTime - $articleTime) / 60 / 60 / 24, 1) . ' days.'
|
||||
)
|
||||
@@ -1481,7 +1481,7 @@ class Binaries
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function addMissingParts($numbers, $tableName, $groupID)
|
||||
private function addMissingParts($numbers, $tableName, $groupID): bool
|
||||
{
|
||||
$insertStr = 'INSERT INTO ' . $tableName . ' (numberid, groups_id) VALUES ';
|
||||
foreach ($numbers as $number) {
|
||||
@@ -1499,7 +1499,7 @@ class Binaries
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function removeRepairedParts(array $numbers, $tableName, $groupID)
|
||||
private function removeRepairedParts(array $numbers, $tableName, $groupID): void
|
||||
{
|
||||
$sql = 'DELETE FROM ' . $tableName . ' WHERE numberid in (';
|
||||
foreach ($numbers as $number) {
|
||||
@@ -1521,7 +1521,7 @@ class Binaries
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function _retrieveBlackList($groupName)
|
||||
protected function _retrieveBlackList($groupName): void
|
||||
{
|
||||
if (!isset($this->blackList[$groupName])) {
|
||||
$this->blackList[$groupName] = $this->getBlacklist(true, self::OPTYPE_BLACKLIST, $groupName, true);
|
||||
@@ -1540,7 +1540,7 @@ class Binaries
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isBlackListed($msg, $groupName)
|
||||
public function isBlackListed($msg, $groupName): bool
|
||||
{
|
||||
if (!isset($this->_listsFound[$groupName])) {
|
||||
$this->_retrieveBlackList($groupName);
|
||||
@@ -1594,7 +1594,7 @@ class Binaries
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getBlacklist($activeOnly = true, $opType = -1, $groupName = '', $groupRegex = false)
|
||||
public function getBlacklist($activeOnly = true, $opType = -1, $groupName = '', $groupRegex = false): array
|
||||
{
|
||||
switch ($opType) {
|
||||
case self::OPTYPE_BLACKLIST:
|
||||
@@ -1644,7 +1644,7 @@ class Binaries
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function deleteBlacklist($id)
|
||||
public function deleteBlacklist($id): bool
|
||||
{
|
||||
return $this->_pdo->queryExec(sprintf('DELETE FROM binaryblacklist WHERE id = %d', $id));
|
||||
}
|
||||
@@ -1656,7 +1656,7 @@ class Binaries
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function updateBlacklist($blacklistArray)
|
||||
public function updateBlacklist($blacklistArray): bool
|
||||
{
|
||||
return $this->_pdo->queryExec(
|
||||
sprintf('
|
||||
@@ -1683,7 +1683,7 @@ class Binaries
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function addBlacklist($blacklistArray)
|
||||
public function addBlacklist($blacklistArray): bool
|
||||
{
|
||||
return $this->_pdo->queryInsert(
|
||||
sprintf('
|
||||
@@ -1711,7 +1711,7 @@ class Binaries
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function delete($collectionID)
|
||||
public function delete($collectionID): void
|
||||
{
|
||||
$this->_pdo->queryExec(sprintf('DELETE FROM collections WHERE id = %d', $collectionID));
|
||||
}
|
||||
@@ -1725,7 +1725,7 @@ class Binaries
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function purgeGroup($groupID)
|
||||
public function purgeGroup($groupID): void
|
||||
{
|
||||
$this->_pdo->queryExec(sprintf('DELETE c FROM collections c WHERE c.groups_id = %d', $groupID));
|
||||
}
|
||||
@@ -1738,16 +1738,16 @@ class Binaries
|
||||
* @param int $level Logger severity level constant.
|
||||
* @param string $color ColorCLI method name.
|
||||
*/
|
||||
private function log($message, $method, $level, $color)
|
||||
private function log($message, $method, $level, $color): void
|
||||
{
|
||||
if ($this->_echoCLI) {
|
||||
$this->_colorCLI->doEcho(
|
||||
$this->_colorCLI->$color($message . ' [' . get_class() . "::$method]"), true
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::$color($message . ' [' . __CLASS__ . "::$method]"), true
|
||||
);
|
||||
}
|
||||
|
||||
if ($this->_debug) {
|
||||
$this->_debugging->log(get_class(), $method, $message, $level);
|
||||
$this->_debugging->log(__CLASS__, $method, $message, $level);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1761,7 +1761,7 @@ class Binaries
|
||||
* @access protected
|
||||
*
|
||||
*/
|
||||
protected function _ignoreFileCount($groupName, $subject)
|
||||
protected function _ignoreFileCount($groupName, $subject): bool
|
||||
{
|
||||
$ignore = false;
|
||||
switch ($groupName) {
|
||||
@@ -1779,7 +1779,7 @@ class Binaries
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function getMultiGroupPosters()
|
||||
protected function getMultiGroupPosters(): array
|
||||
{
|
||||
return $this->_pdo->query('
|
||||
SELECT poster
|
||||
|
||||
+20
-12
@@ -954,13 +954,15 @@ class Movie
|
||||
} catch (RequestException $e) {
|
||||
if ($e->hasResponse()) {
|
||||
if($e->getCode() === 404) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on server'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on IMDB server'));
|
||||
} else if ($e->getCode() === 503) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Service unavailable'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('IMDB service unavailable'));
|
||||
} else {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data, http error reported: ' . $e->getCode()));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data from IMDB, http error reported: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
} catch (\RuntimeException $e) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Runtime error: ' . $e->getCode()));
|
||||
}
|
||||
|
||||
if (isset($buffer) && $buffer !== false) {
|
||||
@@ -1326,13 +1328,15 @@ class Movie
|
||||
} catch (RequestException $e) {
|
||||
if ($e->hasResponse()) {
|
||||
if($e->getCode() === 404) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on server'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on IMDB server'));
|
||||
} else if ($e->getCode() === 503) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Service unavailable'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('IMDB service unavailable'));
|
||||
} else {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data, http error reported: ' . $e->getCode()));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data from IMDB, http error reported: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
} catch (\RuntimeException $e) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Runtime error: ' . $e->getCode()));
|
||||
}
|
||||
|
||||
// Make sure we got some data.
|
||||
@@ -1372,13 +1376,15 @@ class Movie
|
||||
} catch (RequestException $e) {
|
||||
if ($e->hasResponse()) {
|
||||
if($e->getCode() === 404) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on server'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on IMDB server'));
|
||||
} else if ($e->getCode() === 503) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Service unavailable'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('IMDB service unavailable'));
|
||||
} else {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data, http error reported: ' . $e->getCode()));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data from IMDB , http error reported: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
} catch (\RuntimeException $e) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Runtime error: ' . $e->getCode()));
|
||||
}
|
||||
|
||||
if (!empty($buffer)) {
|
||||
@@ -1426,13 +1432,15 @@ class Movie
|
||||
} catch (RequestException $e) {
|
||||
if ($e->hasResponse()) {
|
||||
if($e->getCode() === 404) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on server'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on IMDB server'));
|
||||
} else if ($e->getCode() === 503) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Service unavailable'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('IMDB service unavailable'));
|
||||
} else {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data, http error reported: ' . $e->getCode()));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data from IMDB, http error reported: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
} catch (\RuntimeException $e) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Runtime error: ' . $e->getCode()));
|
||||
}
|
||||
|
||||
if (!empty($buffer)) {
|
||||
|
||||
+54
-57
@@ -155,10 +155,10 @@ class NNTP extends \Net_NNTP_Client
|
||||
|
||||
) {
|
||||
return true;
|
||||
} else {
|
||||
$this->doQuit();
|
||||
}
|
||||
|
||||
$this->doQuit();
|
||||
|
||||
$ret = $connected = $cError = $aError = false;
|
||||
|
||||
// Set variables to connect based on if we are using the alternate provider or not.
|
||||
@@ -222,7 +222,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
': ' .
|
||||
$cError;
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_ERROR);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_ERROR);
|
||||
}
|
||||
return $this->throwError(ColorCLI::error($message));
|
||||
}
|
||||
@@ -263,7 +263,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
$userName .
|
||||
' (' . $aError . ')';
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_ERROR);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_ERROR);
|
||||
}
|
||||
return $this->throwError(ColorCLI::error($message));
|
||||
}
|
||||
@@ -277,7 +277,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
$this->_compressionSupported = false;
|
||||
}
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, 'Connected to ' . $this->_currentServer . '.', Logger::LOG_INFO);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, 'Connected to ' . $this->_currentServer . '.', Logger::LOG_INFO);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -292,7 +292,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
// If we somehow got out of the loop, return an error.
|
||||
$message = 'Unable to connect to ' . $this->_currentServer . $enc;
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_ERROR);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_ERROR);
|
||||
}
|
||||
return $this->throwError(ColorCLI::error($message));
|
||||
}
|
||||
@@ -314,7 +314,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
// Check if we are connected to usenet.
|
||||
if ($force === true || parent::_isConnected(false)) {
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, 'Disconnecting from ' . $this->_currentServer, Logger::LOG_INFO);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, 'Disconnecting from ' . $this->_currentServer, Logger::LOG_INFO);
|
||||
}
|
||||
// Disconnect from usenet.
|
||||
return parent::disconnect();
|
||||
@@ -329,7 +329,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function _resetProperties()
|
||||
protected function _resetProperties(): void
|
||||
{
|
||||
$this->_compressionEnabled = false;
|
||||
$this->_compressionSupported = true;
|
||||
@@ -344,7 +344,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function enableCompression()
|
||||
public function enableCompression(): void
|
||||
{
|
||||
if (!Settings::value('..compressedheaders') == 1) {
|
||||
return;
|
||||
@@ -373,9 +373,8 @@ class NNTP extends \Net_NNTP_Client
|
||||
if ($force || $this->_currentGroup !== $group || $this->_selectedGroupSummary === null) {
|
||||
$this->_currentGroup = $group;
|
||||
return parent::selectGroup($group, $articles);
|
||||
} else {
|
||||
return $this->_selectedGroupSummary;
|
||||
}
|
||||
return $this->_selectedGroupSummary;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -447,17 +446,13 @@ class NNTP extends \Net_NNTP_Client
|
||||
}
|
||||
|
||||
// Verify the NNTP server got the right command, get the headers data.
|
||||
switch ($response) {
|
||||
// 224, RFC2980: 'Overview information follows'
|
||||
case NET_NNTP_PROTOCOL_RESPONSECODE_OVERVIEW_FOLLOWS:
|
||||
$data = $this->_getTextResponse();
|
||||
if ($this->isError($data)) {
|
||||
return $data;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return $this->_handleErrorResponse($response);
|
||||
if ($response === NET_NNTP_PROTOCOL_RESPONSECODE_OVERVIEW_FOLLOWS) {
|
||||
$data = $this->_getTextResponse();
|
||||
if ($this->isError($data)) {
|
||||
return $data;
|
||||
}
|
||||
} else {
|
||||
return $this->_handleErrorResponse($response);
|
||||
}
|
||||
|
||||
// Fetch the header overview format (for setting the array keys on the return array).
|
||||
@@ -607,7 +602,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
return $body;
|
||||
}
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $newBody->getMessage(), Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $newBody->getMessage(), Logger::LOG_NOTICE);
|
||||
}
|
||||
// Return the error.
|
||||
return $newBody;
|
||||
@@ -638,7 +633,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
} else {
|
||||
$message = 'Wrong Identifier type, array, int or string accepted. This type of var was passed: ' . gettype($identifiers);
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_WARNING);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_WARNING);
|
||||
}
|
||||
return $this->throwError(ColorCLI::error($message));
|
||||
}
|
||||
@@ -678,7 +673,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
// If there was an error selecting the group, return PEAR error object.
|
||||
if ($this->isError($summary)) {
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $summary->getMessage(), Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $summary->getMessage(), Logger::LOG_NOTICE);
|
||||
}
|
||||
return $summary;
|
||||
}
|
||||
@@ -695,7 +690,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
// If there was an error downloading the article, return a PEAR error object.
|
||||
if ($this->isError($article)) {
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $article->getMessage(), Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $article->getMessage(), Logger::LOG_NOTICE);
|
||||
}
|
||||
return $article;
|
||||
}
|
||||
@@ -761,7 +756,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
// Return PEAR error object on failure.
|
||||
if ($this->isError($summary)) {
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $summary->getMessage(), Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $summary->getMessage(), Logger::LOG_NOTICE);
|
||||
}
|
||||
return $summary;
|
||||
}
|
||||
@@ -778,7 +773,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
// If we failed, return PEAR error object.
|
||||
if ($this->isError($header)) {
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $header->getMessage(), Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $header->getMessage(), Logger::LOG_NOTICE);
|
||||
}
|
||||
return $header;
|
||||
}
|
||||
@@ -824,7 +819,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
if (!$this->_postingAllowed) {
|
||||
$message = 'You do not have the right to post articles on server ' . $this->_currentServer;
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
}
|
||||
return $this->throwError(ColorCLI::error($message));
|
||||
}
|
||||
@@ -838,7 +833,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
if (strlen($subject) > 510) {
|
||||
$message = 'Max length of subject is 510 chars.';
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_WARNING);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_WARNING);
|
||||
}
|
||||
return $this->throwError(ColorCLI::error($message));
|
||||
}
|
||||
@@ -846,7 +841,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
if (strlen($from) > 510) {
|
||||
$message = 'Max length of from is 510 chars.';
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_WARNING);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_WARNING);
|
||||
}
|
||||
return $this->throwError(ColorCLI::error($message));
|
||||
}
|
||||
@@ -895,7 +890,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
// Try reconnecting. This uses another round of max retries.
|
||||
if ($nntp->doConnect($comp) !== true) {
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, 'Unable to reconnect to usenet!', Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, 'Unable to reconnect to usenet!', Logger::LOG_NOTICE);
|
||||
}
|
||||
return $this->throwError('Unable to reconnect to usenet!');
|
||||
}
|
||||
@@ -905,7 +900,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
if ($this->isError($data)) {
|
||||
$message = "Code {$data->code}: {$data->message}\nSkipping group: {$group}";
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
}
|
||||
|
||||
if ($this->_echo) {
|
||||
@@ -941,7 +936,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
if ($lineLength < 1) {
|
||||
$message = $lineLength . ' is not a valid line length.';
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
}
|
||||
return $this->throwError($message);
|
||||
}
|
||||
@@ -1015,7 +1010,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
if ($headerSize != $trailerSize) {
|
||||
$message = 'Header and trailer file sizes do not match. This is a violation of the yEnc specification.';
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
}
|
||||
return $this->throwError($message);
|
||||
}
|
||||
@@ -1031,16 +1026,16 @@ class NNTP extends \Net_NNTP_Client
|
||||
if (strlen($decoded) != $headerSize) {
|
||||
$message = 'Header file size and actual file size do not match. The file is probably corrupt.';
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
}
|
||||
return $this->throwError($message);
|
||||
}
|
||||
|
||||
// Check the CRC value
|
||||
if ($crc !== '' && (strtolower($crc) !== strtolower(sprintf("%04X", crc32($decoded))))) {
|
||||
if ($crc !== '' && (strtolower($crc) !== strtolower(sprintf('%04X', crc32($decoded))))) {
|
||||
$message = 'CRC32 checksums do not match. The file is probably corrupt.';
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
}
|
||||
return $this->throwError($message);
|
||||
}
|
||||
@@ -1053,12 +1048,12 @@ class NNTP extends \Net_NNTP_Client
|
||||
*
|
||||
* @deprecated use app\extensions\util\Yenc::decodeIgnore instead.
|
||||
*
|
||||
* @param string $data The encoded text to decode.
|
||||
* @param string|bool $data The encoded text to decode.
|
||||
*
|
||||
* @return string The decoded yEnc string, or the input string, if it's not yEnc.
|
||||
* @access protected
|
||||
*/
|
||||
protected function _decodeIgnoreYEnc(&$data)
|
||||
protected function _decodeIgnoreYEnc(&$data): string
|
||||
{
|
||||
trigger_error('Deprecated. Use app\extensions\util\Yenc::decodeIgnore instead.' . PHP_EOL);
|
||||
if (preg_match('/^(=yBegin.*=yEnd[^$]*)$/ims', $data, $input)) {
|
||||
@@ -1157,7 +1152,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function _splitLines($string, $compress = false)
|
||||
protected function _splitLines($string, $compress = false): string
|
||||
{
|
||||
// Check if the length is longer than 510 chars.
|
||||
if (strlen($string) > 510) {
|
||||
@@ -1184,7 +1179,8 @@ class NNTP extends \Net_NNTP_Client
|
||||
{
|
||||
if ($this->_compressionEnabled === true) {
|
||||
return true;
|
||||
} else if ($this->_compressionSupported === false) {
|
||||
}
|
||||
if ($this->_compressionSupported === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1194,11 +1190,12 @@ class NNTP extends \Net_NNTP_Client
|
||||
// Check if it's good.
|
||||
if ($this->isError($response)) {
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $response->getMessage(), Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $response->getMessage(), Logger::LOG_NOTICE);
|
||||
}
|
||||
$this->_compressionSupported = false;
|
||||
return $response;
|
||||
} else if ($response !== 290) {
|
||||
}
|
||||
if ($response !== 290) {
|
||||
if ($secondTry === false) {
|
||||
// Retry.
|
||||
$this->cmdQuit();
|
||||
@@ -1208,7 +1205,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
}
|
||||
$msg = "Sent 'XFEATURE COMPRESS GZIP' to server, got '$response: " . $this->_currentStatusResponse() . "'";
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $msg, Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $msg, Logger::LOG_NOTICE);
|
||||
}
|
||||
$this->_compressionSupported = false;
|
||||
|
||||
@@ -1226,7 +1223,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
* of their _getTextResponse function since it is incompatible at decoding
|
||||
* headers when XFeature GZip compression is enabled server side.
|
||||
*
|
||||
* @return self Our overridden function when compression is enabled.
|
||||
* @return self|string Our overridden function when compression is enabled.
|
||||
* parent Parent function when no compression.
|
||||
*
|
||||
* @access protected
|
||||
@@ -1238,9 +1235,8 @@ class NNTP extends \Net_NNTP_Client
|
||||
stripos($this->_currentStatusResponse[1], 'COMPRESS=GZIP') !== false) {
|
||||
|
||||
return $this->_getXFeatureTextResponse();
|
||||
} else {
|
||||
return parent::_getTextResponse();
|
||||
}
|
||||
return parent::_getTextResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1257,7 +1253,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function &_getXFeatureTextResponse()
|
||||
protected function &_getXFeatureTextResponse(): string
|
||||
{
|
||||
$possibleTerm = false;
|
||||
$data = null;
|
||||
@@ -1281,7 +1277,8 @@ class NNTP extends \Net_NNTP_Client
|
||||
// Don't sleep on last iteration.
|
||||
if (!empty($buffer)) {
|
||||
break;
|
||||
} else if ($i < 2) {
|
||||
}
|
||||
if ($i < 2) {
|
||||
usleep(10000);
|
||||
}
|
||||
}
|
||||
@@ -1309,7 +1306,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
} else {
|
||||
$message = 'Decompression of OVER headers failed.';
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
}
|
||||
$message = $this->throwError(ColorCLI::error($message), 1000);
|
||||
return $message;
|
||||
@@ -1333,7 +1330,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
if (empty($buffer)) {
|
||||
$message = 'Error fetching data from usenet server while downloading OVER headers.';
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
}
|
||||
$message = $this->throwError(ColorCLI::error($message), 1000);
|
||||
return $message;
|
||||
@@ -1352,7 +1349,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
|
||||
$message = 'Unspecified error while downloading OVER headers.';
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $message, Logger::LOG_NOTICE);
|
||||
}
|
||||
$message = $this->throwError(ColorCLI::error($message), 1000);
|
||||
return $message;
|
||||
@@ -1367,7 +1364,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function _formatMessageID($messageID)
|
||||
protected function _formatMessageID($messageID): string
|
||||
{
|
||||
$messageID = (string)$messageID;
|
||||
if ($messageID === '') {
|
||||
@@ -1398,7 +1395,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function _getMessage($groupName, $identifier)
|
||||
protected function _getMessage($groupName, $identifier): ?string
|
||||
{
|
||||
// Make sure the requested group is already selected, if not select it.
|
||||
if (parent::group() !== $groupName) {
|
||||
@@ -1407,7 +1404,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
// If there was an error selecting the group, return PEAR error object.
|
||||
if ($this->isError($summary)) {
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(), __FUNCTION__, $summary->getMessage(), Logger::LOG_WARNING);
|
||||
$this->_debugging->log(__CLASS__, __FUNCTION__, $summary->getMessage(), Logger::LOG_WARNING);
|
||||
}
|
||||
return $summary;
|
||||
}
|
||||
@@ -1445,7 +1442,7 @@ class NNTP extends \Net_NNTP_Client
|
||||
// Check if the line terminates the text response.
|
||||
if ($line === ".\r\n") {
|
||||
if ($this->_debugBool) {
|
||||
$this->_debugging->log(get_class(),
|
||||
$this->_debugging->log(__CLASS__,
|
||||
__FUNCTION__, 'Fetched body for article ' . $identifier, Logger::LOG_INFO
|
||||
);
|
||||
}
|
||||
|
||||
@@ -691,7 +691,7 @@ class NameFixer
|
||||
*/
|
||||
protected function _echoFoundCount($echo, $type): void
|
||||
{
|
||||
if ($echo === 1) {
|
||||
if ($echo === true) {
|
||||
echo ColorCLI::header(
|
||||
PHP_EOL .
|
||||
number_format($this->fixed) .
|
||||
@@ -823,7 +823,7 @@ class NameFixer
|
||||
|
||||
$newTitle = $this->pdo->escapeString(substr($newName, 0, 255));
|
||||
|
||||
if ($echo === 1) {
|
||||
if ($echo === true) {
|
||||
if ($nameStatus === 1) {
|
||||
$status = '';
|
||||
switch ($type) {
|
||||
@@ -851,7 +851,7 @@ class NameFixer
|
||||
$status = 'isrenamed = 1, iscategorized = 1, proc_uid = 1,';
|
||||
break;
|
||||
}
|
||||
$end = $this->pdo->queryExec(
|
||||
$this->pdo->queryExec(
|
||||
sprintf('
|
||||
UPDATE releases
|
||||
SET videos_id = 0, tv_episodes_id = 0, imdbid = NULL, musicinfo_id = NULL,
|
||||
@@ -1080,7 +1080,7 @@ class NameFixer
|
||||
echo ColorCLI::header($n . number_format($total) . ' releases to process.');
|
||||
|
||||
foreach ($query as $row) {
|
||||
$success = $this->matchPredbFiles($row, 1, 1, true, $show);
|
||||
$success = $this->matchPredbFiles($row, true, 1, true, $show);
|
||||
if ($success === 1) {
|
||||
$counted++;
|
||||
}
|
||||
|
||||
+20
-20
@@ -56,7 +56,7 @@ Class PreDb
|
||||
*
|
||||
* @param $dateLimit
|
||||
*/
|
||||
public function checkPre($dateLimit = false)
|
||||
public function checkPre($dateLimit = false): void
|
||||
{
|
||||
$this->dateLimit = $dateLimit;
|
||||
|
||||
@@ -120,7 +120,7 @@ Class PreDb
|
||||
*/
|
||||
public function matchPre($cleanerName)
|
||||
{
|
||||
if ($cleanerName == '') {
|
||||
if (empty($cleanerName)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -161,30 +161,30 @@ Class PreDb
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function parseTitles($time, $echo, $cats, $namestatus, $show)
|
||||
public function parseTitles($time, $echo, $cats, $namestatus, $show): int
|
||||
{
|
||||
$namefixer = new NameFixer(['Echo' => $this->echooutput, 'ConsoleTools' => $this->pdo->log, 'Settings' => $this->pdo]);
|
||||
$consoletools = new ConsoleTools(['ColorCLI' => $this->pdo->log]);
|
||||
$othercats = implode(",", Category::OTHERS_GROUP);
|
||||
$othercats = implode(',', Category::OTHERS_GROUP);
|
||||
$updated = $checked = 0;
|
||||
|
||||
$tq = '';
|
||||
if ($time == 1) {
|
||||
if ($time === 1) {
|
||||
$tq = 'AND r.adddate > (NOW() - INTERVAL 3 HOUR) ORDER BY rf.releases_id, rf.size DESC';
|
||||
}
|
||||
$ct = '';
|
||||
if ($cats == 1) {
|
||||
if ($cats === 1) {
|
||||
$ct = sprintf('AND r.categories_id IN (%s)', $othercats);
|
||||
}
|
||||
|
||||
if ($this->echooutput) {
|
||||
$te = '';
|
||||
if ($time == 1) {
|
||||
if ($time === 1) {
|
||||
$te = ' in the past 3 hours';
|
||||
}
|
||||
echo ColorCLI::header('Fixing search names' . $te . " using the predb hash.");
|
||||
echo ColorCLI::header('Fixing search names' . $te . ' using the predb hash.');
|
||||
}
|
||||
$regex = "AND (r.ishashed = 1 OR rf.ishashed = 1)";
|
||||
$regex = 'AND (r.ishashed = 1 OR rf.ishashed = 1)';
|
||||
|
||||
if ($cats === 3) {
|
||||
$query = sprintf('SELECT r.id AS releases_id, r.name, r.searchname, r.categories_id, r.groups_id, '
|
||||
@@ -200,23 +200,23 @@ Class PreDb
|
||||
|
||||
$res = $this->pdo->queryDirect($query);
|
||||
$total = $res->rowCount();
|
||||
echo ColorCLI::primary(number_format($total) . " releases to process.");
|
||||
echo ColorCLI::primary(number_format($total) . ' releases to process.');
|
||||
if ($res instanceof \Traversable) {
|
||||
foreach ($res as $row) {
|
||||
if (preg_match('/[a-fA-F0-9]{32,40}/i', $row['name'], $matches)) {
|
||||
$updated = $updated + $namefixer->matchPredbHash($matches[0], $row, $echo, $namestatus, $this->echooutput, $show);
|
||||
$updated += $namefixer->matchPredbHash($matches[0], $row, $echo, $namestatus, $this->echooutput, $show);
|
||||
} else if (preg_match('/[a-fA-F0-9]{32,40}/i', $row['filename'], $matches)) {
|
||||
$updated = $updated + $namefixer->matchPredbHash($matches[0], $row, $echo, $namestatus, $this->echooutput, $show);
|
||||
$updated += $namefixer->matchPredbHash($matches[0], $row, $echo, $namestatus, $this->echooutput, $show);
|
||||
}
|
||||
if ($show === 2) {
|
||||
$consoletools->overWritePrimary("Renamed Releases: [" . number_format($updated) . "] " . $consoletools->percentString(++$checked, $total));
|
||||
$consoletools->overWritePrimary('Renamed Releases: [' . number_format($updated) . '] ' . $consoletools->percentString($checked++, $total));
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($echo == 1) {
|
||||
echo ColorCLI::header("\n" . $updated . " releases have had their names changed out of: " . number_format($checked) . " files.");
|
||||
if ($echo === 1) {
|
||||
echo ColorCLI::header(PHP_EOL . $updated . ' releases have had their names changed out of: ' . number_format($checked) . ' files.');
|
||||
} else {
|
||||
echo ColorCLI::header("\n" . $updated . " releases could have their names changed. " . number_format($checked) . " files were checked.");
|
||||
echo ColorCLI::header(PHP_EOL . $updated . ' releases could have their names changed. ' . number_format($checked) . ' files were checked.');
|
||||
}
|
||||
|
||||
return $updated;
|
||||
@@ -231,7 +231,7 @@ Class PreDb
|
||||
*
|
||||
* @return array The row count and the query results.
|
||||
*/
|
||||
public function getAll($offset, $offset2, $search = '')
|
||||
public function getAll($offset, $offset2, $search = ''): array
|
||||
{
|
||||
if ($search !== '') {
|
||||
$search = explode(' ', trim($search));
|
||||
@@ -267,7 +267,7 @@ Class PreDb
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getCount($search = '')
|
||||
public function getCount($search = ''): int
|
||||
{
|
||||
$count = $this->pdo->query("
|
||||
SELECT COUNT(id) AS cnt
|
||||
@@ -285,7 +285,7 @@ Class PreDb
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getForRelease($preID)
|
||||
public function getForRelease($preID): array
|
||||
{
|
||||
return $this->pdo->query(sprintf('SELECT * FROM predb WHERE id = %d', $preID));
|
||||
}
|
||||
@@ -297,7 +297,7 @@ Class PreDb
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getOne($preID)
|
||||
public function getOne($preID): array
|
||||
{
|
||||
return $this->pdo->queryOneRow(sprintf('SELECT * FROM predb WHERE id = %d', $preID));
|
||||
}
|
||||
|
||||
@@ -104,6 +104,8 @@ class ReleaseImage
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data, server responded with code: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
} catch (\RuntimeException $e) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Runtime error: ' . $e->getCode()));
|
||||
}
|
||||
|
||||
} else if (is_file($imgLoc)) {
|
||||
|
||||
+102
-94
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace nntmux;
|
||||
|
||||
use app\models\Settings;
|
||||
@@ -24,6 +25,7 @@ class XXX
|
||||
|
||||
/**
|
||||
* Current title being passed through various sites/api's.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $currentTitle = '';
|
||||
@@ -151,6 +153,7 @@ class XXX
|
||||
public function getCount(): int
|
||||
{
|
||||
$res = $this->pdo->queryOneRow('SELECT COUNT(id) AS num FROM xxxinfo');
|
||||
|
||||
return ($res === false ? 0 : $res['num']);
|
||||
}
|
||||
|
||||
@@ -176,7 +179,7 @@ class XXX
|
||||
$order = $this->getXXXOrder($orderBy);
|
||||
|
||||
$xxxmovies = $this->pdo->queryCalc(
|
||||
sprintf("
|
||||
sprintf("
|
||||
SELECT SQL_CALC_FOUND_ROWS
|
||||
xxx.id,
|
||||
GROUP_CONCAT(r.id ORDER BY r.postdate DESC SEPARATOR ',') AS grp_release_id
|
||||
@@ -188,18 +191,18 @@ class XXX
|
||||
%s %s %s %s
|
||||
GROUP BY xxx.id
|
||||
ORDER BY %s %s %s",
|
||||
$this->showPasswords,
|
||||
$this->getBrowseBy(),
|
||||
$catsrch,
|
||||
($maxAge > 0
|
||||
? 'AND r.postdate > NOW() - INTERVAL ' . $maxAge . 'DAY '
|
||||
: ''
|
||||
),
|
||||
(count($excludedCats) > 0 ? ' AND r.categories_id NOT IN (' . implode(',', $excludedCats) . ')' : ''),
|
||||
$order[0],
|
||||
$order[1],
|
||||
($start === false ? '' : ' LIMIT ' . $num . ' OFFSET ' . $start)
|
||||
), true, NN_CACHE_EXPIRY_MEDIUM
|
||||
$this->showPasswords,
|
||||
$this->getBrowseBy(),
|
||||
$catsrch,
|
||||
($maxAge > 0
|
||||
? 'AND r.postdate > NOW() - INTERVAL ' . $maxAge . 'DAY '
|
||||
: ''
|
||||
),
|
||||
(count($excludedCats) > 0 ? ' AND r.categories_id NOT IN (' . implode(',', $excludedCats) . ')' : ''),
|
||||
$order[0],
|
||||
$order[1],
|
||||
($start === false ? '' : ' LIMIT ' . $num . ' OFFSET ' . $start)
|
||||
), true, NN_CACHE_EXPIRY_MEDIUM
|
||||
);
|
||||
|
||||
$xxxIDs = $releaseIDs = false;
|
||||
@@ -214,7 +217,7 @@ class XXX
|
||||
$sql = sprintf("
|
||||
SELECT
|
||||
GROUP_CONCAT(r.id ORDER BY r.postdate DESC SEPARATOR ',') AS grp_release_id,
|
||||
GROUP_CONCAT(r.rarinnerfilecount ORDER BY r.postdate DESC SEPARATOR ',') as grp_rarinnerfilecount,
|
||||
GROUP_CONCAT(r.rarinnerfilecount ORDER BY r.postdate DESC SEPARATOR ',') AS grp_rarinnerfilecount,
|
||||
GROUP_CONCAT(r.haspreview ORDER BY r.postdate DESC SEPARATOR ',') AS grp_haspreview,
|
||||
GROUP_CONCAT(r.passwordstatus ORDER BY r.postdate DESC SEPARATOR ',') AS grp_release_password,
|
||||
GROUP_CONCAT(r.guid ORDER BY r.postdate DESC SEPARATOR ',') AS grp_release_guid,
|
||||
@@ -245,22 +248,23 @@ class XXX
|
||||
%s %s %s %s
|
||||
GROUP BY xxx.id
|
||||
ORDER BY %s %s",
|
||||
(is_array($xxxIDs) ? implode(',', $xxxIDs) : -1),
|
||||
$this->showPasswords,
|
||||
$this->getBrowseBy(),
|
||||
$catsrch,
|
||||
($maxAge > 0
|
||||
? 'AND r.postdate > NOW() - INTERVAL ' . $maxAge . 'DAY '
|
||||
: ''
|
||||
),
|
||||
(count($excludedCats) > 0 ? ' AND r.categories_id NOT IN (' . implode(',', $excludedCats) . ')' : ''),
|
||||
$order[0],
|
||||
$order[1]
|
||||
(is_array($xxxIDs) ? implode(',', $xxxIDs) : -1),
|
||||
$this->showPasswords,
|
||||
$this->getBrowseBy(),
|
||||
$catsrch,
|
||||
($maxAge > 0
|
||||
? 'AND r.postdate > NOW() - INTERVAL ' . $maxAge . 'DAY '
|
||||
: ''
|
||||
),
|
||||
(count($excludedCats) > 0 ? ' AND r.categories_id NOT IN (' . implode(',', $excludedCats) . ')' : ''),
|
||||
$order[0],
|
||||
$order[1]
|
||||
);
|
||||
$return = $this->pdo->query($sql, true, NN_CACHE_EXPIRY_MEDIUM);
|
||||
if (!empty($return)){
|
||||
if (!empty($return)) {
|
||||
$return[0]['_totalcount'] = $xxxmovies['total'] ?? 0;
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
@@ -317,6 +321,7 @@ class XXX
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $browseBy;
|
||||
}
|
||||
|
||||
@@ -341,8 +346,8 @@ class XXX
|
||||
if (trim($ta) === '') {
|
||||
continue;
|
||||
}
|
||||
if ($field === 'genre' ) {
|
||||
$ta = $this->getGenres(true,$ta);
|
||||
if ($field === 'genre') {
|
||||
$ta = $this->getGenres(true, $ta);
|
||||
$ta = $ta['title'];
|
||||
}
|
||||
if ($i > 7) {
|
||||
@@ -351,6 +356,7 @@ class XXX
|
||||
$newArr[] = '<a href="' . WWW_TOP . '/xxx?' . $field . '=' . urlencode($ta) . '" title="' . $ta . '">' . $ta . '</a>';
|
||||
$i++;
|
||||
}
|
||||
|
||||
return implode(', ', $newArr);
|
||||
}
|
||||
|
||||
@@ -421,7 +427,7 @@ class XXX
|
||||
|
||||
if ($iafd->findme() !== false) {
|
||||
|
||||
switch($iafd->classUsed) {
|
||||
switch ($iafd->classUsed) {
|
||||
case 'ade':
|
||||
$mov = new ADE();
|
||||
$mov->directLink = (string)$iafd->directUrl;
|
||||
@@ -496,83 +502,78 @@ class XXX
|
||||
}
|
||||
}
|
||||
|
||||
$mov['trailers'] = !empty($res['trailers']) ? serialize($res['trailers']) : '';
|
||||
$mov['extras'] = !empty($res['extras']) ? serialize($res['extras']) : '';
|
||||
$mov['productinfo'] = !empty($res['productinfo']) ? serialize($res['productinfo']) : '';
|
||||
$mov['backdrop'] = !empty($res['backcover']) ? $res['backcover'] : 0;
|
||||
$mov['cover'] = !empty($res['boxcover']) ? $res['boxcover'] : 0;
|
||||
$res['cast'] = !empty($res['cast']) ? implode(',', $res['cast']) : '';
|
||||
$res['genres'] = !empty($res['genres']) ? $this->getGenreID($res['genres']) : '';
|
||||
$mov['title'] = !empty($res['title']) ? html_entity_decode($res['title'], ENT_QUOTES, 'UTF-8') : '';
|
||||
$mov['plot'] = !empty($res['sypnosis']) ? html_entity_decode($res['sypnosis'], ENT_QUOTES, 'UTF-8') : '';
|
||||
$mov['tagline'] = !empty($res['tagline']) ? html_entity_decode($res['tagline'], ENT_QUOTES, 'UTF-8') : '';
|
||||
$mov['genre'] = !empty($res['genres']) ? html_entity_decode($res['genres'], ENT_QUOTES, 'UTF-8') : '';
|
||||
$mov['director'] = !empty($res['director']) ? html_entity_decode($res['director'], ENT_QUOTES, 'UTF-8') : '';
|
||||
$mov['actors'] = !empty($res['cast']) ? html_entity_decode($res['cast'], ENT_QUOTES, 'UTF-8') : '';
|
||||
$mov['directurl'] = !empty($res['directurl']) ? html_entity_decode($res['directurl'], ENT_QUOTES, 'UTF-8') : '';
|
||||
$mov['classused'] = $this->whichclass;
|
||||
|
||||
$mov = [
|
||||
'trailers' => !empty($res['trailers']) ? serialize($res['trailers']) : '',
|
||||
'extras' => !empty($res['extras']) ? serialize($res['extras']) : '',
|
||||
'productinfo' => !empty($res['productinfo']) ? serialize($res['productinfo']) : '',
|
||||
'backdrop' => !empty($res['backcover']) ? $res['backcover'] : 0,
|
||||
'cover' => !empty($res['boxcover']) ? $res['boxcover'] : 0,
|
||||
'title' => !empty($res['title']) ? html_entity_decode($res['title'], ENT_QUOTES, 'UTF-8') : '',
|
||||
'plot' => !empty($res['sypnosis']) ? html_entity_decode($res['sypnosis'], ENT_QUOTES, 'UTF-8') : '',
|
||||
'tagline' => !empty($res['tagline']) ? html_entity_decode($res['tagline'], ENT_QUOTES, 'UTF-8') : '',
|
||||
'genre' => !empty($res['genres']) ? html_entity_decode($res['genres'], ENT_QUOTES, 'UTF-8') : '',
|
||||
'director' => !empty($res['director']) ? html_entity_decode($res['director'], ENT_QUOTES, 'UTF-8') : '',
|
||||
'actors' => !empty($res['cast']) ? html_entity_decode($res['cast'], ENT_QUOTES, 'UTF-8') : '',
|
||||
'directurl' => !empty($res['directurl']) ? html_entity_decode($res['directurl'], ENT_QUOTES, 'UTF-8') : '',
|
||||
'classused' => $this->whichclass
|
||||
];
|
||||
|
||||
$check = $this->pdo->queryOneRow(sprintf('SELECT id FROM xxxinfo WHERE title = %s', $this->pdo->escapeString($mov['title'])));
|
||||
$xxxID = 0;
|
||||
if(isset($check['id'])){
|
||||
if (isset($check['id'])) {
|
||||
$xxxID = $check['id'];
|
||||
}
|
||||
|
||||
if($check === false || $xxxID > 0){
|
||||
// Update Current XXX Information - getXXXCovers.php
|
||||
if ($xxxID > 0) {
|
||||
$this->update($check['id'], $mov['title'], $mov['tagline'], $mov['plot'], $mov['genre'], $mov['director'], $mov['actors'], $mov['extras'], $mov['productinfo'], $mov['trailers'], $mov['directurl'], $mov['classused']);
|
||||
$xxxID = $check['id'];
|
||||
|
||||
// Update Current XXX Information - getXXXCovers.php
|
||||
if($xxxID > 0){
|
||||
$this->update($check['id'], $mov['title'], $mov['tagline'], $mov['plot'], $mov['genre'], $mov['director'], $mov['actors'], $mov['extras'], $mov['productinfo'], $mov['trailers'], $mov['directurl'], $mov['classused']);
|
||||
$xxxID = $check['id'];
|
||||
// BoxCover.
|
||||
if (isset($mov['cover'])) {
|
||||
$mov['cover'] = $this->releaseImage->saveImage($xxxID . '-cover', $mov['cover'], $this->imgSavePath);
|
||||
}
|
||||
|
||||
// Insert New XXX Information
|
||||
if($check === false){
|
||||
$xxxID = $this->pdo->queryInsert(
|
||||
sprintf('
|
||||
// BackCover.
|
||||
if (isset($mov['backdrop'])) {
|
||||
$mov['backdrop'] = $this->releaseImage->saveImage($xxxID . '-backdrop', $mov['backdrop'], $this->imgSavePath, 1920, 1024);
|
||||
}
|
||||
|
||||
$this->pdo->queryExec(sprintf('UPDATE xxxinfo SET cover = %d, backdrop = %d WHERE id = %d', $mov['cover'], $mov['backdrop'], $xxxID));
|
||||
|
||||
} else {
|
||||
$xxxID = -2;
|
||||
}
|
||||
|
||||
// Insert New XXX Information
|
||||
if ($check === false) {
|
||||
$xxxID = $this->pdo->queryInsert(
|
||||
sprintf('
|
||||
INSERT INTO xxxinfo
|
||||
(title, tagline, plot, genre, director, actors, extras, productinfo, trailers, directurl, classused, cover, backdrop, createddate, updateddate)
|
||||
VALUES
|
||||
(%s, %s, COMPRESS(%s), %s, %s, %s, %s, %s, %s, %s, %s, 0, 0, NOW(), NOW())',
|
||||
$this->pdo->escapeString($mov['title']),
|
||||
$this->pdo->escapeString($mov['tagline']),
|
||||
$this->pdo->escapeString($mov['plot']),
|
||||
$this->pdo->escapeString(substr($mov['genre'], 0, 64)),
|
||||
$this->pdo->escapeString($mov['director']),
|
||||
$this->pdo->escapeString($mov['actors']),
|
||||
$this->pdo->escapeString($mov['extras']),
|
||||
$this->pdo->escapeString($mov['productinfo']),
|
||||
$this->pdo->escapeString($mov['trailers']),
|
||||
$this->pdo->escapeString($mov['directurl']),
|
||||
$this->pdo->escapeString($mov['classused'])
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if ($xxxID > 0) {
|
||||
|
||||
// BoxCover.
|
||||
if (isset($mov['cover'])) {
|
||||
$mov['cover'] = $this->releaseImage->saveImage($xxxID . '-cover', $mov['cover'], $this->imgSavePath);
|
||||
}
|
||||
|
||||
// BackCover.
|
||||
if (isset($mov['backdrop'])) {
|
||||
$mov['backdrop'] = $this->releaseImage->saveImage($xxxID . '-backdrop', $mov['backdrop'], $this->imgSavePath, 1920, 1024);
|
||||
}
|
||||
|
||||
$this->pdo->queryExec(sprintf('UPDATE xxxinfo SET cover = %d, backdrop = %d WHERE id = %d', $mov['cover'], $mov['backdrop'], $xxxID));
|
||||
|
||||
} else {
|
||||
$xxxID = -2;
|
||||
}
|
||||
|
||||
$this->pdo->escapeString($mov['title']),
|
||||
$this->pdo->escapeString($mov['tagline']),
|
||||
$this->pdo->escapeString($mov['plot']),
|
||||
$this->pdo->escapeString(substr($mov['genre'], 0, 64)),
|
||||
$this->pdo->escapeString($mov['director']),
|
||||
$this->pdo->escapeString($mov['actors']),
|
||||
$this->pdo->escapeString($mov['extras']),
|
||||
$this->pdo->escapeString($mov['productinfo']),
|
||||
$this->pdo->escapeString($mov['trailers']),
|
||||
$this->pdo->escapeString($mov['directurl']),
|
||||
$this->pdo->escapeString($mov['classused'])
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if ($this->echooutput) {
|
||||
ColorCLI::doEcho(
|
||||
ColorCLI::headerOver(($xxxID !== false ? 'Added/updated XXX movie: ' : 'Nothing to update for XXX movie: ')) .
|
||||
ColorCLI::primary($mov['title'])
|
||||
ColorCLI::headerOver(($xxxID !== false ? 'Added/updated XXX movie: ' . ColorCLI::primary($mov['title']) : 'Nothing to update for XXX movie: ' . ColorCLI::primary($mov['title'])))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -679,8 +680,9 @@ class XXX
|
||||
$name = trim(preg_replace('/(brazilian|chinese|croatian|danish|deutsch|dutch|estonian|flemish|finnish|french|german|greek|hebrew|icelandic|italian|latin|nordic|norwegian|polish|portuguese|japenese|japanese|russian|serbian|slovenian|spanish|spanisch|swedish|thai|turkish)$/i', '', $name));
|
||||
|
||||
// Check if the name is long enough and not just numbers and not file (d) of (d) and does not contain Episodes and any dated 00.00.00 which are site rips..
|
||||
if (strlen($name) > 5 && !preg_match('/^\d+$/', $name) && !preg_match('/( File \d+ of \d+|\d+.\d+.\d+)/',$name) && !preg_match('/(E\d+)/',$name) && !preg_match('/\d\d\.\d\d.\d\d/', $name)) {
|
||||
if (strlen($name) > 5 && !preg_match('/^\d+$/', $name) && !preg_match('/( File \d+ of \d+|\d+.\d+.\d+)/', $name) && !preg_match('/(E\d+)/', $name) && !preg_match('/\d\d\.\d\d.\d\d/', $name)) {
|
||||
$this->currentTitle = $name;
|
||||
|
||||
return true;
|
||||
}
|
||||
ColorCLI::doEcho('.', false);
|
||||
@@ -702,22 +704,25 @@ class XXX
|
||||
|
||||
if ($activeOnly) {
|
||||
$res = $this->pdo->query('SELECT title FROM genres WHERE disabled = 0 AND type = ' .
|
||||
Category::XXX_ROOT . ' ORDER BY title');
|
||||
Category::XXX_ROOT . ' ORDER BY title'
|
||||
);
|
||||
} else {
|
||||
$res = $this->pdo->query('SELECT title FROM genres WHERE disabled = 1 AND type = ' .
|
||||
Category::XXX_ROOT . ' ORDER BY title');
|
||||
Category::XXX_ROOT . ' ORDER BY title'
|
||||
);
|
||||
}
|
||||
|
||||
foreach ($res as $arr => $value) {
|
||||
$ret[] = $value['title'];
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Genres for activeonly and/or an ID
|
||||
*
|
||||
* @param bool $activeOnly
|
||||
* @param bool $activeOnly
|
||||
* @param null|string $gid
|
||||
*
|
||||
* @return array|bool
|
||||
@@ -733,6 +738,7 @@ class XXX
|
||||
if ($activeOnly) {
|
||||
return $this->pdo->queryOneRow('SELECT title FROM genres WHERE disabled = 0 AND type = ' . Category::XXX_ROOT . $gid);
|
||||
}
|
||||
|
||||
return $this->pdo->queryOneRow('SELECT title FROM genres WHERE disabled = 1 AND type = ' . Category::XXX_ROOT . $gid);
|
||||
}
|
||||
|
||||
@@ -763,7 +769,8 @@ class XXX
|
||||
}
|
||||
}
|
||||
|
||||
$ret = ltrim($ret,',');
|
||||
$ret = ltrim($ret, ',');
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
@@ -780,6 +787,7 @@ class XXX
|
||||
if ($genre !== null) {
|
||||
$res = $this->pdo->queryInsert(sprintf('INSERT INTO genres (title, type, disabled) VALUES (%s ,%d ,%d)', $this->pdo->escapeString($genre), Category::XXX_ROOT, 0));
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
@@ -797,7 +805,7 @@ class XXX
|
||||
if ($whichclass === 'ade') {
|
||||
if (!empty($res)) {
|
||||
$trailers = unserialize($res, 'ade');
|
||||
$ret .="<object width='360' height='240' type='application/x-shockwave-flash' id='EmpireFlashPlayer' name='EmpireFlashPlayer' data='". $trailers['url'] . "'>";
|
||||
$ret .= "<object width='360' height='240' type='application/x-shockwave-flash' id='EmpireFlashPlayer' name='EmpireFlashPlayer' data='" . $trailers['url'] . "'>";
|
||||
$ret .= "<param name='flashvars' value= 'streamID=" . $trailers['streamid'] . "&autoPlay=false&BaseStreamingUrl=" . $trailers['baseurl'] . "'>";
|
||||
$ret .= "</object>";
|
||||
|
||||
@@ -808,7 +816,7 @@ class XXX
|
||||
if (!empty($res)) {
|
||||
$trailers = unserialize($res, 'pop');
|
||||
$ret .= "<embed id='trailer' width='480' height='360'";
|
||||
$ret .= "flashvars='" . $trailers['flashvars'] . "' allowfullscreen='true' allowscriptaccess='always' quality='high' name='trailer' style='undefined'";
|
||||
$ret .= "flashvars='" . $trailers['flashvars'] . "' allowfullscreen='true' allowscriptaccess='always' quality='high' name='trailer' style='undefined'";
|
||||
$ret .= "src='" . $trailers['baseurl'] . "' type='application/x-shockwave-flash'>";
|
||||
|
||||
return $ret;
|
||||
|
||||
@@ -168,11 +168,13 @@ Class TraktAPI {
|
||||
} catch (RequestException $e) {
|
||||
if ($e->hasResponse()) {
|
||||
if($e->getCode() === 404) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on server'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Data not available on TraktTV server'));
|
||||
} else if ($e->getCode() === 503) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Service unavailable'));
|
||||
ColorCLI::doEcho(ColorCLI::notice('TraktTV service unavailable'));
|
||||
} else if ($e->getCode() === 401) {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unauthorized - OAuth must be provided for TraktTV'));
|
||||
} else {
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data, server responded with code: ' . $e->getCode()));
|
||||
ColorCLI::doEcho(ColorCLI::notice('Unable to fetch data from TraktTV, server responded with code: ' . $e->getCode()));
|
||||
}
|
||||
}
|
||||
} catch (\RuntimeException $e) {
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ INSERT INTO release_naming_regexes (id, group_regex, regex, status, description,
|
||||
VALUES (
|
||||
33,
|
||||
'^alt\\.binaries\\.(anime|multimedia.anime)\\.?(highspeed|repost)?',
|
||||
'/^[[(]\\d+\\/\\d+[])] - " ?(?P<match0>.+?) ?[. ](7z|avi|md5|mkv|mp4|nzb|par|vol)t?\\d+.+yEnc$/,
|
||||
'/^[[(]\\d+\\/\\d+[])] - " ?(?P<match0>.+?) ?[. ](7z|avi|md5|mkv|mp4|nzb|par|vol)t?\\d+.+yEnc$/',
|
||||
1,
|
||||
'//[01/17] - "[neko-raws] Niji-iro Days 02 [BD][1080p][FLAC][768CC18E]v2.par2" - 590,59 MB yEnc',
|
||||
5
|
||||
@@ -32,6 +32,6 @@ VALUES (
|
||||
'^alt\\.binaries\\.(anime|multimedia.anime)\\.?(highspeed|repost)?',
|
||||
'/^.+\\" ?[ .-]?(?P<match0>.+?) ?[ .](7z|avi|md5|mkv|mp4|nfo|nzb|par|vol)t?\\d?+.+[[(]\\d+\\/\\d+[])]$/',
|
||||
1,
|
||||
'//My Hero Academia Textless Opening Song 'THE DAY' (BD AVC 1080p FLAC) [6D660059] - "My Hero Academia Textless Opening Song 'THE DAY' (BD AVC 1080p FLAC) [6D660059] nfo" yEnc (01/35)',
|
||||
'//My Hero Academia Textless Opening Song \'THE DAY\' (BD AVC 1080p FLAC) [6D660059] - "My Hero Academia Textless Opening Song \'THE DAY\' (BD AVC 1080p FLAC) [6D660059] nfo" yEnc (01/35)',
|
||||
15
|
||||
);
|
||||
@@ -1,3 +1,4 @@
|
||||
<div class="well well-small"
|
||||
{if isset($nodata) && $nodata !=''}
|
||||
<div class="header">
|
||||
<h2>View > <strong>Anime</strong></h2>
|
||||
@@ -13,16 +14,13 @@
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<h1>
|
||||
<div class="well well-sm">
|
||||
{$animeTitle}
|
||||
<div class="well well-sm">
|
||||
<h1>{$animeTitle}
|
||||
{if isset($isadmin)}
|
||||
<a class="btn btn-xs btn-warning" title="Edit AniDB data"
|
||||
href="{$smarty.const.WWW_TOP}/admin/anidb-edit.php?id={$animeAnidbid}& from={$smarty.server.REQUEST_URI|escape:"url"}">Edit</a>
|
||||
{/if}
|
||||
</div>
|
||||
</h1>
|
||||
<div class="well well-sm">
|
||||
</h1>
|
||||
{if animePicture != ''}
|
||||
<div style="text-align: center;">
|
||||
<img class="shadow img img-polaroid" alt="{$animeTitle} Picture"
|
||||
@@ -40,15 +38,15 @@
|
||||
{if $animeRating != ''}<br><b>AniDB Rating: {$animeRating|escape:"htmlall"}</b>{/if}
|
||||
{if $animeRelated != ''}<br><i>Related Anime: {$animeRelated|escape:"htmlall"}</i><br/>{/if}
|
||||
</p>
|
||||
</div>
|
||||
<div style="text-align: center;">
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-sm btn-default"
|
||||
href="{$site->dereferrer_link}http://anidb.net/perl-bin/animedb.pl?show=anime&aid={$animeAnidbid}"
|
||||
title="View AniDB">View AniDB</a>
|
||||
<a class="btn btn-sm btn-default"
|
||||
href="{$smarty.const.WWW_TOP}/rss?anidb={$animeAnidbid}&dl=1&i={$userdata.id}&r={$userdata.rsstoken}">RSS
|
||||
feed for this Anime <i class="fa fa-rss"></i></a>
|
||||
<div style="text-align: center;">
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-sm btn-default"
|
||||
href="{$site->dereferrer_link}http://anidb.net/perl-bin/animedb.pl?show=anime&aid={$animeAnidbid}"
|
||||
title="View AniDB">View AniDB</a>
|
||||
<a class="btn btn-sm btn-default"
|
||||
href="{$smarty.const.WWW_TOP}/rss?anidb={$animeAnidbid}&dl=1&i={$userdata.id}&r={$userdata.rsstoken}">RSS
|
||||
feed for this Anime <i class="fa fa-rss"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="nzb_multi_operations_form" action="get">
|
||||
@@ -100,8 +98,8 @@
|
||||
<tr class="{cycle values=",alt"}">
|
||||
<td>
|
||||
<input id="guid{$result.guid}"
|
||||
type="checkbox" class="flat"
|
||||
value="{$result.guid}"/></td>
|
||||
type="checkbox" class="flat"
|
||||
value="{$result.guid}"/></td>
|
||||
<td>
|
||||
<a title="View details"
|
||||
href="{$smarty.const.WWW_TOP}/details/{$result.guid}">{$result.searchname|escape:"htmlall"|replace:".":" "}</a>
|
||||
@@ -137,19 +135,20 @@
|
||||
data-original-title="Comments"></i></a>
|
||||
<a href="#">
|
||||
<i
|
||||
id="guid{$result.guid}" class="icon_cart fa fa-shopping-basket" data-toggle="tooltip"
|
||||
data-placement="top" title
|
||||
data-original-title="Send to my Download Basket">
|
||||
id="guid{$result.guid}" class="icon_cart fa fa-shopping-basket"
|
||||
data-toggle="tooltip"
|
||||
data-placement="top" title
|
||||
data-original-title="Send to my Download Basket">
|
||||
</i>
|
||||
</a>
|
||||
{if isset($sabintegrated) && $sabintegrated !=""}
|
||||
<a href="#">
|
||||
<i
|
||||
id="guid{$result.guid}"
|
||||
class="fa fa-share"
|
||||
data-toggle="tooltip"
|
||||
data-placement="top" title
|
||||
data-original-title="Send to My Queue">
|
||||
id="guid{$result.guid}"
|
||||
class="fa fa-share"
|
||||
data-toggle="tooltip"
|
||||
data-placement="top" title
|
||||
data-original-title="Send to My Queue">
|
||||
</i>
|
||||
</a>
|
||||
{/if}
|
||||
@@ -163,5 +162,10 @@
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{/if}
|
||||
|
||||
Reference in New Issue
Block a user