load_db.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/usr/local/bin/php
  2. <?php
  3. define('DEBUG', true);
  4. set_time_limit(0);
  5. require_once 'includes/main.php';
  6. require_once 'includes/tvdb_update.php';
  7. global $EXISTS_FILES;
  8. global $CONTENT_FILES;
  9. # Allow single-ID use
  10. if ($argv[1]) {
  11. return tvdb_update($argv[1], true);
  12. }
  13. # Files->DB import
  14. $insertSQL = 'INSERT INTO search (id, ' . join(', ', $EXISTS_FILES) . ', ' . join(',', $CONTENT_FILES) .
  15. ') VALUES (:id, :' . join(', :', $EXISTS_FILES) . ', :' . join(', :', $CONTENT_FILES) . ')';
  16. $updateSQL = 'UPDATE search SET ';
  17. foreach ($EXISTS_FILES as $name) {
  18. if ($name != $EXISTS_FILES[0]) {
  19. $updateSQL .= ', ';
  20. }
  21. $updateSQL .= $name . '=:' . $name;
  22. }
  23. foreach ($CONTENT_FILES as $name) {
  24. $updateSQL .= ', ' . $name . '=:' . $name;
  25. }
  26. $updateSQL .= ' WHERE id=:id';
  27. $dbh = new PDO(TVDB_DBN);
  28. $insert = $dbh->prepare($insertSQL);
  29. $update = $dbh->prepare($updateSQL);
  30. $insertDone = $dbh->prepare('INSERT INTO search_season (id, season, complete) VALUES (:id, :season, :complete)');
  31. $updateDone = $dbh->prepare('UPDATE search_season SET complete=:complete WHERE id=:id AND season=:season');
  32. # Update all series
  33. $all_series = allSeriesSeasons(TV_PATH, false);
  34. foreach ($all_series as $series => $seasons) {
  35. $flags = readFlags($series);
  36. if (!$flags['tvdb-id']) {
  37. echo 'No TVDB ID for: ' . $series . "\n";
  38. continue;
  39. }
  40. if (DEBUG) {
  41. echo 'Updating: ' . $series . ' (' . $flags['tvdb-id'] . ")\n";
  42. }
  43. tvdb_update($flags['tvdb-id']);
  44. $data = array('id' => $flags['tvdb-id']);
  45. foreach ($EXISTS_FILES as $name) {
  46. $data[$name] = $flags[$name] ? 't' : 'f';
  47. }
  48. foreach ($CONTENT_FILES as $name) {
  49. $data[$name] = $flags[$name];
  50. }
  51. if (!$insert->execute($data) && !$update->execute($data)) {
  52. print_r($dbh->errorInfo());
  53. }
  54. $data = array('id' => $flags['tvdb-id']);
  55. foreach ($seasons as $number => $monitored) {
  56. $data['season'] = $number;
  57. $data['complete'] = $monitored ? 'f' : 't';
  58. if (!$insertDone->execute($data) && !$updateDone->execute($data)) {
  59. print_r($dbh->errorInfo());
  60. }
  61. }
  62. }
  63. ?>