PowerPress Podcasting plugin by Blubrry - Version 6.3.1

Version Description

  • Released on 1/6/2016
  • Fixed messages that could occur the first time you select a video player when PHP notices enabled on server. (Thanks Paul Bearne for bringing to our attention!)
  • Fixed date issue when importing feeds. (Thanks tiptopolive for bringing to our attention!)
  • Set item limit advanced option added for podcast importing.
Download this release

Release Info

Developer amandato
Plugin Icon 128x128 PowerPress Podcasting plugin by Blubrry
Version 6.3.1
Comparing to
See all releases

Code changes from version 6.3 to 6.3.1

powerpress.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Blubrry PowerPress
4
  Plugin URI: http://create.blubrry.com/resources/powerpress/
5
  Description: <a href="http://create.blubrry.com/resources/powerpress/" target="_blank">Blubrry PowerPress</a> is the No. 1 Podcasting plugin for WordPress. Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast tools, podcast SEO features, and more! Fully supports iTunes, Google Play, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
6
- Version: 6.3
7
  Author: Blubrry
8
  Author URI: http://www.blubrry.com/
9
  Requires at least: 3.7
@@ -23,7 +23,7 @@ Credits:
23
  flashembed(), License: MIT by Tero Piirainen (tipiirai [at] gmail.com)
24
  Note: code found at bottom of player.js
25
 
26
- Copyright 2008-2014 RawVoice Inc. (http://www.rawvoice.com)
27
 
28
  License: GPL (http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)
29
 
@@ -35,7 +35,7 @@ if( !function_exists('add_action') )
35
  die("access denied.");
36
 
37
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
38
- define('POWERPRESS_VERSION', '6.3' );
39
 
40
  // Translation support:
41
  if ( !defined('POWERPRESS_ABSPATH') )
3
  Plugin Name: Blubrry PowerPress
4
  Plugin URI: http://create.blubrry.com/resources/powerpress/
5
  Description: <a href="http://create.blubrry.com/resources/powerpress/" target="_blank">Blubrry PowerPress</a> is the No. 1 Podcasting plugin for WordPress. Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast tools, podcast SEO features, and more! Fully supports iTunes, Google Play, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
6
+ Version: 6.3.1
7
  Author: Blubrry
8
  Author URI: http://www.blubrry.com/
9
  Requires at least: 3.7
23
  flashembed(), License: MIT by Tero Piirainen (tipiirai [at] gmail.com)
24
  Note: code found at bottom of player.js
25
 
26
+ Copyright 2008-2016 RawVoice Inc. (http://www.rawvoice.com)
27
 
28
  License: GPL (http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)
29
 
35
  die("access denied.");
36
 
37
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
38
+ define('POWERPRESS_VERSION', '6.3.1' );
39
 
40
  // Translation support:
41
  if ( !defined('POWERPRESS_ABSPATH') )
powerpress_ico.png CHANGED
Binary file
powerpressadmin-player-page.php CHANGED
@@ -61,18 +61,17 @@ function powerpress_admin_players($type='audio')
61
  }
62
  else if( $type == 'video' )
63
  {
64
- if( empty($General['video_player']) )
65
- {
66
  $select_player = true;
67
- }
68
- switch( $General['video_player'] )
69
- {
70
- case 'mediaelement-video':
71
- case 'videojs-html5-video-player-for-wordpress':
72
- case 'html5video': break;
73
- default: {
74
- $select_player = true;
75
- };
76
  }
77
  }
78
  else
@@ -244,6 +243,8 @@ table.html5formats tr > td:first-child {
244
  <?php
245
  if( $type == 'video' ) // Video player
246
  {
 
 
247
  ?>
248
  <table class="form-table">
249
  <tr valign="top">
@@ -389,6 +390,9 @@ table.html5formats tr > td:first-child {
389
  // Start adding logic here to display options based on the player selected...
390
  if( $type == 'audio' )
391
  {
 
 
 
392
  switch( $General['player'] )
393
  {
394
  case 'audio-player': {
@@ -1020,7 +1024,7 @@ function audio_player_defaults()
1020
  }
1021
  else if( $type == 'video' )
1022
  {
1023
- $player_to_configure = $General['video_player'];
1024
  switch( $player_to_configure )
1025
  {
1026
  case 'html5':
@@ -1089,7 +1093,8 @@ function audio_player_defaults()
1089
  <?php
1090
  }; break;
1091
  case 'mejs': // $player_to_configure
1092
- case 'mediaelement-video': {
 
1093
  ?>
1094
  <p><?php echo __('Configure MediaElement.js Player', 'powerpress'); ?></p>
1095
  <table class="form-table">
61
  }
62
  else if( $type == 'video' )
63
  {
64
+ if( empty($General['video_player']) ) {
 
65
  $select_player = true;
66
+ } else {
67
+ switch( $General['video_player'] ) {
68
+ case 'mediaelement-video':
69
+ case 'videojs-html5-video-player-for-wordpress':
70
+ case 'html5video': break;
71
+ default: {
72
+ $select_player = true;
73
+ };
74
+ }
75
  }
76
  }
77
  else
243
  <?php
244
  if( $type == 'video' ) // Video player
245
  {
246
+ if( empty($General['video_player']) )
247
+ $General['video_player'] = '';
248
  ?>
249
  <table class="form-table">
250
  <tr valign="top">
390
  // Start adding logic here to display options based on the player selected...
391
  if( $type == 'audio' )
392
  {
393
+ if( empty($General['player']) )
394
+ $General['player'] = '';
395
+
396
  switch( $General['player'] )
397
  {
398
  case 'audio-player': {
1024
  }
1025
  else if( $type == 'video' )
1026
  {
1027
+ $player_to_configure = (!empty($General['video_player'])?$General['video_player']:'');
1028
  switch( $player_to_configure )
1029
  {
1030
  case 'html5':
1093
  <?php
1094
  }; break;
1095
  case 'mejs': // $player_to_configure
1096
+ case 'mediaelement-video':
1097
+ default: {
1098
  ?>
1099
  <p><?php echo __('Configure MediaElement.js Player', 'powerpress'); ?></p>
1100
  <table class="form-table">
powerpressadmin-rss-import.php CHANGED
@@ -92,6 +92,18 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
92
  <div>
93
  <label><input type="checkbox" name="import_itunes_image" value="1" checked> <?php echo __('Download and save iTunes image', 'powerpress'); ?></label>
94
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
95
  <div id="powerpress-import-advanced-options-off">
96
  <p><a href="#" onclick="document.getElementById('powerpress-import-advanced-options-off').style.display='none'; document.getElementById('powerpress-import-advanced-options-on').style.display='block'; return false;"><?php echo __('Advanced options', 'powerprses'); ?></a>
97
  </p>
@@ -106,6 +118,9 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
106
  <div>
107
  <label><input type="checkbox" name="import_blog_posts" value="1" > <?php echo __('Include blog posts', 'powerpress'); ?></label>
108
  </div>
 
 
 
109
  </div>
110
  <?php submit_button( __('Import Podcast', 'powerpress' ) ); ?>
111
  </div>
@@ -406,7 +421,7 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
406
 
407
  $post_date_gmt = false;
408
  if( preg_match('|<pubdate>(.*?)</pubdate>|is', $post, $matches) ) {
409
- $post_date_gmt = strtotime($post_date_gmt[1]);
410
  } else {
411
  // if we don't already have something from pubDate
412
  if( preg_match('|<dc:date>(.*?)</dc:date>|is', $post, $matches) )
@@ -491,7 +506,7 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
491
  return $value;
492
  }
493
 
494
- function import_episodes($import_strict=false, $import_blog_posts=false) {
495
  global $wpdb;
496
  @set_time_limit(60*15); // Give it 15 minutes
497
  $this->m_item_pos = 0;
@@ -518,6 +533,11 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
518
  $count = 0;
519
  while( $item_start_pos !== false && $item_end_pos !== false ) // If one were to return false, we stap!
520
  {
 
 
 
 
 
521
  echo '<li>';
522
  $new_start = $item_start_pos + mb_strlen('<item>');
523
  $item_content = mb_substr($this->m_content, $new_start, $item_end_pos - $new_start);
@@ -558,6 +578,8 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
558
  return;
559
  $import_strict = (!empty($_POST['import_strict'])?true:false);
560
  $import_blog_posts = (!empty($_POST['import_blog_posts'])?true:false);
 
 
561
  if( preg_match('/^(.*)<item>/is', $this->m_content, $matches) )
562
  {
563
  $overwrite_program_info = (!empty($_POST['import_overwrite_program_info'])?true:false);
@@ -565,7 +587,40 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
565
  $this->import_program_info($matches[1], $overwrite_program_info, $import_itunes_image);
566
  }
567
 
568
- $this->import_episodes($import_strict, $import_blog_posts);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
569
 
570
  echo '<h3>';
571
  echo __('Import Completed!', 'powerpress');
@@ -573,7 +628,11 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
573
  echo '<p>'. sprintf(__('Items Skipped: %d', 'powerpress'), $this->m_item_skipped_count).'</p>';
574
  echo '<p>'. sprintf(__('Items Inserted: %d', 'powerpress'), $this->m_item_inserted_count).'</p>';
575
  echo '';
576
- echo '<p>'. sprintf(__('You may now migrate your media manually or use the %s tool.','powerpress'), '<strong><a href="'.admin_url('admin.php?page=powerpress/powerpressadmin_migrate.php') .'">'. __('Migrate Media', 'powerpress') .'</a></strong>' ). '</p>';
 
 
 
 
577
  }
578
 
579
  function dispatch() {
@@ -583,6 +642,16 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
583
  $step = intval($_POST['step']);
584
  else if( !empty($_GET['step']) )
585
  $step = intval($_GET['step']);
 
 
 
 
 
 
 
 
 
 
586
 
587
  $this->header();
588
 
@@ -693,7 +762,12 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
693
 
694
  if( !empty($serialize) )
695
  $encstring .= "\n". serialize( $serialize );
696
- add_post_meta($post_id, 'enclosure', $encstring, true);
 
 
 
 
 
697
  }
698
  return true;
699
  }
92
  <div>
93
  <label><input type="checkbox" name="import_itunes_image" value="1" checked> <?php echo __('Download and save iTunes image', 'powerpress'); ?></label>
94
  </div>
95
+ <div>
96
+ <?php
97
+ //$Settings = get_option('powerpress_general');
98
+ /*
99
+ if( !empty($Settings['blubrry_auth']) ) { ?>
100
+ <label><input type="checkbox" name="migrate_to_blubrry" value="1" checked /> <?php echo __('Migrate Media files to Blubrry Podcast Hosting account', 'powerpress'); ?></label>
101
+ <?php } else { ?>
102
+ <label><input type="checkbox" name="migrate_to_blubrry" value="1" /> <?php echo __('Migrate Media files to Blubrry Podcast Hosting account', 'powerpress'); ?></label> <a title="<?php echo esc_attr(__('Blubrry Podcast Hosting', 'powerpress')); ?>" href="<?php echo admin_url('admin.php'); ?>?action=powerpress-jquery-hosting&amp;KeepThis=true&amp;TB_iframe=true&amp;modal=false&amp;width=800&amp;height=400" target="_blank" class="thickbox"><?php echo __('Learn More', 'powerpress'); ?></a>
103
+ <?php }
104
+ */
105
+ ?>
106
+ </div>
107
  <div id="powerpress-import-advanced-options-off">
108
  <p><a href="#" onclick="document.getElementById('powerpress-import-advanced-options-off').style.display='none'; document.getElementById('powerpress-import-advanced-options-on').style.display='block'; return false;"><?php echo __('Advanced options', 'powerprses'); ?></a>
109
  </p>
118
  <div>
119
  <label><input type="checkbox" name="import_blog_posts" value="1" > <?php echo __('Include blog posts', 'powerpress'); ?></label>
120
  </div>
121
+ <div>
122
+ <label for="import_item_limit"><?php echo __('Item limit', 'powerpress'); ?></label> <input type="text" name="import_item_limit" id="import_item_limit" class="small-text" value="" /> (<?php echo __('leave blank for no limit', 'powerpress'); ?>)
123
+ </div>
124
  </div>
125
  <?php submit_button( __('Import Podcast', 'powerpress' ) ); ?>
126
  </div>
421
 
422
  $post_date_gmt = false;
423
  if( preg_match('|<pubdate>(.*?)</pubdate>|is', $post, $matches) ) {
424
+ $post_date_gmt = strtotime($matches[1]);
425
  } else {
426
  // if we don't already have something from pubDate
427
  if( preg_match('|<dc:date>(.*?)</dc:date>|is', $post, $matches) )
506
  return $value;
507
  }
508
 
509
+ function import_episodes($import_strict=false, $import_blog_posts=false, $import_item_limit=0) {
510
  global $wpdb;
511
  @set_time_limit(60*15); // Give it 15 minutes
512
  $this->m_item_pos = 0;
533
  $count = 0;
534
  while( $item_start_pos !== false && $item_end_pos !== false ) // If one were to return false, we stap!
535
  {
536
+ // check item limit at the beginning of each iteration
537
+ if( $import_item_limit > 0 && $this->m_item_pos >= $import_item_limit ) {
538
+ break; // Item limit reached, stop!
539
+ }
540
+
541
  echo '<li>';
542
  $new_start = $item_start_pos + mb_strlen('<item>');
543
  $item_content = mb_substr($this->m_content, $new_start, $item_end_pos - $new_start);
578
  return;
579
  $import_strict = (!empty($_POST['import_strict'])?true:false);
580
  $import_blog_posts = (!empty($_POST['import_blog_posts'])?true:false);
581
+ $import_item_limit = (!empty($_POST['import_item_limit'])?intval($_POST['import_item_limit']):0);
582
+
583
  if( preg_match('/^(.*)<item>/is', $this->m_content, $matches) )
584
  {
585
  $overwrite_program_info = (!empty($_POST['import_overwrite_program_info'])?true:false);
587
  $this->import_program_info($matches[1], $overwrite_program_info, $import_itunes_image);
588
  }
589
 
590
+ $this->import_episodes($import_strict, $import_blog_posts, $import_item_limit);
591
+
592
+ $migrated_to_blubrry = false;
593
+ if( !empty($_POST['migrate_to_blubrry']) && !empty($GLOBALS['pp_migrate_media_urls']) ) {
594
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-migrate.php');
595
+ $migrated_to_blubrry = true;
596
+
597
+ $update_option = true;
598
+ $QueuedFiles = get_option('powerpress_migrate_queued');
599
+ if( !is_array($QueuedFiles) ) {
600
+ $QueuedFiles = array();
601
+ $update_option = false;
602
+ }
603
+
604
+ $add_urls = '';
605
+ while( list($meta_id, $url) = each($GLOBALS['pp_migrate_media_urls']) )
606
+ {
607
+ if( !empty($add_urls) )
608
+ $add_urls .= "\n";
609
+ $add_urls .= $url;
610
+ }
611
+
612
+ $UpdateResults = powepress_admin_migrate_add_urls($add_urls);
613
+ if( !empty($UpdateResults) )
614
+ {
615
+ // Queued ok...
616
+ if( $update_option )
617
+ update_option('powerpress_migrate_queued', $QueuedFiles);
618
+ else
619
+ add_option('powerpress_migrate_queued', $QueuedFiles, '', 'no');
620
+ }
621
+ }
622
+
623
+ powerpress_page_message_print();
624
 
625
  echo '<h3>';
626
  echo __('Import Completed!', 'powerpress');
628
  echo '<p>'. sprintf(__('Items Skipped: %d', 'powerpress'), $this->m_item_skipped_count).'</p>';
629
  echo '<p>'. sprintf(__('Items Inserted: %d', 'powerpress'), $this->m_item_inserted_count).'</p>';
630
  echo '';
631
+ if( $migrated_to_blubrry ) {
632
+ echo '<p>'. sprintf(__('Visit %s to monitor the migration process.','powerpress'), '<strong><a href="'.admin_url('admin.php?page=powerpress/powerpressadmin_migrate.php') .'">'. __('Migrate Media', 'powerpress') .'</a></strong>' ). '</p>';
633
+ } else {
634
+ echo '<p>'. sprintf(__('You may now migrate your media manually or use the %s tool.','powerpress'), '<strong><a href="'.admin_url('admin.php?page=powerpress/powerpressadmin_migrate.php') .'">'. __('Migrate Media', 'powerpress') .'</a></strong>' ). '</p>';
635
+ }
636
  }
637
 
638
  function dispatch() {
642
  $step = intval($_POST['step']);
643
  else if( !empty($_GET['step']) )
644
  $step = intval($_GET['step']);
645
+
646
+
647
+ // Drop back down a step if not setup for hosting...
648
+ if( !empty($_POST['migrate_to_blubrry']) ) {
649
+ $Settings = get_option('powerpress_general');
650
+ if( empty($Settings['blubrry_auth']) ) {
651
+ echo '<div class="notice is-dismissible updated"><p>'. sprintf(__('You must have a blubrry Podcast Hosting account to continue.', 'powerpress')) .' '. '<a href="http://create.blubrry.com/resources/podcast-media-hosting/" target="_blank">'. __('Learn More', 'powerpress') .'</a>'. '</p></div>';
652
+ $step = 0; // Drop back a step
653
+ }
654
+ }
655
 
656
  $this->header();
657
 
762
 
763
  if( !empty($serialize) )
764
  $encstring .= "\n". serialize( $serialize );
765
+ $meta_id = add_post_meta($post_id, 'enclosure', $encstring, true);
766
+ if( $meta_id ) {
767
+ if( empty($GLOBALS['pp_migrate_media_urls']) )
768
+ $GLOBALS['pp_migrate_media_urls'] = array();
769
+ $GLOBALS['pp_migrate_media_urls'][ $meta_id ] = $enclosure['url'];
770
+ }
771
  }
772
  return true;
773
  }
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Blubrry PowerPress Podcasting plugin ===
2
  Contributors: amandato, blubrry
3
- Tags: powerpress, podcasting, podcast, podcaster, itunes, google play music, google play, enclosure, professional, apple, apple tv, ipad, iphone, youtube, viddler, ustream, podcasting, audio, video, rss2, feed, player, media, rss, mp3, music, embed, feedburner, statistics, stats, flv, flash, id3, episodes, blubrry, mp4, m4v, wordpressmu, mu, wordpress mu, multisite, multi site, mediacaster, post, plugin, posts, simple, social, dashboard, TSG, Buzzsprout, MTR, WP-boxCast, CastMyBlog, tgs podcasting, simple podcasting, seriously simple podcasting, seriously-simple-podcasting, serious, seriously, ssp, podlove, podcast.de, clammr, clammr radio, audio player, stitcher, show, shows, series, docs, documentation, support, free, add-ons, extensions, addons, libsyn, libsyn-podcasting, podbean, podomatic, spreaker
4
  Requires at least: 3.6
5
- Tested up to: 4.4
6
- Stable tag: 6.3
7
  Donate link: https://www.patreon.com/blubrry?ty=h
8
  License: GPLv2 or later
9
 
@@ -220,12 +220,20 @@ To install Blubrry PowerPress manually, follow these steps:
220
  == Changelog ==
221
 
222
  = Next Major Release Announcements =
223
- * PowerPress 7.0 delayed due to Google Play Music update. We are now scheduling PowerPress 7.0 release by Christmas.
224
  * We are looking for beta testers! If you would like to beta test future versions of PowerPress, please [contact us](http://www.blubrry.com/contact.php) with your name and email.
225
 
226
  = Become a PowerPress Patron! =
227
  Help support your favorite podcasting plugin via Patreon. [Visit Blubrry's Patreon page](https://www.patreon.com/blubrry?ty=h)
228
 
 
 
 
 
 
 
 
 
229
  = 6.3 =
230
  * Released on 12/14/2015
231
  * Import Podcast by feed added. You can now migrate your podcast from any service such as SoundCloud, LibSyn or PodBean into your own WordPress site powered by PowerPress!. With only a couple clicks you can import your program information, artwork and episodes.
1
  === Blubrry PowerPress Podcasting plugin ===
2
  Contributors: amandato, blubrry
3
+ Tags: powerpress, podcasting, podcast, podcaster, itunes, google play music, google play, enclosure, professional, apple, apple tv, ipad, iphone, soundcloud, youtube, viddler, ustream, podcasting, audio, video, rss2, feed, player, media, rss, mp3, music, embed, feedburner, statistics, stats, flv, flash, id3, episodes, blubrry, mp4, m4v, wordpressmu, mu, wordpress mu, multisite, multi site, mediacaster, post, plugin, posts, simple, social, dashboard, TSG, Buzzsprout, MTR, WP-boxCast, CastMyBlog, tgs podcasting, simple podcasting, seriously simple podcasting, seriously-simple-podcasting, serious, seriously, ssp, podlove, podcast.de, clammr, clammr radio, audio player, stitcher, show, shows, series, docs, documentation, support, free, add-ons, extensions, addons, libsyn, libsyn-podcasting, podbean, podomatic, spreaker
4
  Requires at least: 3.6
5
+ Tested up to: 4.4.1
6
+ Stable tag: 6.3.1
7
  Donate link: https://www.patreon.com/blubrry?ty=h
8
  License: GPLv2 or later
9
 
220
  == Changelog ==
221
 
222
  = Next Major Release Announcements =
223
+ * PowerPress 7.0 coming very soon. Beta testers expect an email in the coming weeks.
224
  * We are looking for beta testers! If you would like to beta test future versions of PowerPress, please [contact us](http://www.blubrry.com/contact.php) with your name and email.
225
 
226
  = Become a PowerPress Patron! =
227
  Help support your favorite podcasting plugin via Patreon. [Visit Blubrry's Patreon page](https://www.patreon.com/blubrry?ty=h)
228
 
229
+
230
+ = 6.3.1 =
231
+ * Released on 1/6/2016
232
+ * Fixed messages that could occur the first time you select a video player when PHP notices enabled on server. (Thanks Paul Bearne for bringing to our attention!)
233
+ * Fixed date issue when importing feeds. (Thanks tiptopolive for bringing to our attention!)
234
+ * Set item limit advanced option added for podcast importing.
235
+
236
+
237
  = 6.3 =
238
  * Released on 12/14/2015
239
  * Import Podcast by feed added. You can now migrate your podcast from any service such as SoundCloud, LibSyn or PodBean into your own WordPress site powered by PowerPress!. With only a couple clicks you can import your program information, artwork and episodes.