[44] | 1 | <?php
|
---|
| 2 |
|
---|
| 3 | /*
|
---|
| 4 | Author: Edgar de León - edeleon
|
---|
| 5 | Author URI: http://www.webstratega.com/about/
|
---|
| 6 | Description: Lets you attach a video to a post and upload to most popular video distribution sites like YouTube, Vimeo and Blip.tv, after video is uploaded and processed get and inserts the embed code from the sites into custom fields on the post. The plugin has de possibility to extend any other distribution site creating extra drivers
|
---|
| 7 | License: GPL (http://www.fsf.org/licensing/licenses/info/GPLv2.html)
|
---|
| 8 | */
|
---|
| 9 |
|
---|
| 10 | function webtv_status_box() {
|
---|
| 11 | if( function_exists( 'add_meta_box' )) {
|
---|
| 12 | add_meta_box('webtv-status-info','WebTV Status','webtv_display_status','post','normal','high');
|
---|
| 13 | }
|
---|
| 14 | }
|
---|
| 15 |
|
---|
| 16 |
|
---|
| 17 |
|
---|
| 18 | function webtv_getembed_video() {
|
---|
| 19 | $webtvembedqueue = (array)get_option( 'webtv_embed_queue' );
|
---|
| 20 | if (empty($webtvembedqueue)) return;
|
---|
| 21 | $reschedule = false;
|
---|
| 22 | foreach ($webtvembedqueue as $service => $ids) {
|
---|
| 23 | //Load Settings
|
---|
| 24 | $settings = (array)get_option("webtv_".$service);
|
---|
| 25 | foreach ($ids as $post_id) {
|
---|
| 26 | //GetEmbedCode
|
---|
| 27 | $resp = webtv_getembed_code($post_id,$service,$settings);
|
---|
| 28 | if ($resp) unset($ids[$post_id]);
|
---|
| 29 | }
|
---|
| 30 | $webtvembedqueue[$service] = $ids;
|
---|
| 31 | if (!empty($ids)) $reschedule = true;
|
---|
| 32 | }
|
---|
| 33 | update_option( 'webtv_embed_queue', $webtvembedqueue );
|
---|
| 34 | //Si existen elementos en la cola de getEmbed programa el cron para dentro de 5 minutos
|
---|
| 35 | if ($reschedule) {
|
---|
| 36 | wp_clear_scheduled_hook( 'webtv_getembed' );
|
---|
| 37 | wp_schedule_single_event(time()+300, 'webtv_getembed');
|
---|
| 38 | }
|
---|
| 39 | }
|
---|
| 40 |
|
---|
| 41 | function webtv_getembed_code($post_id,$service,$settings) {
|
---|
| 42 | $poststatus = (array)get_post_meta($post_id, '_webtv_status', true);
|
---|
| 43 | $uploadstatus = $poststatus[$service]['upload'];
|
---|
| 44 | $embedstatus = $poststatus[$service]['embed'];
|
---|
| 45 | $videodata = $poststatus[$service]['data'];
|
---|
| 46 | if (function_exists('getembed_'.$service)) {
|
---|
| 47 | $response = call_user_func('getembed_'.$service,$settings,$videodata);
|
---|
| 48 | if ($response['retry'] == 0) {
|
---|
| 49 | $return = true; //sacarlo de la cola
|
---|
| 50 | } else {
|
---|
| 51 | $return = false; //intentar de nuevo publicar
|
---|
| 52 | }
|
---|
| 53 | if(empty($response)) {
|
---|
| 54 | $embedstatus['status'] = 'error';
|
---|
| 55 | $embedstatus['status_msg'] = _("No response from $service");
|
---|
| 56 | }
|
---|
| 57 | if($response['error']) {
|
---|
| 58 | $embedstatus['status'] = 'error';
|
---|
| 59 | $embedstatus['status_msg'] = $response['error_description'] . " " . $response['status_description'];
|
---|
| 60 | $uploadstatus['status_msg'] = $response['error_description'] . " " . $response['status_description'];
|
---|
| 61 | } else {
|
---|
| 62 | $embedstatus['status'] = 'queued';
|
---|
| 63 | $embedstatus['status_msg'] = $response['error_description'] . " " . $response['status_description'];
|
---|
| 64 | }
|
---|
| 65 | if(!empty($response['embed'])) {
|
---|
| 66 | $embedstatus['status'] = 'completed';
|
---|
| 67 | $embedstatus['status_msg'] = _("check custom fields");
|
---|
| 68 | $uploadstatus['status_msg'] = _("completed");
|
---|
| 69 | //unset basic data
|
---|
| 70 | unset($response['service']);
|
---|
| 71 | unset($response['status']);
|
---|
| 72 | unset($response['status_description']);
|
---|
| 73 | unset($response['error']);
|
---|
| 74 | unset($response['error_description']);
|
---|
| 75 | unset($response['retry']);
|
---|
| 76 | //Insert into custom fields
|
---|
| 77 | foreach ($response as $customfield => $data) {
|
---|
| 78 | add_post_meta($post_id,'webtv_'.$service.'_'.$customfield,$data,true);
|
---|
| 79 | $videodata[$customfield] = $data;
|
---|
| 80 | }
|
---|
| 81 | //Autopublish post if enabled
|
---|
| 82 | $postoptions = get_post_meta($post_id, '_webtv_post_options',true);
|
---|
| 83 | $autopublish = false;
|
---|
| 84 | if (!empty($postoptions)) {
|
---|
| 85 | $globalopts = $postoptions['global'];
|
---|
| 86 | if ((isset($globalopts['autopost'])) && ($globalopts['autopost'] == 'on'))
|
---|
| 87 | $autopublish = true;
|
---|
| 88 | }
|
---|
| 89 | if (($autopublish) && (get_post_status($post_id) === 'draft')) {
|
---|
| 90 | wp_publish_post($post_id);
|
---|
| 91 | }
|
---|
| 92 | }
|
---|
| 93 | $poststatus[$service]['upload'] = $uploadstatus;
|
---|
| 94 | $poststatus[$service]['embed'] = $embedstatus;
|
---|
| 95 | $poststatus[$service]['data'] = $videodata;
|
---|
| 96 | add_post_meta($post_id, '_webtv_status', $poststatus, true) or
|
---|
| 97 | update_post_meta($post_id, '_webtv_status', $poststatus);
|
---|
| 98 | return $return;
|
---|
| 99 | }
|
---|
| 100 | return true; //Sacarlo de la cola
|
---|
| 101 | }
|
---|
| 102 |
|
---|
| 103 | function webtv_publish_video($entry,$service,$settings,$options) {
|
---|
| 104 | $post_id = $entry['post_id'];
|
---|
| 105 | $publish = false;
|
---|
| 106 | if (isset($settings['enabled']) && ($settings['enabled'] == 1)) {
|
---|
| 107 | $publish = true;
|
---|
| 108 | }
|
---|
| 109 | if($publish) {
|
---|
| 110 | unset($settings['enabled']);
|
---|
| 111 | $poststatus = (array)get_post_meta($post_id, '_webtv_status', true);
|
---|
| 112 | $driver = $poststatus[$service]['upload'];
|
---|
| 113 | if ($driver['status'] == 'error') return true; //sacarlo de la cola
|
---|
| 114 | $driver['count']++;
|
---|
| 115 | if ($driver['count'] > $options['attemps']) {
|
---|
| 116 | $driver['status'] = 'error';
|
---|
| 117 | $driver['status_msg'] = sprintf(_('Impossible to upload video on %d attemps'),$options['attemps']);
|
---|
| 118 | $poststatus[$service]['upload'] = $driver;
|
---|
| 119 | add_post_meta($post_id, '_webtv_status', $poststatus, true) or
|
---|
| 120 | update_post_meta($post_id, '_webtv_status', $poststatus);
|
---|
| 121 | return true; //sacarlo de la cola
|
---|
| 122 | }
|
---|
| 123 | if (function_exists('upload_'.$service)) {
|
---|
| 124 | $response = call_user_func('upload_'.$service,$settings,$entry);
|
---|
| 125 | if ($response['retry'] == 0) {
|
---|
| 126 | $return = true; //sacarlo de la cola
|
---|
| 127 | } else {
|
---|
| 128 | $return = false; //intentar de nuevo publicar
|
---|
| 129 | }
|
---|
| 130 | if(empty($response)) {
|
---|
| 131 | $driver['status'] = 'error';
|
---|
| 132 | $driver['status_msg'] = _("No response from $service");
|
---|
| 133 | }
|
---|
| 134 | if($response['error']) {
|
---|
| 135 | $driver['status'] = 'error';
|
---|
| 136 | $driver['status_msg'] = $response['error_description'];
|
---|
| 137 | }
|
---|
| 138 | if(!empty($response['video_id'])) {
|
---|
| 139 | $driver['status'] = 'completed';
|
---|
| 140 | $driver['status_msg'] = $response['status'] . " " . $response['status_description'];
|
---|
| 141 | $poststatus[$service]['embed'] = array( 'status' => 'queued',
|
---|
| 142 | 'status_msg' => 'scheduled to get the embed code');
|
---|
| 143 | //unset basic data
|
---|
| 144 | unset($response['service']);
|
---|
| 145 | unset($response['status']);
|
---|
| 146 | unset($response['status_description']);
|
---|
| 147 | unset($response['error']);
|
---|
| 148 | unset($response['error_description']);
|
---|
| 149 | unset($response['retry']);
|
---|
| 150 | //Insert into custom fields
|
---|
| 151 | foreach ($response as $customfield => $data) {
|
---|
| 152 | add_post_meta($post_id,'webtv_'.$service.'_'.$customfield,$data,true);
|
---|
| 153 | $poststatus[$service]['data'][$customfield] = $data;
|
---|
| 154 | }
|
---|
| 155 | //Insert into GetEmbed queue here if some upload gives a timeout, just to be sure
|
---|
| 156 | $webtvembedqueue = (array)get_option( 'webtv_embed_queue' );
|
---|
| 157 | if (empty($webtvembedqueue)) add_option('webtv_embed_queue', array());
|
---|
| 158 | $post_ids = (array)$webtvembedqueue[$service];
|
---|
| 159 | if( !array_key_exists( $post_id, $post_ids ) ) {
|
---|
| 160 | $post_ids[ $post_id ] = $post_id;
|
---|
| 161 | $webtvembedqueue[$service] = $post_ids;
|
---|
| 162 | }
|
---|
| 163 | update_option( 'webtv_embed_queue', $webtvembedqueue );
|
---|
| 164 | }
|
---|
| 165 | $poststatus[$service]['upload'] = $driver;
|
---|
| 166 | add_post_meta($post_id, '_webtv_status', $poststatus, true) or
|
---|
| 167 | update_post_meta($post_id, '_webtv_status', $poststatus);
|
---|
| 168 | return $return;
|
---|
| 169 | }
|
---|
| 170 | }
|
---|
| 171 | $poststatus = (array)get_post_meta($post_id, '_webtv_status', true);
|
---|
| 172 | $driver = $poststatus[$service]['upload'];
|
---|
| 173 | $driver['status'] = 'error';
|
---|
| 174 | $driver['status_msg'] = _("Please check webtv settings");
|
---|
| 175 | $poststatus[$service]['upload'] = $driver;
|
---|
| 176 | add_post_meta($post_id, '_webtv_status', $poststatus, true) or
|
---|
| 177 | update_post_meta($post_id, '_webtv_status', $poststatus);
|
---|
| 178 | return true; //sacarlo de la cola
|
---|
| 179 | }
|
---|
| 180 |
|
---|
| 181 | function webtv_upload_video() {
|
---|
| 182 | $webtvqueue = (array)get_option( 'webtv_upload_queue' );
|
---|
| 183 | $reschedule = false;
|
---|
| 184 | if (!empty($webtvqueue)) {
|
---|
| 185 | $options = get_option("webtv");
|
---|
| 186 | foreach ($webtvqueue as $service => $ids) {
|
---|
| 187 | //Load Settings
|
---|
| 188 | $settings = (array)get_option("webtv_".$service);
|
---|
| 189 | foreach ($ids as $post_id) {
|
---|
| 190 | //Get Post info
|
---|
| 191 | $post = wp_get_single_post($post_id);
|
---|
| 192 | $entry['post_id'] = $post_id;
|
---|
| 193 | $entry['titulo'] = $post->post_title;
|
---|
| 194 | $entry['desc'] = $post->post_content;
|
---|
| 195 | $entry['tags'] = implode (',', $post->tags_input);
|
---|
| 196 | //Get File info
|
---|
| 197 | $fdetails = (array)get_post_meta($post_id,"_webtv_file_details",true);
|
---|
| 198 | $entry['fileinfo'] = $fdetails['full_path'];
|
---|
| 199 | $entry['content_type'] = $fdetails['content_type'];
|
---|
| 200 | $entry['filesize'] = $fdetails['size'];
|
---|
| 201 | //Upload file
|
---|
| 202 | $resp = webtv_publish_video($entry,$service,$settings,$options);
|
---|
| 203 | if ($resp) unset($ids[$post_id]); //descomentar al terminar pruebas
|
---|
| 204 | }
|
---|
| 205 | $webtvqueue[$service] = $ids;
|
---|
| 206 | if (!empty($ids)) $reschedule = true;
|
---|
| 207 | }
|
---|
| 208 | if (isset($webtvqueue[0])) unset($webtvqueue[0]);
|
---|
| 209 | update_option( 'webtv_upload_queue', $webtvqueue );
|
---|
| 210 | }
|
---|
| 211 | //Si existen elementos en la cola de subida programa el cron de subida para dentro de 5 minutos
|
---|
| 212 | if ($reschedule) {
|
---|
| 213 | wp_clear_scheduled_hook( 'webtv_upload' );
|
---|
| 214 | wp_schedule_single_event(time()+300, 'webtv_upload');
|
---|
| 215 | }
|
---|
| 216 | //Se programa el cron para obtener el embed code de los videos
|
---|
| 217 | if( !wp_next_scheduled( 'webtv_getembed' ) ) {
|
---|
| 218 | wp_clear_scheduled_hook( 'webtv_getembed' );
|
---|
| 219 | wp_schedule_single_event(time(), 'webtv_getembed');
|
---|
| 220 | }
|
---|
| 221 | }
|
---|
| 222 |
|
---|
| 223 | function webtv_display_status() {
|
---|
| 224 | global $post_ID, $temp_ID;
|
---|
| 225 | $post_id = (int) (0 == $post_ID ? $temp_ID : $post_ID);
|
---|
| 226 |
|
---|
| 227 | /*$url = get_settings('siteurl');
|
---|
| 228 | $url = 'http://webtv.webstratega.com/wp-content/plugins/'.$plugin = dirname(plugin_basename(__FILE__)).'/includes/';
|
---|
| 229 | $uploaddir = '/'.get_option( 'upload_path' );*/
|
---|
| 230 | //$uploaddir = '/'.get_option( 'upload_path' ).'/webtv'; //A decidir si guardar dentro de subdir
|
---|
| 231 | if ($post_id < 1) {
|
---|
| 232 | $message = _("You need to Save Draft before upload a video");
|
---|
| 233 | echo '<div id="draft">'.$message.'</div>';
|
---|
| 234 |
|
---|
| 235 | } else {
|
---|
| 236 | ?>
|
---|
| 237 | <div id="uploaddiv" style="border: 1px solid rgb(127, 170, 255); padding: 2px; display: inline; background-color: rgb(197, 217, 255);">
|
---|
| 238 | <?php
|
---|
| 239 | $status = get_post_meta($post_id,"_webtv_upload_status",true);
|
---|
| 240 | if ((!empty($status) && $status == 'error') || (empty($status))) {
|
---|
| 241 | ?>
|
---|
| 242 | <span id="spanButtonPlaceHolder"><a href="#webtv-status-info" onclick="load_swfupload();" style="font-family: Helvetica, Arial, sans-serif; font-size: 10pt;">Upload Video</a></span>
|
---|
| 243 | <?php
|
---|
| 244 | } else {
|
---|
| 245 | echo _("Video Uploaded");
|
---|
| 246 | }
|
---|
| 247 | ?>
|
---|
| 248 | </div>
|
---|
| 249 | <br/>
|
---|
| 250 | <span>
|
---|
| 251 | <?php
|
---|
| 252 | $postoptions = get_post_meta($post_id, '_webtv_post_options',true);
|
---|
| 253 | $checked = 'checked="checked"';
|
---|
| 254 | if (!empty($postoptions)) {
|
---|
| 255 | $globalopts = $postoptions['global'];
|
---|
| 256 | if ((isset($globalopts['autopost'])) && ($globalopts['autopost'] == 'off'))
|
---|
| 257 | $checked = '';
|
---|
| 258 | }
|
---|
| 259 | ?>
|
---|
| 260 | <br/><input type="checkbox" name="autopost" id="autopost" <?=$checked?> /> <?php echo _("Automatically publish post after one successful upload?") ?>
|
---|
| 261 | </span>
|
---|
| 262 | <br/><br/>
|
---|
| 263 | <span><b><?php echo _("File Details")?>:</b></span><br/>
|
---|
| 264 | <div id="webtv-status-upload"></div>
|
---|
| 265 | <!--<div style="border: 1px solid rgb(127, 170, 255); padding: 2px; display: inline; background-color: rgb(197, 217, 255);">
|
---|
| 266 | <a href="#" id="btnCancel" onclick="swfu.cancelQueue();" disabled="disabled" >Cancel</a>
|
---|
| 267 | </div>
|
---|
| 268 | -->
|
---|
| 269 | <div id="eleList">
|
---|
| 270 | <?php
|
---|
| 271 |
|
---|
| 272 |
|
---|
| 273 | if (!empty($status)) {
|
---|
| 274 | switch ($status) {
|
---|
| 275 | case "error": $msg = get_post_meta($post_id,"_webtv_upload_status_msg",true);
|
---|
| 276 | $status_color = "#FF0000;";
|
---|
| 277 | break;
|
---|
| 278 | case "stored":
|
---|
| 279 | case "uploaded":$fdetails = get_post_meta($post_id,"_webtv_file_details",true);
|
---|
| 280 | $msg = $fdetails['local_file'].' '.$fdetails['content_type'].' '.file_size($fdetails['size']);
|
---|
| 281 | $status_color = "#009015;";
|
---|
| 282 | break;
|
---|
| 283 | }
|
---|
| 284 | echo '<span style="color: #6F6F6F;"> '.$msg.' </span><span style="color: '.$status_color.'">'.$status.'</span><br/>';
|
---|
| 285 | }
|
---|
| 286 | $poststatus = get_post_meta($post_id, '_webtv_post_status',true);
|
---|
| 287 | if (!empty($poststatus)) {
|
---|
| 288 | $status_color = "#FF0000;";
|
---|
| 289 | echo '<span style="color: #6F6F6F;"> '.$poststatus.'</span><span style="color: '.$status_color.'">error </span><br/>';
|
---|
| 290 | }
|
---|
| 291 | /*if ($programado = wp_next_scheduled( 'webtv_upload' )) {
|
---|
| 292 | $webtvqueue = get_option( 'webtv_upload_queue' );
|
---|
| 293 | ?>
|
---|
| 294 | <span style="color: #009015;"><?php echo _("scheduled ");?></span><span style="color: #6F6F6F;"><?php echo _("Next upload: "); echo date('d-m-Y h:i',$programado); ?></span>
|
---|
| 295 | <?php
|
---|
| 296 | $services = array();
|
---|
| 297 | if (!empty($webtvqueue)) {
|
---|
| 298 | foreach ($webtvqueue as $service => $ids) {
|
---|
| 299 | if (array_key_exists($post_id, $ids)) {
|
---|
| 300 | $services[] = $service;
|
---|
| 301 | }
|
---|
| 302 | }
|
---|
| 303 | }
|
---|
| 304 | ?><span style="color: #6F6F6F;"><?php if (!empty($services)) { echo _("to "); echo implode(",",$services); } ?></span><br/><?php
|
---|
| 305 | }*/
|
---|
| 306 | $poststatus = get_post_meta($post_id, '_webtv_status', true);
|
---|
| 307 | if (!empty($poststatus)) {
|
---|
| 308 | foreach ($poststatus as $driver => $type) {
|
---|
| 309 | ?><br/>
|
---|
| 310 | <span><b><?php echo ucfirst($driver) . " Status:"?></b></span><br/><?
|
---|
| 311 | foreach ($type as $process => $data) {
|
---|
| 312 | if ($process != 'data') {
|
---|
| 313 | ?>
|
---|
| 314 | <span><?=ucfirst($process)?></span>
|
---|
| 315 |
|
---|
| 316 | <span style="color: #6F6F6F;"><?=$data['status_msg']?>
|
---|
| 317 | <?php
|
---|
| 318 | $queuename = ($process == 'upload') ? "webtv_upload" : "webtv_getembed";
|
---|
| 319 | if (($data['status'] == 'queued') && (wp_next_scheduled( $queuename )) ) {
|
---|
| 320 | echo _(" at ");
|
---|
| 321 | echo date('d-m-Y H:i',wp_next_scheduled( $queuename ));
|
---|
| 322 | }
|
---|
| 323 | echo "</span>";
|
---|
| 324 | $style_color = ($data['status'] == 'error') ? "#FF0000" : "#009015"; ?>
|
---|
| 325 | <span style="color: <?=$style_color?>;"><?=$data['status']?></span>
|
---|
| 326 | <?php
|
---|
| 327 | echo "<br/>";
|
---|
| 328 | } else {
|
---|
| 329 | ?>
|
---|
| 330 | <!--<span style="color: #6F6F6F;">Info</span><br/>-->
|
---|
| 331 | <span>VideoID</span>
|
---|
| 332 | <?php
|
---|
| 333 | if (isset($data['video_id'])) {
|
---|
| 334 | echo '<span style="color: #6F6F6F;">';
|
---|
| 335 | if (isset($data['watch_url'])) {
|
---|
| 336 | ?>
|
---|
| 337 | <a href="<?=$data['watch_url']?>" target="_blank"><?=$data['video_id']?></a>
|
---|
| 338 | <?php
|
---|
| 339 | } else {
|
---|
| 340 | echo $data['video_id'];
|
---|
| 341 | }
|
---|
| 342 | echo '</span><br/>';
|
---|
| 343 | }
|
---|
| 344 | echo '<span>CustomFields:</span><br/>';
|
---|
| 345 | foreach ($data as $customfield => $value) {
|
---|
| 346 | $message = sprintf(_("at %s custom field"),"webtv_".$driver."_".$customfield);
|
---|
| 347 | echo '<span style="color: #6F6F6F;">'.$customfield.' </span><span style="color: #6F6F6F;">'.$message.'</span><span style="color: #009015;"> done</span><br/>';
|
---|
| 348 | }
|
---|
| 349 | }
|
---|
| 350 | }
|
---|
| 351 | }
|
---|
| 352 | }
|
---|
| 353 | ?>
|
---|
| 354 |
|
---|
| 355 | </div>
|
---|
| 356 | <?php $debug = false;
|
---|
| 357 | if ($debug) {
|
---|
| 358 | ?>
|
---|
| 359 | <div id="debug">
|
---|
| 360 | <p>Debug</p>
|
---|
| 361 | <?php
|
---|
| 362 | print "post_id ".$post_id;
|
---|
| 363 | echo "<BR/>";
|
---|
| 364 | $options = get_option("webtv");
|
---|
| 365 | foreach ($options['services'] as $driver) {
|
---|
| 366 | print_r($driver);
|
---|
| 367 | echo "<BR/>";
|
---|
| 368 | $settings = get_option("webtv_".$driver);
|
---|
| 369 | print_r($settings);
|
---|
| 370 | echo "<BR/>";
|
---|
| 371 | if ($settings['enabled']) {
|
---|
| 372 | print "enabled";
|
---|
| 373 | echo "<BR/>";
|
---|
| 374 | }
|
---|
| 375 | }
|
---|
| 376 | echo "<BR/>Upload Queue<BR/>";
|
---|
| 377 | $webtvqueue = get_option( 'webtv_upload_queue' );
|
---|
| 378 | $webtvembedqueue = get_option( 'webtv_embed_queue' );
|
---|
| 379 | //update_option( 'webtv_upload_queue',array());
|
---|
| 380 | //update_option( 'webtv_embed_queue',array());
|
---|
| 381 | //if (isset($webtvqueue[0])) unset($webtvqueue[0]);
|
---|
| 382 | //delete_post_meta($post_id, '_webtv_status');
|
---|
| 383 | print_r($webtvqueue);
|
---|
| 384 | echo "<BR/>Getembed Queue<BR/>";
|
---|
| 385 | print_r($webtvembedqueue);
|
---|
| 386 | echo "<BR/>";
|
---|
| 387 | /*$settings = get_option("webtv_youtube");
|
---|
| 388 | print_r($settings);*/
|
---|
| 389 | echo "<BR/>";
|
---|
| 390 | print "next upload cron ";
|
---|
| 391 | print date('Ymd h i',wp_next_scheduled( 'webtv_upload' ));
|
---|
| 392 | print date('Ymd h i',wp_next_scheduled( 'webtv_getembed' ));
|
---|
| 393 | echo "<BR/>";
|
---|
| 394 | print "Post Status <BR/> ";
|
---|
| 395 | print_r($poststatus = (array)get_post_meta($post_id, '_webtv_status', true));
|
---|
| 396 | ?>
|
---|
| 397 | </div>
|
---|
| 398 | <?php } ?>
|
---|
| 399 |
|
---|
| 400 | <?php
|
---|
| 401 | }
|
---|
| 402 | }
|
---|
| 403 |
|
---|
| 404 | function webtv_save_and_schedule() {
|
---|
| 405 | global $post_ID, $temp_ID;
|
---|
| 406 | $post_id = (int) (0 == $post_ID ? $temp_ID : $post_ID);
|
---|
| 407 | //Check post options
|
---|
| 408 | $autopost = 'off';
|
---|
| 409 | if (isset($_POST['autopost']))
|
---|
| 410 | $autopost = 'on';
|
---|
| 411 | $postopts['global'] = array('autopost' => $autopost);
|
---|
| 412 | add_post_meta($post_id, '_webtv_post_options', $postopts, true) or
|
---|
| 413 | update_post_meta($post_id, '_webtv_post_options', $postopts);
|
---|
| 414 | //The _webtv_file_details and _webtv_upload_status custom fields are created on upload.php file using post data from swfupload
|
---|
| 415 | $status = get_post_meta($post_id,"_webtv_upload_status",true);
|
---|
| 416 | if ($status === "uploaded") {
|
---|
| 417 | //Get Post info
|
---|
| 418 | $post = wp_get_single_post($post_id);
|
---|
| 419 | if ( $post == false || $post == null ) {
|
---|
| 420 | return false;
|
---|
| 421 | }
|
---|
| 422 | $error_msg = "";
|
---|
| 423 | //print_r($post);
|
---|
| 424 | if (($post->post_type) != 'post') {
|
---|
| 425 | $error_msg .= _("This is not a post ");
|
---|
| 426 | $error = true;
|
---|
| 427 | }
|
---|
| 428 | if (empty($post->post_title)) {
|
---|
| 429 | $error_msg .= _(" Must have a post title ");
|
---|
| 430 | $error = true;
|
---|
| 431 | }
|
---|
| 432 | if (empty($post->post_content)) {
|
---|
| 433 | $error_msg .= _(" Must have post content ");
|
---|
| 434 | $error = true;
|
---|
| 435 | }
|
---|
| 436 | if (empty($post->tags_input)) {
|
---|
| 437 | $error_msg .= _(" Must have at least one tag ");
|
---|
| 438 | $error = true;
|
---|
| 439 | }
|
---|
| 440 | if ($error) {
|
---|
| 441 | add_post_meta($post_id, '_webtv_post_status', $error_msg, true) or
|
---|
| 442 | update_post_meta($post_id, '_webtv_post_status', $error_msg);
|
---|
| 443 | return false;
|
---|
| 444 | }
|
---|
| 445 | delete_post_meta($post_id, '_webtv_post_status');
|
---|
| 446 | $options = get_option("webtv");
|
---|
| 447 | $webtvqueue = (array)get_option( 'webtv_upload_queue' );
|
---|
| 448 | foreach ($options['services'] as $driver) {
|
---|
| 449 | $settings = get_option("webtv_".$driver);
|
---|
| 450 | if ($settings['enabled']) {
|
---|
| 451 | $poststatus[$driver]['upload'] = array( 'count' => 0,
|
---|
| 452 | 'status' => 'queued',
|
---|
| 453 | 'status_msg' => 'scheduled to upload');
|
---|
| 454 | add_post_meta($post_id, '_webtv_status', $poststatus, true) or
|
---|
| 455 | update_post_meta($post_id, '_webtv_status', $poststatus);
|
---|
| 456 | $post_ids = (array)$webtvqueue[$driver];
|
---|
| 457 | if( !array_key_exists( $post_id, $post_ids ) ) {
|
---|
| 458 | $post_ids[ $post_id ] = $post_id;
|
---|
| 459 | $webtvqueue[$driver] = $post_ids;
|
---|
| 460 | }
|
---|
| 461 | }
|
---|
| 462 | }
|
---|
| 463 | if (isset($webtvqueue[0])) unset($webtvqueue[0]);
|
---|
| 464 | update_option( 'webtv_upload_queue', $webtvqueue );
|
---|
| 465 | add_post_meta($post_id, '_webtv_upload_status', 'stored', true) or
|
---|
| 466 | update_post_meta($post_id, '_webtv_upload_status', 'stored');
|
---|
| 467 | } //$status === "uploaded"
|
---|
| 468 | //Iniciar el cron job
|
---|
| 469 | if( !wp_next_scheduled( 'webtv_upload' ) ) {
|
---|
| 470 | wp_clear_scheduled_hook( 'webtv_upload' );
|
---|
| 471 | wp_schedule_single_event(time(), 'webtv_upload');
|
---|
| 472 | }
|
---|
| 473 | }
|
---|
| 474 |
|
---|
| 475 | function file_size($size)
|
---|
| 476 | {
|
---|
| 477 | $filesizename = array("Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB");
|
---|
| 478 | return $size ? round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesizename[$i] : '0Bytes';
|
---|
| 479 | }
|
---|
| 480 |
|
---|
| 481 | function webtv_content_type($filename) {
|
---|
| 482 | $pathinfo = pathinfo($filename);
|
---|
| 483 | $ext = strtolower($pathinfo['extension']);
|
---|
| 484 |
|
---|
| 485 | $valid_video_format['mpeg'] = 'video/mpeg';
|
---|
| 486 | $valid_video_format['mpg'] = 'video/mpeg';
|
---|
| 487 | $valid_video_format['mpe'] = 'video/mpeg';
|
---|
| 488 | $valid_video_format['qt'] = 'video/quicktime';
|
---|
| 489 | $valid_video_format['mov'] = 'video/quicktime';
|
---|
| 490 | $valid_video_format['avi'] = 'video/x-msvideo';
|
---|
| 491 | $valid_video_format['wmv'] = 'video/x-ms-wmv';
|
---|
| 492 | $valid_video_format['3gp'] = 'video/3gpp';
|
---|
| 493 | $valid_video_format['m4v'] = 'video/x-m4v';
|
---|
| 494 | $valid_video_format['flv'] = 'video/x-flv';
|
---|
| 495 | $valid_video_format['mp4'] = 'video/mp4';
|
---|
| 496 | $valid_video_format['f4v'] = 'video/mp4';
|
---|
| 497 |
|
---|
| 498 | return $valid_video_format[$ext];
|
---|
| 499 |
|
---|
| 500 | }
|
---|
| 501 |
|
---|
| 502 | /* Template Tags */
|
---|
| 503 | function webtv_embedcode() {
|
---|
| 504 | global $post;
|
---|
| 505 | if (!isset($post->ID) || $post->ID == 0 || $post->ID == "") {
|
---|
| 506 | return;
|
---|
| 507 | } else {
|
---|
| 508 | $post_id = $post->ID;
|
---|
| 509 | }
|
---|
| 510 | $options = get_option("webtv");
|
---|
| 511 | $embed = '';
|
---|
| 512 | $orderlist = $options['order'];
|
---|
| 513 | foreach ($orderlist as $order => $service) {
|
---|
| 514 | $embed = get_post_meta($post_id,'webtv_'.$service.'_embed',true);
|
---|
| 515 | if (!empty($embed)) {
|
---|
| 516 | echo $embed;
|
---|
| 517 | return;
|
---|
| 518 | }
|
---|
| 519 | }
|
---|
| 520 | echo '';
|
---|
| 521 | return;
|
---|
| 522 | }
|
---|
| 523 |
|
---|
| 524 |
|
---|
| 525 | ?>
|
---|