· 6 years ago · Aug 10, 2019, 12:56 PM
1<?php
2/*
3* ----------------------------------------------------
4* @author: Doothemes edit by Zoe
5* @author URI: https://bescraper.cf
6* @copyright: (c) 2019 ****. All rights reserved
7* ----------------------------------------------------
8*
9* @since 2.3.1
10*
11*/
12// encrypted content
13$gKey = 'cf8aa6f5abaa4a60986edc90da2fe597'; //Hey there don't change this key or script will not work.
14function encode($pData){
15 global $gKey;
16 $lBase64Encoded_PlainText = base64_encode($pData);
17 $lIV = GenerateIV();
18 $lEncrypted_PlainText = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $gKey, $lBase64Encoded_PlainText, MCRYPT_MODE_CBC, $lIV);
19 $lPayload = $lIV.$lEncrypted_PlainText;
20 $lBase64Encoded_Payload = base64_encode($lPayload);
21 return $lBase64Encoded_Payload;
22}
23
24function GenerateIV(){
25 $lIV = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);
26 while(strlen($lIV) < 16){
27 $lIV .= "\0";
28 }
29 return $lIV;
30}
31// end
32
33class DooPlayer{
34 // Attributes
35 public $postmeta;
36
37 /**
38 * @since 2.2.1
39 * @version 1.0
40 */
41 public function __construct(){
42
43 // Main postmeta
44 $this->postmeta = 'repeatable_fields';
45
46 // Actions
47 add_action('save_post', array($this,'save'));
48 add_action('admin_init', array($this,'add_metabox'), 1);
49
50 // Ajax Actions
51 add_action('wp_ajax_doo_player_ajax', array($this,'ajax'));
52 add_action('wp_ajax_nopriv_doo_player_ajax', array($this,'ajax'));
53 }
54
55
56
57 /**
58 * @since 2.2.1
59 * @version 1.0
60 */
61 public function languages(){
62 return array(
63 __d('---------') => null,
64 __d('Chinese') => 'cn',
65 __d('Denmark') => 'dk',
66 __d('Dutch') => 'nl',
67 __d('English') => 'en',
68 __d('English British') => 'gb',
69 __d('Egypt') => 'egt',
70 __d('French') => 'fr',
71 __d('German') => 'de',
72 __d('Indonesian') => 'id',
73 __d('Hindi') => 'in',
74 __d('Italian') => 'it',
75 __d('Japanese') => 'jp',
76 __d('Korean') => 'kr',
77 __d('Philippines') => 'ph',
78 __d('Portuguese Portugal') => 'pt',
79 __d('Portuguese Brazil') => 'br',
80 __d('Polish') => 'pl',
81 __d('Romanian') => 'td',
82 __d('Scotland') => 'sco',
83 __d('Spanish Spain') => 'es',
84 __d('Spanish Mexico') => 'mx',
85 __d('Spanish Argentina') => 'ar',
86 __d('Spanish Peru') => 'pe',
87 __d('Spanish Chile') => 'cl',
88 __d('Spanish Colombia') => 'co',
89 __d('Sweden') => 'se',
90 __d('Turkish') => 'tr',
91 __d('Rusian') => 'ru',
92 __d('Vietnam') => 'vn'
93 );
94 }
95
96
97
98 /**
99 * @since 2.2.1
100 * @version 1.0
101 */
102 public function type_player(){
103 return array(
104 __d('URL Iframe') => 'iframe',
105 __d('URL Google Drive') => 'gdrive',
106 __d('URL photos.google.com') => 'gphotos',
107 __d('URL facebook.com') => 'facb',
108 __d('URL mp4upload.com') => 'mp4up',
109 __d('URL rapidvideo.com') => 'rapid',
110 __d('URL dropbox.com') => 'dropbox',
111 __d('URL archive.org') => 'archive',
112 __d('URL amazon.com') => 'amazon',
113 __d('URL opendrive.com') => 'opendrive',
114 __d('URL vimeo.com') => 'vimeo',
115 __d('URL yandex.ru') => 'yandex',
116 __d('URL mediafire.com') => 'mediafire',
117 __d('URL sendvid.com') => 'sendvid',
118 __d('URL MP4') => 'mp4',
119 __d('Shortcode or HTML') => 'dtshcode',
120 );
121 }
122
123
124
125 /**
126 * @since 2.2.1
127 * @version 1.0
128 */
129 public function add_metabox(){
130 add_meta_box('repeatable-fields', __d('Video Player'), array($this,'view_metabox'), 'movies', 'normal', 'default');
131 add_meta_box('repeatable-fields', __d('Video Player'), array($this,'view_metabox'), 'episodes', 'normal', 'default');
132 }
133
134
135
136 /**
137 * @since 2.2.1
138 * @version 1.0
139 */
140 public function view_metabox(){
141 global $post;
142 $postmneta = get_post_meta($post->ID, $this->postmeta, true);
143 wp_nonce_field('doo_player_editor_nonce', 'doo_player_editor_nonce');
144 require get_parent_theme_file_path('/inc/parts/player_editor.php');
145 }
146
147
148
149 /**
150 * @since 2.2.1
151 * @version 1.0
152 */
153 public function save($post_id){
154 if(!isset($_POST['doo_player_editor_nonce']) || !wp_verify_nonce($_POST['doo_player_editor_nonce'], 'doo_player_editor_nonce')) return;
155 if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
156 if(!current_user_can('edit_post',$post_id)) return;
157
158 // Meta data
159 $antiguo = get_post_meta($post_id, $this->postmeta, true);
160 $nuevo = array();
161 $options = $this->type_player();
162 $names = doo_isset($_POST,'name');
163 $selects = doo_isset($_POST,'select');
164 $idiomas = doo_isset($_POST,'idioma');
165 $urls = doo_isset($_POST,'url');
166 $count = count($names);
167
168 // Serialized data
169 for($i = 0; $i < $count; $i++){
170 if ($names[$i] != ''):
171 $nuevo[$i]['name'] = stripslashes(strip_tags($names[$i]));
172 if(in_array($selects[$i], $options)) $nuevo[$i]['select'] = $selects[$i];
173 else $nuevo[$i]['select'] = '';
174 if(in_array($idiomas[$i], $idiomas)) $nuevo[$i]['idioma'] = $idiomas[$i];
175 else $nuevo[$i]['idioma'] = '';
176 if($urls[$i] == 'http://') $nuevo[$i]['url'] = '';
177 else $nuevo[$i]['url'] = stripslashes($urls[$i]);
178 endif;
179 }
180 if(!empty($nuevo) && $nuevo != $antiguo) update_post_meta($post_id, $this->postmeta, $nuevo);
181 elseif (empty($nuevo) && $antiguo) delete_post_meta($post_id, $this->postmeta, $antiguo);
182 }
183
184
185
186 /**
187 * @since 2.2.1
188 * @version 1.0
189 */
190 public function ajax(){
191 // POST Data
192 $post_id = doo_isset($_POST,'post');
193 $post_ty = doo_isset($_POST,'type');
194 $play_nm = doo_isset($_POST,'nume');
195 // Verify data
196 if($post_id && $play_nm){
197 // Get post meta
198 switch ($post_ty) {
199 case 'movie':
200 $postmeta = doo_postmeta_movies($post_id);
201 break;
202 case 'tv':
203 $postmeta = doo_postmeta_episodes($post_id);
204 break;
205 }
206 // Compose Player
207 $player = doo_isset($postmeta,'players');
208 $player = maybe_unserialize($player);
209 // compose data
210 $pag = doo_compose_pagelink('jwpage');
211 $url = ($play_nm != 'trailer') ? $this->ajax_isset($player, ($play_nm-1),'url') : false;
212 $typ = ($play_nm == 'trailer') ? 'trailer' : $this->ajax_isset($player, ($play_nm-1),'select');
213 /* player contents for cdn.bescraper.cf embed player
214 * edit by Zoethemes ,Be know that if you used this version all jwplayer well be included 1 popads, if you prefer to remove this ads from jwplayer please contact us to buy the script and hosted in your server at bescraper@gmail.com the price is 30$.
215 */
216 $images = dbmovies_get_rand_image(get_post_meta($post_id,'imagenes', true));
217 $about = cs_get_option('jwabout','DooPlay Theme WordPress');
218 $logo = doo_compose_image_option('jwlogo');
219 $posi = cs_get_option('jwposition','top-right');
220 $plyrcl = cs_get_option('playercolor','#0b7ef4');
221 $auto = doo_is_true('playauto','jwp') ? 'true' : 'false';
222 $ad_block = cs_get_option('jwadblock','off');
223 $var = array();
224 $var['link'] = trim($url);
225 $var['poster'] = trim($images);
226 $var['about'] = trim($about);
227 $var['logo'] = trim($logo);
228 $var['posi'] = trim($posi);
229 $var['autop'] = trim($auto);
230 $var['color'] = trim($plyrcl);
231 $var['ad_block'] = trim($ad_block);
232 $var['type'] = trim($typ);
233
234 $data = encode(json_encode($var));
235 // verify data
236 if($typ){
237 switch($typ) {
238 case 'iframe':
239 $code = "<if"."rame class='metaframe rptss' src='{$url}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
240 break;
241
242 case 'mp4':
243 case 'gdrive':
244 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embed.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
245 break;
246
247 case 'gphotos':
248 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embed.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
249 break;
250
251 case 'facb':
252 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embed.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
253 break;
254
255 case 'mp4up':
256 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embed.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
257 break;
258
259 case 'sendvid':
260 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embed.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
261 break;
262
263 case 'rapid':
264 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embed.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
265 break;
266
267 case 'dropbox':
268 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embed.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
269 break;
270
271 case 'archive':
272 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embed.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
273 break;
274
275 case 'amazon':
276 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embeda.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
277 break;
278
279 case 'opendrive':
280 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embed.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
281 break;
282
283 case 'vimeo':
284 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embed.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
285 break;
286
287 case 'yandex':
288 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embed.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
289 break;
290
291 case 'mediafire':
292 $code = "<if"."rame class='metaframe rptss' src='https://cdn.bescraper.cf/player/embed.php/?source={$data}' frameborder='0' scrolling='no' allow='autoplay; encrypted-media' allowfullscreen></ifr"."ame>";
293 break;
294
295 case 'trailer':
296 $code = doo_trailer_iframe(doo_isset($postmeta,'youtube_id'),1);
297 break;
298
299 case 'dtshcode':
300 $code = do_shortcode($url);
301 break;
302 }
303 // Return Player
304 echo apply_filters('doo_player_ajax',$code,$url,$typ);
305 }
306 }
307 // End Action
308 wp_die();
309 }
310
311
312
313 /**
314 * @since 2.2.1
315 * @version 1.0
316 */
317 public function ajax_isset($data = array(), $n, $k){
318 return (isset($data[$n][$k])) ? $data[$n][$k] : false;
319 }
320
321
322
323 /**
324 * @since 2.2.3
325 * @version 1.0
326 */
327 public static function viewer($post, $type, $players, $trailer, $size, $views, $ads = false, $image = false){
328 if($size == 'regular'){
329 self::fake($image, 'regular');
330 }
331 if($players OR $trailer){
332 $ulclass = (!wp_is_mobile()) ? 'options scrolling' : 'options';
333 $html ="<div class='dooplay_player'>";
334 if($size === 'regular'){
335 $html .="<div id='playcontainer' class='play'>";
336 if(!empty($ads)){
337 $html .="<div class='asgdc'>{$ads}</div>";
338 }
339 $html .="<div id='dooplay_player_response'></div>";
340 $html .="</div>";
341 }
342 $html .="<h2>".__d('Video Sources')." <span id='playernotice' data-text='{$views}'>{$views}</span></h2>";
343 $html .="<div id='playeroptions' class='{$ulclass}'><ul id='playeroptionsul'>";
344 if($trailer != false){
345 $html .="<li id='player-option-trailer' class='dooplay_player_option' data-post='{$post}' data-type='{$type}' data-nume='trailer'>";
346 $html .="<i class='icon-play3'></i>";
347 $html .="<span class='title'>".__d('Watch trailer')."</span>";
348 $html .="<span class='server'>youtube.com</span>";
349 $html .="<span class='flag'><i class='yt icon-youtube2'></i></span>";
350 $html .="<span class='loader'></span></li>";
351 }
352 $num = 1;
353 if(!empty($players) && is_array($players)){
354 foreach($players as $play){
355 $html .="<li id='player-option-{$num}' class='dooplay_player_option' data-type='{$type}' data-post='{$post}' data-nume='{$num}'>";
356 $html .="<i class='icon-play3'></i>";
357 $html .="<span class='title'>{$play['name']}</span>";
358 $html .="<span class='server'>".doo_compose_servername($play['url'], $play['select'])."</span>";
359 if(!empty($play['idioma'])){
360 $html .="<span class='flag'><img src='".DOO_URI."/assets/img/flags/{$play['idioma']}.png'></span>";
361 }
362 $html .="<span class='loader'></span></li>";
363 $num++;
364 }
365 }
366 $html .="</ul></div>";
367 $html .="</div>";
368 echo apply_filters('doo_player_html', $html);
369 }
370 }
371
372
373
374 /**
375 * @since 2.2.3
376 * @version 1.0
377 */
378 public static function viewer_big($size, $ads = false, $image = false){
379 if($size === 'bigger'){
380 self::fake($image, 'bigger');
381 $html ="<div class='dooplay_player'>";
382 $html .="<div id='playcontainer' class='play bigger'>";
383 if(isset($ads)){
384 $html .="<div class='asgdc'>{$ads}</div>";
385 }
386 $html .="<div id='dooplay_player_response'></div>";
387 $html .="</div></div>";
388 echo apply_filters('doo_big_player_html', $html);
389 }
390 }
391
392
393 /**
394 * @since 2.2.3
395 * @version 1.0
396 */
397 private static function fake($image, $class = 'regular'){
398 $autolo = cs_get_option('playautoload');
399 $active = cs_get_option('fakeplayer');
400 $pimage = isset($image) ? $image : cs_get_option('fakebackdrop');
401 $flinks = self::fake_links();
402 if($autolo !== true && $active === true && $flinks !== false){
403 $html ="<div id='fakeplayer' class='fakeplayer {$class}'>";
404 $html .="<a id='clickfakeplayer' rel='nofollow' href='{$flinks}' target='_blank'>";
405 $html .="<div class='playbox'>";
406 if(doo_is_true('fakeoptions','qua')) $html .="<span class='quality'>HD</span>";
407 if(doo_is_true('fakeoptions','pla')) $html .="<span class='playbtm'><img src='".DOO_URI."/assets/img/play.svg'/></span>";
408 if($pimage) $html .="<img class='cover' src='{$pimage}'/>";
409 $html .="<section>";
410 $html .="<div class='progressbar'></div>";
411 $html .="<div class='controls'><div class='box'>";
412 $html .="<i class='icon-play3'></i>";
413 if(doo_is_true('fakeoptions','ads')) $html .="<i class='icon-monetization_on flashit'></i> <small>".__d('Advertisement')."</small>";
414 $html .="<i class='icon-zoom_out_map right'></i>";
415 $html .="<i class='icon-wb_sunny right'></i>";
416 $html .="</div></div></section>";
417 $html .="</div></a></div>";
418 // Compose Fake Player
419 echo apply_filters('doo_fake_player_html', $html);
420 }
421 }
422
423
424
425 /**
426 * @since 2.2.3
427 * @version 1.0
428 */
429 private static function fake_links(){
430 $flinks = cs_get_option('fakeplayerlinks');
431 if(!empty($flinks) && is_array($flinks)){
432 $numb = array_rand($flinks);
433 $link = $flinks[$numb]['link'];
434 return esc_url($link);
435 } else {
436 return false;
437 }
438 }
439
440
441 /**
442 * @since 2.2.1
443 * @version 1.0
444 */
445 public function __destruct(){
446 return false;
447 }
448}
449
450new DooPlayer;