\r\n\r\n404 Not Found\r\n". "\r\n

Not Found

\r\n

The requested URL " . $_SERVER['SCRIPT_NAME'] . " was not found on ". "this server.

\r\n"); } // Function called to retrieve id for when title given, starts function vdo_retrieve_id($title) { $client_key = get_option('vdo_client_key'); if ($client_key == false || $client_key == "") { return "Plugin not configured. Please set the API key to embed videos."; } $url = "https://dev.vdocipher.com/api/videos?q=$title"; $headers = array( 'Authorization'=>'Apisecret '.$client_key, 'Content-Type'=>'application/json', 'Accept'=>'application/json' ); $response = wp_remote_post($url, array( 'method' => 'GET', 'headers' => $headers )); if (is_wp_error($response)) { $error_message = $response->get_error_message(); echo "VdoCipher: Something went wrong: $error_message"; return ""; } $video_json_response = $response['body']; $video_list_object = json_decode($video_json_response); $video_list = $video_list_object->rows; $video_object = $video_list[0]; $video_id = $video_object->id; return $video_id; } // Function called to retrieve id for when title given, ends // Function called to get OTP, starts function vdo_otp($video, $otp_post_array = array()) { $client_key = get_option('vdo_client_key'); if ($client_key == false || $client_key == "") { return "Plugin not configured. Please set the API key to embed videos."; } $url = "https://dev.vdocipher.com/api/videos/$video/otp"; $headers = array( 'Authorization'=>'Apisecret '.$client_key, 'Content-Type'=>'application/json', 'Accept'=>'application/json' ); $otp_post_json = json_encode($otp_post_array); $response = wp_remote_post($url, array( 'method' => 'POST', 'headers' => $headers, 'body' => $otp_post_json )); if (is_wp_error($response)) { $error_message = $response->get_error_message(); echo "VdoCipher: Something went wrong: $error_message"; return ""; } $OTP_Response = $response['body']; return json_decode($OTP_Response); } // Function called to get OTP, ends // VdoCipher Shortcode starts function vdo_shortcode($atts) { extract(shortcode_atts( array( 'title' => 'TITLE_OF_VIDEO', 'width' => get_option('vdo_default_width') . "px", 'height' => get_option('vdo_default_height') . "px", 'id' => 'id', 'no_annotate'=> false, 'version'=> 0, 'vdo_theme'=> false, 'player_tech'=> '' ), $atts )); if ((get_option('vdo_default_height')) == 'auto') { $height = 'auto'; } if (!$atts['id']) { if (!$atts['title']) { return "Required argument id for embedded video not found."; } else { $video = vdo_retrieve_id($title); if ($video == null) { return "404. Video not found."; } } } else { $video = $id; } // Initialize $otp_post_array, to be sent as part of OTP request, as for time-to-live 300 $otp_post_array = array("ttl" => 300); if (!function_exists("eval_date")) { function eval_date($matches) { return current_time($matches[1]); } } if (get_option('vdo_annotate_code') != "") { $current_user = wp_get_current_user(); $vdo_annotate_code = get_option('vdo_annotate_code'); if (is_user_logged_in()) { $vdo_annotate_code = str_replace('{name}', $current_user->display_name, $vdo_annotate_code); $vdo_annotate_code = str_replace('{email}', $current_user->user_email, $vdo_annotate_code); $vdo_annotate_code = str_replace('{username}', $current_user->user_login, $vdo_annotate_code); $vdo_annotate_code = str_replace('{id}', $current_user->ID, $vdo_annotate_code); } $vdo_annotate_code = str_replace('{ip}', $_SERVER['REMOTE_ADDR'], $vdo_annotate_code); $vdo_annotate_code = preg_replace_callback('/\{date\.([^\}]+)\}/', "eval_date", $vdo_annotate_code); // Add annotate code to $otp_post_array, which will be converted to Json and then sent as POST body to API endpoint if (!$no_annotate) { $otp_post_array["annotate"] = $vdo_annotate_code; } } // OTP is requested via vdo_otp function $OTP_Response = vdo_otp($video, $otp_post_array); $OTP = $OTP_Response->otp; $playbackInfo = $OTP_Response->playbackInfo; if (is_null($OTP)) { $output = "

Video not found

"; return $output; } // Version, legacy, for flash only $version = 0; if (isset($atts['version'])) { $version = $atts['version']; } // Video Embed version is updated if ((get_option('vdo_embed_version')) == false) { update_option('vdo_embed_version', '1.6.4'); } $vdo_embed_version_str = get_option('vdo_embed_version'); // Video Player theme, update and as shortcode attribute if ((get_option('vdo_player_theme')) == false) { update_option('vdo_player_theme', '9ae8bbe8dd964ddc9bdb932cca1cb59a'); } if(!$vdo_theme){ $vdo_player_theme = get_option('vdo_player_theme'); } else { $vdo_player_theme = $vdo_theme; } // tech override custom names switch ($player_tech) { case "flash": $player_tech = "*,-dash"; break; case "nohtml5": $player_tech = "*,-dash"; break; case "noflash": $player_tech = "*,-hss"; break; case "nozen": $player_tech = "*,-zen"; break; case "noios": $player_tech = "*,-hlse"; break; default: break; } // Old Embed Code if ($vdo_embed_version_str === '0.5') { $output = "
"; $output .= ""; } else { //New embed code if ($player_tech === '') { if (get_option('vdo_watermark_flash_html') === 'flash') { $player_tech = "*,-dash"; } } $output .= "
"; $output .= ""; } return $output; } add_shortcode('vdo', 'vdo_shortcode'); // VdoCipher Shortcode ends // adding the Settings link, starts $plugin = plugin_basename(__FILE__); add_filter("plugin_action_links_$plugin", 'vdo_settings_link'); function vdo_settings_link($links) { $settings_link = 'Settings'; array_unshift($links, $settings_link); return $links; } // adding the Settings link, ends // add the menu item and register settings (3 functions), starts if (is_admin()) { // admin actions add_action('admin_init', 'register_vdo_settings'); add_action('admin_menu', 'vdo_menu'); } else { // non-admin enqueues, actions, and filters } function vdo_menu() { add_menu_page( 'VdoCipher Options', 'VdoCipher', 'manage_options', 'vdocipher', 'vdo_options', plugin_dir_url(__FILE__).'images/logo.png' ); add_submenu_page( null, 'Video Player Themes', 'CustomPlayer', 'manage_options', 'themesvdo', 'themesvdo' ); } function themesvdo() { include('include/player_themes.php'); } function vdo_options() { if (!get_option('vdo_default_height')) { update_option('vdo_default_height', 'auto'); } if (!get_option('vdo_default_width')) { update_option('vdo_default_width', '1280'); } $vdo_client_key = get_option('vdo_client_key'); if (!$vdo_client_key && strlen($vdo_client_key) != 64) { vdo_show_form_client_key(); return ""; } if (!current_user_can('manage_options')) { wp_die(__('You do not have sufficient permissions to access this page.')); } include('include/options.php'); } function register_vdo_settings() { // whitelist options register_setting('vdo_option-group', 'vdo_client_key'); register_setting('vdo_option-group', 'vdo_default_height'); register_setting('vdo_option-group', 'vdo_default_width'); register_setting('vdo_option-group', 'vdo_annotate_code'); register_setting('vdo_option-group', 'vdo_embed_version'); register_setting('vdo_option-group', 'vdo_player_theme'); register_setting('vdo_option-group', 'vdo_watermark_flash_html'); register_setting('vdo_custom_theme', 'vdo_player_theme_options'); } // add the menu item and register settings (3 functions), ends // section for client key for new users function vdo_show_form_client_key() { include('include/setting_form.php'); } // Activation Hook starts function vdo_activate() { if ((get_option('vdo_default_height')) == false) { update_option('vdo_default_height', 'auto'); } if ((get_option('vdo_default_width')) == false) { update_option('vdo_default_width', '1280'); } //https://stackoverflow.com/a/2173318/5022684 if ((get_option('vdo_embed_version')) == false) { update_option('vdo_embed_version', '1.6.4'); } if ((get_option('vdo_player_theme')) == false) { update_option('vdo_player_theme', '9ae8bbe8dd964ddc9bdb932cca1cb59a'); } if ((get_option('vdo_watermark_flash_html')) == false) { update_option('vdo_watermark_flash_html', 'html5'); } } register_activation_hook(__FILE__, 'vdo_activate'); // Deactivation Hook starts function vdo_deactivate() { delete_option('vdo_client_key'); delete_option('vdo_default_width'); delete_option('vdo_default_height'); delete_option('vdo_annotate_code'); delete_option('vdo_embed_version'); delete_option('vdo_player_theme'); delete_option('vdo_watermark_flash_html'); delete_option('vdo_player_theme_options'); } register_deactivation_hook(__FILE__, 'vdo_deactivate'); // Admin notice to configure plugin for new installs, starts function vdo_admin_notice() { if ((!get_option('vdo_client_key') || strlen(get_option('vdo_client_key')) != 64) && basename($_SERVER['PHP_SELF']) == "plugins.php" ) { ?>

The VdoCipher plugin is not ready. Click here to configure