function secure_html5_video_player_get_media_server_address($client_ip, $video_filename)
 {
     $has_media_server = secure_html5_video_player_has_media_server();
     if ($has_media_server) {
         $server_list = secure_html5_video_player_media_server_address_list();
         $chksum = crc32($client_ip);
         if ($chksum < 0) {
             $chksum = -1 * $chksum;
         }
         if ($video_filename) {
             $server_filelist = secure_html5_video_player_filelist(true);
             $server_list_with_file = $server_filelist[$video_filename];
             if (!empty($server_list_with_file)) {
                 $server_list = $server_list_with_file;
             }
         }
         $num_servers = count($server_list);
         $selected_server = $chksum % $num_servers;
         if ($selected_server < $num_servers && isset($server_list[$selected_server]) && $server_list[$selected_server]) {
             return $server_list[$selected_server];
         }
     }
     $plugin_url = plugins_url('secure-html5-video-player');
     return $plugin_url;
 }
Example #2
0
 function secure_html5_video_player_filelist($does_include_media_server_files)
 {
     $transient_key = 'sh5vp:filelist_0';
     if ($does_include_media_server_files) {
         $transient_key = 'sh5vp:filelist_1';
     }
     $video_files = secure_html5_video_player_get_transient($transient_key);
     if ($video_files !== FALSE) {
         return $video_files;
     }
     $video_files = array();
     $secure_html5_video_player_video_dir = get_option('secure_html5_video_player_video_dir');
     if (is_dir($secure_html5_video_player_video_dir)) {
         $dh = opendir($secure_html5_video_player_video_dir);
         while (FALSE !== ($filename = readdir($dh))) {
             if (secure_html5_video_player_startsWith($filename, '.')) {
                 continue;
             }
             $curr_path = $secure_html5_video_player_video_dir . '/' . $filename;
             if (is_dir($curr_path)) {
                 $video_files = array_merge($video_files, secure_html5_video_player_sub_file_list($secure_html5_video_player_video_dir, $filename));
                 continue;
             }
             $video_files[secure_html5_video_player_filename_no_ext($filename)] = array();
         }
     }
     if (secure_html5_video_player_is_s3_enabled()) {
         $s3_file_list = secure_html5_video_player_s3_file_list();
         foreach ($s3_file_list as $curr_file => $curr_val) {
             $curr_file_val = trim($curr_file);
             if (!$curr_file_val) {
                 continue;
             }
             if (isset($video_files[$curr_file_val])) {
                 array_push($video_files[$curr_file_val], 's3');
             } else {
                 $video_files[$curr_file_val] = array('s3');
             }
         }
     }
     $has_media_server = secure_html5_video_player_has_media_server();
     if ($does_include_media_server_files && $has_media_server) {
         $server_list = secure_html5_video_player_media_server_address_list();
         foreach ($server_list as $media_server_address) {
             $access_key = secure_html5_video_player_accessKey('');
             $server_files = file_get_contents($media_server_address . '/getinfo.php?k=' . $access_key . '&info=list');
             $server_file_list = explode("\n", $server_files);
             foreach ($server_file_list as $curr_file) {
                 $curr_file_val = trim($curr_file);
                 if (!$curr_file_val) {
                     continue;
                 }
                 if (isset($video_files[$curr_file_val])) {
                     array_push($video_files[$curr_file_val], $media_server_address);
                 } else {
                     $video_files[$curr_file_val] = array($media_server_address);
                 }
             }
         }
     }
     ksort($video_files);
     secure_html5_video_player_set_transient($transient_key, $video_files);
     return $video_files;
 }