Advertisement
Guest User

Untitled

a guest
Oct 18th, 2020
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.28 KB | None | 0 0
  1. <?php
  2. /**
  3. *
  4. * @ This file is created by http://DeZender.Net
  5. * @ deZender (PHP7 Decoder for ionCube Encoder)
  6. *
  7. * @ Version : 4.1.0.1
  8. * @ Author : DeZender
  9. * @ Release on : 29.08.2020
  10. * @ Official site : http://DeZender.Net
  11. *
  12. */
  13.  
  14. class HaLimCore_Scraper extends HaLimCore_Init
  15. {
  16. const TMDB_API_KEY = '6b4357c41d9c606e4d7ebe2f4a8850ea';
  17. const TMDB_API_URI = 'https://api.themoviedb.org/3';
  18.  
  19. public function __construct()
  20. {
  21. add_action('admin_menu', [$this, 'halim_scraper_admin_menu']);
  22. add_action('wp_ajax_halim_tmdb_search_ajax', [$this, 'halim_tmdb_search_ajax_callback']);
  23. add_action('wp_ajax_halim_get_trending_data', [$this, 'ajaxGetTrending_callback']);
  24. add_action('wp_ajax_halim_ajax_discover', [$this, 'halim_ajax_discover_callback']);
  25. add_action('admin_enqueue_scripts', [$this, 'halim_scraper_enqueue_scripts'], 10, 1);
  26. add_action('wp_ajax_halim_data_crawler', [$this, 'halim_data_ajax_crawler']);
  27. }
  28.  
  29. public function halim_scraper_enqueue_scripts($hook)
  30. {
  31. if ($hook == 'tools_page_halim-data-scraper') {
  32. wp_enqueue_style('scraper', HALIM_THEME_URI . '/assets/css/scraper.css', '', time());
  33. wp_enqueue_script('scraper', HALIM_THEME_URI . '/assets/js/scraper.js', [], time(), true);
  34. wp_localize_script('scraper', 'halim_scraper', ['ajax_url' => admin_url('admin-ajax.php'), 'lazysizes' => HALIM_THEME_URI . '/assets/js/lazysizes.min.js']);
  35. }
  36. }
  37.  
  38. public function halim_scraper_admin_menu()
  39. {
  40. add_management_page('HaLim Data Scraper', 'HaLim Data Scraper', 'manage_options', 'halim-data-scraper', [$this, 'halim_scraper_options_page']);
  41. }
  42.  
  43. public function halim_scraper_options_page()
  44. {
  45. echo "\t\t" . '<div class="halim-wrap" style="margin-top: 50px;">' . "\r\n\r\n\t\t\t" . '<h1 style="color: red;">Coming soon...</h1>' . "\r\n\r\n\t\t\t" . '<h2>Fetch data</h2>' . "\r\n\r\n\t\t\t" . '<p>' . "\r\n\t\t\t\t" . '<a href="?page=halim-data-scraper">Search</a> | <a href="?page=halim-data-scraper&act=trending">Trending</a> | <a href="?page=halim-data-scraper&act=discover">Discover</a>' . "\r\n\t\t\t" . '</p>' . "\r\n\r\n\t\t\t";
  46. if (isset($_GET['act']) && ($_GET['act'] == 'trending')) {
  47. echo "\t\t\t" . '<p class="trending">' . "\r\n\t\t\t\t" . '<form action="" id="trending-form">' . "\r\n\t\t\t\t\t" . '<select name="trending_type" form="trending-form">' . "\r\n\t\t\t\t\t" . ' ' . "\t" . '<option value="all">All</option>' . "\r\n\t\t\t\t\t" . ' ' . "\t" . '<option value="movie">Movie</option>' . "\r\n\t\t\t\t\t" . ' ' . "\t" . '<option value="tv">TV</option>' . "\r\n\t\t\t\t\t" . '</select>' . "\r\n\t\t\t\t\t" . '<select name="time_window" form="trending-form">' . "\r\n\t\t\t\t\t" . ' ' . "\t" . '<option value="day">Day</option>' . "\r\n\t\t\t\t\t" . ' ' . "\t" . '<option value="week">Week</option>' . "\r\n\t\t\t\t\t" . '</select>' . "\r\n\t\t\t\t\t" . '<input type="button" id="get-trending-data" value="Get Trending" class="button">' . "\r\n\t\t\t\t" . '</form>' . "\r\n\t\t\t" . '</p>' . "\r\n\t\t\t";
  48. }
  49. else if (isset($_GET['act']) && ($_GET['act'] == 'discover')) {
  50. echo "\t\t\t" . '<p class="discover">' . "\r\n\t\t\t\t" . '<form action="" id="discover-form">' . "\r\n\t\t\t\t\t" . '<select name="sort_by" form="discover-form">' . "\r\n\t\t\t\t\t" . ' <option value="popularity.asc">popularity.asc</option>' . "\r\n\t\t\t\t\t" . ' <option value="popularity.desc">popularity.desc</option>' . "\r\n\t\t\t\t\t" . ' <option value="release_date.asc">release_date.asc</option>' . "\r\n\t\t\t\t\t" . ' <option value="release_date.desc">release_date.desc</option>' . "\r\n\t\t\t\t\t" . ' <option value="revenue.asc">revenue.asc</option>' . "\r\n\t\t\t\t\t" . ' <option value="revenue.desc">revenue.desc</option>' . "\r\n\t\t\t\t\t" . ' <option value="primary_release_date.asc">primary_release_date.asc</option>' . "\r\n\t\t\t\t\t" . ' <option value="primary_release_date.desc">primary_release_date.desc</option>' . "\r\n\t\t\t\t\t" . ' <option value="original_title.asc">original_title.asc</option>' . "\r\n\t\t\t\t\t" . ' <option value="original_title.desc">original_title.desc</option>' . "\r\n\t\t\t\t\t" . ' <option value="vote_average.asc">vote_average.asc</option>' . "\r\n\t\t\t\t\t" . ' <option value="vote_average.desc">vote_average.desc</option>' . "\r\n\t\t\t\t\t" . ' <option value="vote_count.asc">vote_count.asc</option>' . "\r\n\t\t\t\t\t" . ' <option value="vote_count.desc">vote_count.desc</option>' . "\r\n\t\t\t\t\t" . '</select>' . "\r\n\t\t\t\t\t" . '<select name="discover_type" form="discover-form">' . "\r\n\t\t\t\t\t" . ' <option value="movie">Movies</option>' . "\r\n\t\t\t\t\t" . ' <option value="tv">TV Series</option>' . "\r\n\t\t\t\t\t" . '</select>' . "\r\n\t\t\t\t\t" . '<input type="text" name="language" placeholder="Language" value="en-US" />' . "\r\n\t\t\t\t\t" . '<input type="number" name="release_year" placeholder="Release year" value="';
  51. echo date('Y');
  52. echo '" />' . "\r\n\t\t\t\t\t" . '<input type="button" id="get-discover-data" value="Search" class="button">' . "\r\n\r\n\t\t\t\t" . '</form>' . "\r\n\t\t\t" . '</p>' . "\r\n\t\t\t";
  53. }
  54. else {
  55. echo "\t\t\t" . '<p>' . "\r\n\t\t\t\t" . '<input type="radio" name="site" value="tmdb" id="tmdb" checked><label for="tmdb">TMDB</label>' . "\r\n\t\t\t\t" . '<input type="radio" name="site" value="imdb" id="imdb"><label for="imdb">IMDB</label>' . "\r\n\t\t\t" . '</p>' . "\r\n\t\t\t" . '<input type="text" name="s" id="s" class="regular-text" placeholder="Keyword" autocomplete="off" required/><label for="s" class="hidden" id="loading">Loading...</label>' . "\r\n\t\t\t" . '<span class="txt">Press enter key to search</span>' . "\r\n\t\t\t" . '<p class="media_type">' . "\r\n\t\t\t\t" . '<input type="radio" name="media_type" value="multi" id="multi" checked><label for="multi">Multi search</label>' . "\r\n\t\t\t\t" . '<input type="radio" name="media_type" value="movie" id="movie"><label for="movie">Movies</label>' . "\r\n\t\t\t\t" . '<input type="radio" name="media_type" value="tv" id="tv"><label for="tv">TV Series</label>' . "\r\n\t\t\t" . '</p>' . "\r\n\t\t\t";
  56. }
  57.  
  58. echo "\t\t\t" . '<p>' . "\r\n\t\t\t\t" . '<input type="checkbox" name="save_poster" value="1" id="save_poster"><label for="save_poster">Save the poster image</label>' . "\r\n\t\t\t\t" . '<input type="checkbox" name="is_adult" value="true" id="is_adult"><label for="is_adult">Include adult content</label>' . "\r\n\t\t\t" . '</p>' . "\r\n\t\t\t" . '<ul id="results" class="lists list-movies" style="margin-top: 10px;"></ul>' . "\r\n\r\n\t\t\t" . '<p>' . "\r\n\t\t\t\t" . '<input type="checkbox" name="create_category" value="1" id="create_category"><label for="create_category">Auto create category</label>' . "\r\n\t\t\t" . '</p>' . "\r\n\t\t\t" . '<p>' . "\r\n\t\t\t\t" . '<div id="list-cat" style="display: block;overflow-x: hidden;height: 300px;width: 300px;border: 1px solid #ccc;padding: 15px;">' . "\r\n\t\t\t\t\t";
  59. $obf_DSw2MRMbMDsdC1w9JR4JhYrFxobHhE = get_terms('category', ['taxonomy' => 'category']);
  60.  
  61. foreach ($obf_DSw2MRMbMDsdC1w9JR4JhYrFxobHhE as $term) {
  62. echo '<div class=\'cat\'><input id=\'' . $term->slug . '\' type=\'checkbox\' name=\'category\' value=\'' . $term->term_id . '\'/>';
  63. echo '<label for=\'' . $term->slug . '\'>' . $term->name . '</label></div>';
  64. }
  65.  
  66. echo "\t\t\t\t" . '</div>' . "\r\n\t\t\t" . '</p>' . "\r\n\t\t\t" . '<p style="display: none;">' . "\r\n\t\t\t\t" . '<input type="button" onClick="javascript:CrawlData();" class="button-primary" value="Crawl Data" />' . "\r\n\t\t\t" . '</p>' . "\r\n\t\t" . '</div>' . "\r\n\t\t";
  67. }
  68.  
  69. public function halim_tmdb_search_ajax_callback()
  70. {
  71. $obf_DQwlFzcECjUMAgMJgM8JRA7KD47KjI = (isset($_POST['media_type']) ? $_POST['media_type'] : '');
  72. $query = (isset($_POST['query']) ? $_POST['query'] : '');
  73. $obf_DT0eCAUQXBkcJSgDLBshBScBQgWLyI = (isset($_POST['page']) && $_POST['page'] ? $_POST['page'] : 1);
  74. $obf_DS0eLAkvAzgKBRlcLzw4GDghKSZcCiI = (isset($_POST['is_adult']) ? $_POST['is_adult'] : false);
  75.  
  76. if (empty($query)) {
  77. wp_die('Keyword can\'t be empty!');
  78. }
  79.  
  80. $data = HALIMHelper::cURL('https://api.themoviedb.org/3/search/' . $obf_DQwlFzcECjUMAgMJgM8JRA7KD47KjI . '?api_key=' . '6b4357c41d9c606e4d7ebe2f4a8850ea' . '&language=en-US&query=' . urlencode($query) . '&page=' . $obf_DT0eCAUQXBkcJSgDLBshBScBQgWLyI . '&include_adult=' . $obf_DS0eLAkvAzgKBRlcLzw4GDghKSZcCiI);
  81. $data = json_decode($data);
  82.  
  83. if (!$obf_DT0eCAUQXBkcJSgDLBshBScBQgWLyI) {
  84. echo '<span>Total results: ' . $data->total_results . ' / Total pages: ' . $data->total_pages . ' (Click on the title to edit before insert in to database)</span>';
  85. }
  86.  
  87. if ($data->results) {
  88. echo '<p><input type="checkbox" id="checkAll"><label for="checkAll">Check/Uncheck All</label></p>';
  89.  
  90. foreach ($data->results as $key => $val) {
  91. if ($val->poster_path !== NULL) {
  92. $title = $original_name = '';
  93.  
  94. if ($obf_DQwlFzcECjUMAgMJgM8JRA7KD47KjI == 'multi') {
  95. $title = (isset($val->media_type) && ($val->media_type == 'tv') ? $val->name : $val->title);
  96. $original_name = (isset($val->media_type) && ($val->media_type == 'tv') ? $val->original_name : $val->original_title);
  97. }
  98. else if ($obf_DQwlFzcECjUMAgMJgM8JRA7KD47KjI == 'tv') {
  99. $title = $val->name;
  100. $title = $val->original_name;
  101. }
  102. else {
  103. $title = $val->title;
  104. $original_name = $val->original_title;
  105. }
  106.  
  107. $obf_DRc1KBAvHywLGhIpGCgMCVw0XBEvOTI = $val->genre_ids;
  108. $arr_data = json_encode($this->arr_data($val, $title, $original_name, $obf_DQwlFzcECjUMAgMJgM8JRA7KD47KjI, $obf_DRc1KBAvHywLGhIpGCgMCVw0XBEvOTI));
  109. $this->halim_tmdb_item_loop($val, $original_name, $title, $obf_DRc1KBAvHywLGhIpGCgMCVw0XBEvOTI, $obf_DQwlFzcECjUMAgMJgM8JRA7KD47KjI, $arr_data);
  110. }
  111. }
  112.  
  113. $page = new Pagination(['total' => $data->total_pages, 'limit' => 7, 'link' => 8, 'page' => $obf_DT0eCAUQXBkcJSgDLBshBScBQgWLyI, 'type' => 'search']);
  114. echo $page->getAjaxPage();
  115. }
  116.  
  117. wp_die();
  118. }
  119.  
  120. private function get_actor_by_tv_id($id)
  121. {
  122. }
  123.  
  124. public function ajaxGetTrending_callback()
  125. {
  126. $values = (isset($_POST['values']) ? $_POST['values'] : '');
  127. $obf_DQwlFzcECjUMAgMJgM8JRA7KD47KjI = $values[0];
  128. $obf_DRcbASxbQD0UPzwLLTsxCAQxMQgFGjI = $values[1];
  129. .............................................................................................
  130. ..............................................
  131. ..........................
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement