Files
newznab-tmux/misc/testing/PostProc/updateTvRage.php
T
2015-10-05 23:12:28 +02:00

72 lines
2.2 KiB
PHP

<?php
//This script downloads covert art for Tv Shows -- it is intended to be run at interval, generally after the TvRage database is populated
require_once dirname(__FILE__) . '/../../../www/config.php';
use newznab\db\Settings;
use newznab\utility\Utility;
$pdo = new Settings();
$tvrage = new TvRage(['Settings' => $pdo, 'Echo' => true]);
$shows = $pdo->queryDirect("SELECT rageid, releasetitle FROM tvrage WHERE hascover = 0 ORDER BY rageid DESC LIMIT 2000");
if ($shows->rowCount() > 0) {
echo "\n";
echo $pdo->log->header("Updating " . number_format($shows->rowCount()) . " tv shows.\n");
} else {
echo "\n";
echo $pdo->log->info("All shows in TvRage database have been updated.\n");
usleep(5000000);
}
if ($shows instanceof \Traversable) {
foreach ($shows as $show) {
$starttime = microtime(true);
$showid = $show['id'];
$rageid = $show['rageid'];
$tvrShow = $tvrage->getRageInfoFromService($rageid);
$genre = '';
if (isset($tvrShow['genres']) && is_array($tvrShow['genres']) && !empty($tvrShow['genres'])) {
if (is_array($tvrShow['genres']['genre'])) {
$genre = @implode('|', $tvrShow['genres']['genre']);
} else {
$genre = $tvrShow['genres']['genre'];
}
}
$country = '';
if (isset($tvrShow['country']) && !empty($tvrShow['country'])) {
$country = $tvrage->countryCode($tvrShow['country']);
}
$rInfo = $tvrage->getRageInfoFromPage($rageid);
$desc = '';
if (isset($rInfo['desc']) && !empty($rInfo['desc'])) {
$desc = $rInfo['desc'];
}
$hasCover = 0;
if (isset($rInfo['imgurl']) && !empty($rInfo['imgurl'])) {
$hasCover = (new ReleaseImage($pdo))->saveImage($rageid, $rInfo['imgurl'], $tvrage->imgSavePath, '', '');
}
$pdo->queryDirect(
sprintf("
UPDATE tvrage
SET description = %s, genre = %s, country = %s, hascover = %d
WHERE rageid = %d",
$pdo->escapeString(substr($desc, 0, 10000)),
$pdo->escapeString(substr($genre, 0, 64)),
$pdo->escapeString($country),
$hasCover,
$rageid
)
);
echo $pdo->log->primary("Updated: " . $show['releasetitle']);
$diff = floor((microtime(true) - $starttime) * 1000000);
if (1000000 - $diff > 0) {
echo $pdo->log->alternate("Sleeping");
usleep(1000000 - $diff);
}
}
}