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

186 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.7
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 = array()){
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
24 $getData = http_build_query($params);
25 $posts["clientSecretKey"] = $client_key;
26 $url = "http://api.vdocipher.com/v2/$action/?$getData";
27 $response = wp_safe_remote_post($url, array(
28 'method' => 'POST',
29 'body' => $posts
30 ));
31 if (is_wp_error( $response )) {
32 $error_message = $response->get_error_message();
33 echo "VdoCipher: Something went wrong: $error_message";
34 return "";
35 }
36 return $response['body'];
37 }
38 function vdo_shortcode( $atts ) {
39 extract( shortcode_atts(
40 array(
41 'title' => 'TITLE_OF_VIDEO',
42 'width' => get_option('vdo_default_width') . "px",
43 'height' => get_option('vdo_default_height') . "px",
44 'id' => 'id',
45 'no_annotate'=> false
46 ), $atts )
47 );
48 if(!$atts['id']){
49 if(!$atts['title'])
50 return "Required argument id for embedded video not found.";
51 $params = array(
52 'search'=>array(
53 'title'=>$title
54 ),
55 'page'=>1,
56 'limit'=>30,
57 'type'=>'json'
58 );
59 $video = vdo_send("videos", $params);
60 $video = json_decode($video);
61 if($video == null)
62 return "404. Video not found.";
63 $video = $video[0]->id;
64 if ($video == null) {
65 return "No video with given title found.";
66 }
67 }
68 else
69 $video = $id;
70
71 $params = array(
72 'video'=>$video
73 );
74 $anno = false;
75 if (!function_exists("eval_date")) {
76 function eval_date($matches){
77 return current_time($matches[1]);
78 }
79 }
80 if (get_option('vdo_annotate_code') != "") {
81 $current_user = wp_get_current_user();
82 $vdo_annotate_code = get_option('vdo_annotate_code');
83 $vdo_annotate_code = apply_filters('vdocipher_annotate_preprocess', $vdo_annotate_code);
84 if (is_user_logged_in()) {
85 $vdo_annotate_code = str_replace('{name}', $current_user->display_name , $vdo_annotate_code);
86 $vdo_annotate_code = str_replace('{email}', $current_user->user_email , $vdo_annotate_code);
87 $vdo_annotate_code = str_replace('{username}', $current_user->user_login , $vdo_annotate_code);
88 $vdo_annotate_code = str_replace('{id}', $current_user->ID , $vdo_annotate_code);
89 }
90 $vdo_annotate_code = str_replace('{ip}', $_SERVER['REMOTE_ADDR'] , $vdo_annotate_code);
91 $vdo_annotate_code = preg_replace_callback('/\{date\.([^\}]+)\}/', "eval_date" , $vdo_annotate_code);
92 $vdo_annotate_code = apply_filters('vdocipher_annotate_postprocess', $vdo_annotate_code);
93 if(!$no_annotate)
94 $anno = array("annotate" => $vdo_annotate_code);
95 }
96 $OTP = vdo_send("otp", $params, $anno);
97 $OTP = json_decode($OTP);
98 if(is_null($OTP)){
99 $output = "<span id='vdo$OTP' style='background:#555555;color:#FFFFFF'><h4>Video not found</h4></span>";
100 return $output;
101 }
102 $OTP = $OTP->otp;
103
104 $output = "<div id='vdo$OTP' style='height:$height;width:$width;max-width:100%' ></div>";
105 $output .= "<script> (function(v,i,d,e,o){v[o]=v[o]||{}; v[o].add = v[o].add || function V(a){ (v[o].d=v[o].d||[]).push(a);};";
106 $output .= "if(!v[o].l) { v[o].l=1*new Date(); a=i.createElement(d), m=i.getElementsByTagName(d)[0]; a.async=1; a.src=e; m.parentNode.insertBefore(a,m);}";
107 $output .= " })(window,document,'script','//de122v0opjemw.cloudfront.net/vdo.js','vdo'); vdo.add({ o: '$OTP', }); </script>";
108 return $output;
109 }
110
111 add_shortcode( 'vdo', 'vdo_shortcode' );
112
113
114 /// adding the settings link
115 $plugin = plugin_basename(__FILE__);
116 add_filter("plugin_action_links_$plugin", 'vdo_settings_link' );
117
118 function vdo_settings_link($links) {
119 $settings_link = '<a href="options-general.php?page=vdocipher.php">Settings</a>';
120 array_unshift($links, $settings_link);
121 return $links;
122 }
123
124
125 /// add the menu item and register settings
126 if ( is_admin() ){ // admin actions
127 add_action( 'admin_menu', 'vdo_menu' );
128 add_action( 'admin_init', 'register_vdo_settings' );
129 } else {
130 // non-admin enqueues, actions, and filters
131 }
132 function vdo_menu(){
133 add_options_page( 'VdoCipher Options', 'VdoCipher', 'manage_options', 'vdocipher', 'vdo_options' );
134 }
135 function vdo_options(){
136 if (!get_option('vdo_default_height'))
137 update_option('vdo_default_height', '360');
138 if (!get_option('vdo_default_width'))
139 update_option('vdo_default_width', '640');
140 $vdo_client_key = get_option('vdo_client_key');
141 if (!$vdo_client_key && strlen($vdo_client_key) != 64) {
142 vdo_show_form_client_key();
143 return "";
144 }
145 if ( !current_user_can( 'manage_options' ) ) {
146 wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
147 }
148 include('include/options.php');
149 }
150 function register_vdo_settings() { // whitelist options
151 register_setting( 'vdo_option-group', 'vdo_client_key' );
152 register_setting( 'vdo_option-group', 'vdo_default_height' );
153 register_setting( 'vdo_option-group', 'vdo_default_width' );
154 register_setting( 'vdo_option-group', 'vdo_annotate_code' );
155 }
156
157 /// adding a section for asking for the client key
158 function vdo_show_form_client_key(){
159 include('include/setting_form.php');
160 }
161 register_deactivation_hook(__FILE__, 'vdo_deactivate');
162 function vdo_deactivate(){
163 delete_option( 'vdo_client_key' );
164 delete_option('vdo_default_width');
165 delete_option('vdo_default_height');
166 delete_option('vdo_annotate_code');
167 }
168 function vdo_activate() {
169 if (!get_option('vdo_default_height'))
170 update_option('vdo_default_height', '400');
171 if (!get_option('vdo_default_width'))
172 update_option('vdo_default_width', '640');
173 }
174 register_activation_hook( __FILE__, 'vdo_activate' );
175 function vdo_admin_notice() {
176 if((!get_option('vdo_client_key') || strlen(get_option('vdo_client_key')) != 64) && basename($_SERVER['PHP_SELF']) == "plugins.php" ){
177 ?>
178 <div class="error">
179 <p>The VdoCipher plugin is not ready. <a href="options-general.php?page=vdocipher">Click here to configure</a>
180 </p>
181 </div>
182 <?php
183 }
184 }
185 add_action( 'admin_notices', 'vdo_admin_notice' );
186