Guest User

Sample Code

a guest
Jan 5th, 2023
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. <?php
  2. defined('BASEPATH') or exit('No direct script access allowed');
  3.  
  4.  
  5. class Api extends Controller
  6. {
  7. public function process()
  8. {
  9. $AuthUser = $this->getVariable("AuthUser");
  10. $Route = $this->getVariable("Route");
  11. $this->{$Route->params->api}();
  12. }
  13.  
  14. public function tmdb() {
  15. $Route = $this->getVariable("Route");
  16. $Settings = $this->getVariable("Settings");
  17. if($Route->params->action == 'auto') {
  18. $Posts = $this->db->from('posts')->where('type','serie')->all();
  19. foreach ($Posts as $Post) {
  20.  
  21. // Guzzle Get
  22. $Client = new \GuzzleHttp\Client();
  23. $Response = $Client->request(
  24. 'GET',
  25. 'https://api.themoviedb.org/3/tv/'.$Post['imdb_id'].'?api_key=' . get($Settings,'data.tmdb_api','api') . '&language='.get($Settings,'data.tmdb_language','api')
  26. );
  27. $Listing = json_decode($Response->getBody() , true);
  28.  
  29. // Season
  30. $iSeason = 1;
  31. foreach ($Listing['seasons'] as $Season) {
  32. if($Season['season_number'] == '0') { continue; }
  33. $CheckSeason = $this->db->from('posts_season')->where('content_id',$Post['id'])->where('name',$Season['season_number'])->first();
  34.  
  35. if(empty($CheckSeason['id'])) {
  36. $dataarray = array(
  37. "content_id" => $Post['id'],
  38. "name" => $Season['season_number']
  39. );
  40. $this->db->insert('posts_season')->set($dataarray);
  41.  
  42. $SeasonId = $this->db->lastId();
  43. } else {
  44. $SeasonId = $CheckSeason['id'];
  45. }
  46.  
  47. $iSeason++;
  48.  
  49. $SeasonNumber = Input::cleaner(filter_var(trim($Season['season_number']), FILTER_SANITIZE_NUMBER_INT));
  50.  
  51. // Episode
  52. $Episodes = $Client->request(
  53. 'GET',
  54. 'https://api.themoviedb.org/3/tv/' . $Post['imdb_id'] . '/season/'.$Season['season_number'].'?api_key=' . get($Settings,'data.tmdb_api','api') . '&language='.get($Settings,'data.tmdb_language','api')
  55. );
  56. $Episodes = json_decode($Episodes->getBody() , true);
  57. foreach ($Episodes['episodes'] as $Episode) {
  58. $CheckEpisode = $this->db->from('posts_episode')->where('content_id',$Post['id'])->where('season_id',$SeasonId)->where('name',Input::cleaner($Episode['episode_number']))->first();
  59. if(empty($CheckEpisode)) {
  60.  
  61.  
  62. $Image = 'https://image.tmdb.org/t/p/original/'.$Episode['still_path'];
  63.  
  64. $Data = array(
  65. 'name' => Input::cleaner($Episode['episode_number']),
  66. 'self' => Input::seo($Episode['episode_number']),
  67. 'description' => Input::cleaner($Episode['name']),
  68. 'season_id' => $SeasonId,
  69. 'content_id' => $Post['id'],
  70. 'release_date' => $Episode['air_date'],
  71. 'image' => $Image,
  72. 'status' => 1,
  73. 'created' => date('Y-m-d H:i:s')
  74. );
  75. $this->db->insert('posts_episode')->set($Data);
  76.  
  77. $EpisodeId = $this->db->lastId();
  78. }
  79. }
  80. }
  81. }
  82. }
  83. }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment