function updateMovies() { global $logger; $logger->info("UPDATE MOVIES"); $sqlresult = mysqli_query($GLOBALS['mysqli'], " UPDATE movies c\r\n INNER JOIN (\r\n SELECT movieId, SUM(seed)+SUM(leech) as total\r\n FROM links\r\n WHERE `translateQuality` != \"ORIGINAL\"\r\n GROUP BY movieId\r\n ) x ON c.id = x.movieId\r\n SET c.sum_peers = x.total\r\n "); if (mysqli_errno($GLOBALS['mysqli'])) { $logger->error(mysqli_error($GLOBALS['mysqli'])); } $sqlresult = mysqli_query($GLOBALS['mysqli'], "SELECT * FROM `movies` WHERE `movies`.id in (SELECT movieId FROM links)"); while ($row = mysqli_fetch_assoc($sqlresult)) { if ($reason = trySkipMovie($row)) { $logger->info($row['title'] . ": {$reason}"); $res = addMovie($row); if ($res !== 0) { $logger->warning($res); } //$logger->info(print_r($row, true)); } } }
function addMovie(&$movie, $force = false) { global $logger; if (!$movie) { return "illegal argument"; } if (!$force && trySkipMovie($movie) === 0) { return 0; } $row = false; $idTypes = array("kpid", "imdbid"); foreach ($idTypes as $idName) { if (array_key_exists($idName, $movie) && $movie[$idName]) { $id = mysqli_real_escape_string($GLOBALS['mysqli'], $movie[$idName]); $sqlresult = mysqli_query($GLOBALS['mysqli'], "SELECT * FROM movies WHERE {$idName}='{$id}'"); if (mysqli_errno($GLOBALS['mysqli'])) { $logger->error(mysqli_error($GLOBALS['mysqli'])); } if (mysqli_num_rows($sqlresult)) { $row = mysqli_fetch_assoc($sqlresult); break; } } } if (!$row) { $row['description'] = ""; } $movie['description'] = json_decode($row['description'], true); if (!$movie['description']) { $movie['description'] = array(); } $q = "UPDATE movies SET updated=now()"; if (!(array_key_exists("kpid", $movie) && $movie['kpid']) && is_array($movie['description']) && array_key_exists("kinopoiskId", $movie['description'])) { $movie['kpid'] = $movie['description']['kinopoiskId']; } if (array_key_exists("imdbid", $movie) && $movie['imdbid']) { $q .= ", imdbid='{$movie['imdbid']}'"; getIMDBDesc($movie['imdbid'], $movie['description']); } if (array_key_exists("kpid", $movie) && $movie['kpid']) { $q .= ", kpid='{$movie['kpid']}'"; getKinopoiskDesc($movie['kpid'], $movie['description']); } $title = false; if (is_array($movie['description']) && array_key_exists('Title', $movie['description'])) { $title = $movie['description']['Title']; } if (is_array($movie['description']) && array_key_exists('titleRu', $movie['description'])) { $title = $movie['description']['titleRu']; } $description = mysqli_real_escape_string($GLOBALS['mysqli'], json_encode($movie['description'], JSON_UNESCAPED_UNICODE)); if ($title && $description && array_key_exists("Released", $movie['description']) && array_key_exists("Year", $movie['description'])) { if (!array_key_exists('id', $row)) { mysqli_query($GLOBALS['mysqli'], "INSERT INTO movies(id) VALUES(NULL)"); $row['id'] = $GLOBALS['mysqli']->insert_id; } $id = $row['id']; $movie['id'] = $id; $search = generateSearchTags($movie['description']); $search = mysqli_real_escape_string($GLOBALS['mysqli'], $search); $q .= ", title='{$title}', description='{$description}', search='{$search}'"; mysqli_query($GLOBALS['mysqli'], "{$q} WHERE id={$id}"); if (mysqli_errno($GLOBALS['mysqli'])) { $logger->error(mysqli_error($GLOBALS['mysqli'])); } return 0; } return "title, description, released or year not found"; }