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

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