tvdb.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #!/usr/local/bin/php
  2. <?php
  3. require_once('includes/main.php');
  4. require_once('includes/tvdb/init.php');
  5. # TEST
  6. if (!update(275557)) {
  7. return -1;
  8. }
  9. return 0;
  10. # END TEST
  11. function update($id) {
  12. return (updateSeries($id) && updateEpisodes($id));
  13. }
  14. function updateEpisodes($id) {
  15. # Fetch
  16. $tvdb = new Moinax\TvDb\Client(TVDB_URL, TVDB_API_KEY);
  17. $episodes = $tvdb->getSerieEpisodes($id);
  18. # DB init
  19. $dbh = new PDO(TVDB_DBN);
  20. $insert = $dbh->prepare(
  21. 'INSERT INTO episodes ("id", "season", "episode", "airdate", "name", "desc", "modified") ' .
  22. 'VALUES (:id, :season, :number, :airdate, :name, :desc, now())'
  23. );
  24. $update = $dbh->prepare(
  25. 'UPDATE episodes SET ' .
  26. 'airdate=:airdate, name=:name, "desc"=:desc, modified=now() ' .
  27. 'WHERE id=:id and season=:season and episode=:number'
  28. );
  29. # Update
  30. $error = 0;
  31. foreach ($episodes['episodes'] as $episode) {
  32. $data = array(
  33. 'id' => $id,
  34. 'season' => $episode->season,
  35. 'number' => $episode->number,
  36. 'airdate' => $episode->firstAired->format('c'),
  37. 'name' => $episode->name,
  38. 'desc' => $episode->overview
  39. );
  40. if (!insertOrUpdate($insert, $update, $data)){
  41. $err++;
  42. }
  43. }
  44. return ($err == 0);
  45. }
  46. function updateSeries($id) {
  47. # Fetch series and episodes
  48. $tvdb = new Moinax\TvDb\Client(TVDB_URL, TVDB_API_KEY);
  49. $series = $tvdb->getSerie($id);
  50. # DB init
  51. $dbh = new PDO(TVDB_DBN);
  52. $insert = $dbh->prepare(
  53. 'INSERT INTO series ("id", "name", "desc", "year", "modified") ' .
  54. 'VALUES (:id, :name, :desc, :year, now())'
  55. );
  56. $update = $dbh->prepare(
  57. 'UPDATE series SET ' .
  58. 'name=:name, "desc"=:desc, year=:year, modified=now()' .
  59. 'WHERE id=:id'
  60. );
  61. # Update
  62. $data = array(
  63. 'id' => $id,
  64. 'name' => $series->name,
  65. 'desc' => $series->overview,
  66. 'year' => $series->firstAired->format('Y')
  67. );
  68. return insertOrUpdate($insert, $update, $data);
  69. }
  70. function insertOrUpdate($insert, $update, $data) {
  71. if (!$insert->execute($data) && !$update->execute($data)) {
  72. if (DEBUG) {
  73. print_r($dbh->errorInfo());
  74. }
  75. return false;
  76. }
  77. return true;
  78. }
  79. ?>