PluginProbe
VdoCipher: Secure Video Player and Hosting / 1.4
VdoCipher: Secure Video Player and Hosting v1.4
trunk 1.10 1.11 1.12 1.13 1.14 1.15 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.3 1.30 1.4 1.5 1.6 All 28 releases
vdocipher / vdocipher.php

vdocipher.php in VdoCipher: Secure Video Player and Hosting 1.4, at vdocipher.php

191 lines 6.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: VdoCipher
4 * Plugin URI: http://www.vdocipher.com
5 * Description: Secured video hosting for wordpress
6 * Version: 1.4
7 * Author: VdoCipher
8 * Author URI: http://www.vdocipher.com
9 * License: GPL2
10 */
11
12
13 if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) {
14 header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
15 exit("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\r\n<html><head>\r\n<title>404 Not Found</title>\r\n</head><body>\r\n<h1>Not Found</h1>\r\n<p>The requested URL " . $_SERVER['SCRIPT_NAME'] . " was not found on this server.</p>\r\n</body></html>");
16 }
17
18 function vdo_send($action, $params, $posts = false){
19 $client_key = get_option('vdo_client_key');
20 if ($client_key == false || $client_key == "") {
21 return "Plugin not configured. Please set the key to embed videos.";
22 }
23 $curl = curl_init();
24 curl_setopt($curl, CURLOPT_FAILONERROR, true);
25 curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
26 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
27 curl_setopt($curl, CURLOPT_VERBOSE, true);
28 curl_setopt($curl, CURLOPT_FAILONERROR, false);
29 //curl_setopt($curl, CURLOPT_PROXY, "xxxxxxxxxxxxxxxxx:xxxx");
30
31 $getData = http_build_query($params);
32 curl_setopt($curl, CURLOPT_POST, true);
33 $postData = "clientSecretKey=$client_key";
34 if ($posts) {
35 $postData .= "&". $posts;
36 }
37 curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
38 $url = "http://api.vdocipher.com/v2/$action/?$getData";
39 curl_setopt($curl, CURLOPT_URL,$url);
40 $html = curl_exec($curl);
41 if (!$html) {
42 echo curl_error($curl);
43 }
44 curl_close($curl);
45 return $html;
46 }
47 function vdo_shortcode( $atts ) {
48 extract( shortcode_atts(
49 array(
50 'title' => 'TITLE_OF_VIDEO',
51 'width' => get_option('vdo_default_width'),
52 'height' => get_option('vdo_default_height'),
53 'id' => 'id',
54 'no_annotate'=> false
55 ), $atts )
56 );
57 if(!$atts['id']){
58 if(!$atts['title'])
59 return "Required argument id for embedded video not found.";
60 $params = array(
61 'search'=>array(
62 'title'=>$title
63 ),
64 'page'=>1,
65 'limit'=>30,
66 'type'=>'json'
67 );
68 $video = vdo_send("videos", $params);
69 $video = json_decode($video);
70 if($video == null)
71 return "404. Video not found.";
72 $video = $video[0]->id;
73 if ($video == null) {
74 return "No video with given title found.";
75 }
76 }
77 else
78 $video = $id;
79
80 $params = array(
81 'video'=>$video
82 );
83 $anno = false;
84 if (!function_exists("eval_date")) {
85 function eval_date($matches){
86 return date($matches[1]);
87 }
88 }
89 if (get_option('vdo_annotate_code') != "") {
90 $current_user = wp_get_current_user();
91 $vdo_annotate_code = get_option('vdo_annotate_code');
92 if (is_user_logged_in()) {
93 $vdo_annotate_code = str_replace('{name}', $current_user->display_name , $vdo_annotate_code);
94 $vdo_annotate_code = str_replace('{email}', $current_user->user_email , $vdo_annotate_code);
95 $vdo_annotate_code = str_replace('{username}', $current_user->user_login , $vdo_annotate_code);
96 $vdo_annotate_code = str_replace('{id}', $current_user->ID , $vdo_annotate_code);
97 }
98 $vdo_annotate_code = str_replace('{ip}', $_SERVER['REMOTE_ADDR'] , $vdo_annotate_code);
99 $vdo_annotate_code = preg_replace_callback('/\{date\.([^\}]+)\}/', "eval_date" , $vdo_annotate_code);
100 if(!$no_annotate)
101 $anno = "annotate=". urlencode($vdo_annotate_code);
102 }
103 $OTP = vdo_send("otp", $params, $anno);
104 $OTP = json_decode($OTP);
105 if(is_null($OTP)){
106 $output = "<span id='vdo$OTP' style='background:#555555;color:#FFFFFF'><h4>Video not found</h4></span>";
107 return $output;
108 }
109 $OTP = $OTP->otp;
110
111 $output = "<span id='vdo$OTP'></span>";
112 $output .= "<script src='https://de122v0opjemw.cloudfront.net/utils/playerInit.php?otp=$OTP&height=$height&width=$width&'></script>";
113 return $output;
114 }
115
116 add_shortcode( 'vdo', 'vdo_shortcode' );
117
118
119 /// adding the settings link
120 $plugin = plugin_basename(__FILE__);
121 add_filter("plugin_action_links_$plugin", 'vdo_settings_link' );
122
123 function vdo_settings_link($links) {
124 $settings_link = '<a href="options-general.php?page=vdocipher.php">Settings</a>';
125 array_unshift($links, $settings_link);
126 return $links;
127 }
128
129
130 /// add the menu item and register settings
131 if ( is_admin() ){ // admin actions
132 add_action( 'admin_menu', 'vdo_menu' );
133 add_action( 'admin_init', 'register_vdo_settings' );
134 } else {
135 // non-admin enqueues, actions, and filters
136 }
137 function vdo_menu(){
138 add_options_page( 'VdoCipher Options', 'VdoCipher', 'manage_options', 'vdocipher', 'vdo_options' );
139 }
140 function vdo_options(){
141 if (!get_option('vdo_default_height'))
142 update_option('vdo_default_height', '720');
143 if (!get_option('vdo_default_width'))
144 update_option('vdo_default_width', '1280');
145 $vdo_client_key = get_option('vdo_client_key');
146 if (!$vdo_client_key && strlen($vdo_client_key) != 64) {
147 vdo_show_form_client_key();
148 return "";
149 }
150 if ( !current_user_can( 'manage_options' ) ) {
151 wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
152 }
153 include('include/options.php');
154 }
155 function register_vdo_settings() { // whitelist options
156 register_setting( 'vdo_option-group', 'vdo_client_key' );
157 register_setting( 'vdo_option-group', 'vdo_default_height' );
158 register_setting( 'vdo_option-group', 'vdo_default_width' );
159 register_setting( 'vdo_option-group', 'vdo_annotate_code' );
160 }
161
162 /// adding a section for asking for the client key
163 function vdo_show_form_client_key(){
164 include('include/setting_form.php');
165 }
166 register_deactivation_hook(__FILE__, 'vdo_deactivate');
167 function vdo_deactivate(){
168 delete_option( 'vdo_client_key' );
169 delete_option('vdo_default_width');
170 delete_option('vdo_default_height');
171 delete_option('vdo_annotate_code');
172 }
173 function vdo_activate() {
174 if (!get_option('vdo_default_height'))
175 update_option('vdo_default_height', '400');
176 if (!get_option('vdo_default_width'))
177 update_option('vdo_default_width', '640');
178 }
179 register_activation_hook( __FILE__, 'vdo_activate' );
180 function vdo_admin_notice() {
181 if((!get_option('vdo_client_key') || strlen(get_option('vdo_client_key')) != 64) && basename($_SERVER['PHP_SELF']) == "plugins.php" ){
182 ?>
183 <div class="error">
184 <p>The VdoCipher plugin is not ready. <a href="options-general.php?page=vdocipher">Click here to configure</a>
185 </p>
186 </div>
187 <?php
188 }
189 }
190 add_action( 'admin_notices', 'vdo_admin_notice' );
191