PluginProbe
VdoCipher: Secure Video Player and Hosting / 1.6
VdoCipher: Secure Video Player and Hosting v1.6
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.6, at vdocipher.php

193 lines 6.3 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.6
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 $vdo_annotate_code = apply_filters('vdocipher_annotate_preprocess', $vdo_annotate_code);
93 if (is_user_logged_in()) {
94 $vdo_annotate_code = str_replace('{name}', $current_user->display_name , $vdo_annotate_code);
95 $vdo_annotate_code = str_replace('{email}', $current_user->user_email , $vdo_annotate_code);
96 $vdo_annotate_code = str_replace('{username}', $current_user->user_login , $vdo_annotate_code);
97 $vdo_annotate_code = str_replace('{id}', $current_user->ID , $vdo_annotate_code);
98 }
99 $vdo_annotate_code = str_replace('{ip}', $_SERVER['REMOTE_ADDR'] , $vdo_annotate_code);
100 $vdo_annotate_code = preg_replace_callback('/\{date\.([^\}]+)\}/', "eval_date" , $vdo_annotate_code);
101 $vdo_annotate_code = apply_filters('vdocipher_annotate_postprocess', $vdo_annotate_code);
102 if(!$no_annotate)
103 $anno = "annotate=". urlencode($vdo_annotate_code);
104 }
105 $OTP = vdo_send("otp", $params, $anno);
106 $OTP = json_decode($OTP);
107 if(is_null($OTP)){
108 $output = "<span id='vdo$OTP' style='background:#555555;color:#FFFFFF'><h4>Video not found</h4></span>";
109 return $output;
110 }
111 $OTP = $OTP->otp;
112
113 $output = "<span id='vdo$OTP'></span>";
114 $output .= "<script src='https://de122v0opjemw.cloudfront.net/utils/playerInit.php?otp=$OTP&height=$height&width=$width&'></script>";
115 return $output;
116 }
117
118 add_shortcode( 'vdo', 'vdo_shortcode' );
119
120
121 /// adding the settings link
122 $plugin = plugin_basename(__FILE__);
123 add_filter("plugin_action_links_$plugin", 'vdo_settings_link' );
124
125 function vdo_settings_link($links) {
126 $settings_link = '<a href="options-general.php?page=vdocipher.php">Settings</a>';
127 array_unshift($links, $settings_link);
128 return $links;
129 }
130
131
132 /// add the menu item and register settings
133 if ( is_admin() ){ // admin actions
134 add_action( 'admin_menu', 'vdo_menu' );
135 add_action( 'admin_init', 'register_vdo_settings' );
136 } else {
137 // non-admin enqueues, actions, and filters
138 }
139 function vdo_menu(){
140 add_options_page( 'VdoCipher Options', 'VdoCipher', 'manage_options', 'vdocipher', 'vdo_options' );
141 }
142 function vdo_options(){
143 if (!get_option('vdo_default_height'))
144 update_option('vdo_default_height', '360');
145 if (!get_option('vdo_default_width'))
146 update_option('vdo_default_width', '640');
147 $vdo_client_key = get_option('vdo_client_key');
148 if (!$vdo_client_key && strlen($vdo_client_key) != 64) {
149 vdo_show_form_client_key();
150 return "";
151 }
152 if ( !current_user_can( 'manage_options' ) ) {
153 wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
154 }
155 include('include/options.php');
156 }
157 function register_vdo_settings() { // whitelist options
158 register_setting( 'vdo_option-group', 'vdo_client_key' );
159 register_setting( 'vdo_option-group', 'vdo_default_height' );
160 register_setting( 'vdo_option-group', 'vdo_default_width' );
161 register_setting( 'vdo_option-group', 'vdo_annotate_code' );
162 }
163
164 /// adding a section for asking for the client key
165 function vdo_show_form_client_key(){
166 include('include/setting_form.php');
167 }
168 register_deactivation_hook(__FILE__, 'vdo_deactivate');
169 function vdo_deactivate(){
170 delete_option( 'vdo_client_key' );
171 delete_option('vdo_default_width');
172 delete_option('vdo_default_height');
173 delete_option('vdo_annotate_code');
174 }
175 function vdo_activate() {
176 if (!get_option('vdo_default_height'))
177 update_option('vdo_default_height', '400');
178 if (!get_option('vdo_default_width'))
179 update_option('vdo_default_width', '640');
180 }
181 register_activation_hook( __FILE__, 'vdo_activate' );
182 function vdo_admin_notice() {
183 if((!get_option('vdo_client_key') || strlen(get_option('vdo_client_key')) != 64) && basename($_SERVER['PHP_SELF']) == "plugins.php" ){
184 ?>
185 <div class="error">
186 <p>The VdoCipher plugin is not ready. <a href="options-general.php?page=vdocipher">Click here to configure</a>
187 </p>
188 </div>
189 <?php
190 }
191 }
192 add_action( 'admin_notices', 'vdo_admin_notice' );
193