PowerPress Podcasting plugin by Blubrry - Version 9.7.4

Version Description

  • Released on 12/07/2022
  • Bugfix for artwork uploader
  • Other small bugfixes
  • Added Swahili to podcast feed language options
Download this release

Release Info

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

Code changes from version 9.7.3 to 9.7.4

getid3/module.audio.mp3.php CHANGED
@@ -1244,7 +1244,7 @@ class getid3_mp3 extends getid3_handler
1244
 
1245
  $previousvalidframe = $info['avdataoffset'];
1246
  while ($this->ftell() < $info['avdataend']) {
1247
- set_time_limit(30);
1248
  $head4 = $this->fread(4);
1249
  if (strlen($head4) < 4) {
1250
  break;
1244
 
1245
  $previousvalidframe = $info['avdataoffset'];
1246
  while ($this->ftell() < $info['avdataend']) {
1247
+ @set_time_limit(30);
1248
  $head4 = $this->fread(4);
1249
  if (strlen($head4) < 4) {
1250
  break;
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="https://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 Apple Podcasts (previously iTunes), Google Podcasts, Spotify, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
6
- Version: 9.7.3
7
  Author: Blubrry
8
  Author URI: https://blubrry.com/
9
  Requires at least: 3.6
@@ -35,7 +35,7 @@ if( !function_exists('add_action') ) {
35
  }
36
 
37
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
38
- define('POWERPRESS_VERSION', '9.7.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="https://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 Apple Podcasts (previously iTunes), Google Podcasts, Spotify, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
6
+ Version: 9.7.4
7
  Author: Blubrry
8
  Author URI: https://blubrry.com/
9
  Requires at least: 3.6
35
  }
36
 
37
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
38
+ define('POWERPRESS_VERSION', '9.7.4' );
39
 
40
  // Translation support:
41
  if ( !defined('POWERPRESS_ABSPATH') )
powerpressadmin-mt.php CHANGED
@@ -150,7 +150,7 @@ if( !function_exists('add_action') )
150
  $Media = ( isset($_POST['Media']) ? $_POST['Media'] : array() );
151
  $Titles = ( isset($_POST['Titles']) ? $_POST['Titles'] : array() );
152
 
153
- set_time_limit(60 + (10* count($Import)) );
154
  $DetectDuration = ( !empty($_POST['DetectDuration']) ? $_POST['DetectDuration'] : 0 );
155
 
156
  if( $DetectDuration )
150
  $Media = ( isset($_POST['Media']) ? $_POST['Media'] : array() );
151
  $Titles = ( isset($_POST['Titles']) ? $_POST['Titles'] : array() );
152
 
153
+ @set_time_limit(60 + (10* count($Import)) );
154
  $DetectDuration = ( !empty($_POST['DetectDuration']) ? $_POST['DetectDuration'] : 0 );
155
 
156
  if( $DetectDuration )
powerpressadmin.php CHANGED
@@ -176,6 +176,7 @@ function powerpress_languages()
176
  $langs['sv'] = __('Swedish', 'powerpress');
177
  $langs['sv-fi'] = __('Swedish (Finland)', 'powerpress');
178
  $langs['sv-se'] = __('Swedish (Sweden)', 'powerpress');
 
179
  $langs['ta'] = __('Tamil', 'powerpress');
180
  $langs['th'] = __('Thai', 'powerpress');
181
  $langs['bo'] = __('Tibetan', 'powerpress');
@@ -343,62 +344,79 @@ function powerpress_admin_init()
343
  $name = $_FILES['itunes_image_file']['name'];
344
  $ext = substr($name, strrpos($name, '.') + 1);
345
 
346
- if (!in_array(strtolower($ext), $acceptable_extensions)) {
347
- unset($Feed['itunes_image']);
348
- powerpress_page_message_add_error(__('Apple Podcasts image has an invalid file type: ' . $ext, 'powerpress') );
349
- } else {
350
- // Check the image...
351
- if (file_exists($temp)) {
352
- $ImageData = @getimagesize($temp);
353
-
354
- $rgb = true; // We assume it is RGB
355
- if (defined('POWERPRESS_IMAGICK') && POWERPRESS_IMAGICK) {
356
- if ($ImageData[2] == IMAGETYPE_PNG && extension_loaded('imagick')) {
357
- $image = new Imagick($temp);
358
- if ($image->getImageColorspace() != imagick::COLORSPACE_RGB) {
359
- $rgb = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
360
  }
361
  }
362
- }
363
 
364
- if (empty($ImageData['channels']))
365
- $ImageData['channels'] = 3; // Assume it's ok if we cannot detect it.
366
 
367
- if ($ImageData) {
368
- if ($rgb && ($ImageData[2] == IMAGETYPE_JPEG || $ImageData[2] == IMAGETYPE_PNG) && $ImageData[0] == $ImageData[1] && $ImageData[0] >= 1400 && $ImageData[0] <= 3000 && $ImageData['channels'] == 3) // Just check that it is an image, the correct image type and that the image is square
369
- {
370
- $upload_result = wp_handle_upload($_FILES['itunes_image_file'], array('action' => $_POST['action'], 'test_form' => false));
371
- if (is_array($upload_result) && isset($upload_result['error'])) {
372
- unset($Feed['itunes_image']);
373
- powerpress_page_message_add_error(__('Error saving image', 'powerpress') . ': ' . $upload_result['error']);
374
- } elseif (is_array($upload_result) && isset($upload_result['url'])) {
375
- $Feed['itunes_image'] = $upload_result['url'];
376
- if (!empty($_POST['itunes_image_checkbox_as_rss'])) {
377
- $Feed['rss2_image'] = $upload_result['url'];
 
 
 
 
378
  }
 
 
 
 
 
 
 
 
 
 
 
 
379
  } else {
380
  unset($Feed['itunes_image']);
381
- powerpress_page_message_add_error(__('Error saving image', 'powerpress'));
382
  }
383
- } else if ($ImageData['channels'] != 3 || $rgb == false) {
384
- unset($Feed['itunes_image']);
385
- powerpress_page_message_add_error(__('Invalid image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('Image must be in RGB color space (CMYK is not supported).', 'powerpress'));
386
- } else if ($ImageData[0] != $ImageData[1]) {
387
- unset($Feed['itunes_image']);
388
- powerpress_page_message_add_error(__('Invalid image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('Image must be square, 1400 x 1400 is the required minimum size.', 'powerpress'));
389
- } else if ($ImageData[0] != $ImageData[1] || $ImageData[0] < 1400) {
390
- unset($Feed['itunes_image']);
391
- powerpress_page_message_add_error(__('Invalid image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('Image is too small, 1400 x 1400 is the required minimum size.', 'powerpress'));
392
- } else if ($ImageData[0] != $ImageData[1] || $ImageData[0] > 3000) {
393
- unset($Feed['itunes_image']);
394
- powerpress_page_message_add_error(__('Invalid image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('Image is too large, 3000 x 3000 is the maximum size allowed.', 'powerpress'));
395
  } else {
396
  unset($Feed['itunes_image']);
397
  powerpress_page_message_add_error(__('Invalid image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']));
398
  }
399
- } else {
400
- unset($Feed['itunes_image']);
401
- powerpress_page_message_add_error(__('Invalid image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']));
402
  }
403
  }
404
  }
@@ -4247,7 +4265,7 @@ function powerpress_process_hosting($post_ID, $post_title)
4247
  if ($error == false) {
4248
  $post_vars = array('podcast_guid' => $post_guid, 'podcast_post_date' => $post_time, 'podcast_title' => $post_title, 'podcast_subtitle' => isset($EpisodeData['subtitle']) ? $EpisodeData['subtitle'] : '');
4249
  // Extend the max execution time here
4250
- set_time_limit(60 * 20); // give it 20 minutes just in case
4251
  $json_data = false;
4252
  if ($creds) {
4253
  $accessToken = powerpress_getAccessToken();
176
  $langs['sv'] = __('Swedish', 'powerpress');
177
  $langs['sv-fi'] = __('Swedish (Finland)', 'powerpress');
178
  $langs['sv-se'] = __('Swedish (Sweden)', 'powerpress');
179
+ $langs['sw'] = __('Swahili', 'powerpress');
180
  $langs['ta'] = __('Tamil', 'powerpress');
181
  $langs['th'] = __('Thai', 'powerpress');
182
  $langs['bo'] = __('Tibetan', 'powerpress');
344
  $name = $_FILES['itunes_image_file']['name'];
345
  $ext = substr($name, strrpos($name, '.') + 1);
346
 
347
+
348
+ $UploadArray = wp_upload_dir();
349
+ $upload_url = $UploadArray['baseurl'];
350
+ if (empty($name) && !empty($Feed['itunes_image']) && strpos($Feed['itunes_image'], $upload_url) === false) {
351
+ // no uploaded file--URL pasted into field
352
+ // download image to local temp file and add to files array
353
+ $remote_image = file_get_contents($Feed['itunes_image']);
354
+ $temp = @tempnam('/tmp', 'wp_powerpress');
355
+ file_put_contents($temp, $remote_image);
356
+ $_FILES['itunes_image_file']['tmp_name'] = $temp;
357
+ $_FILES['itunes_image_file']['size'] = filesize($temp);
358
+ $name = substr($Feed['itunes_image'], strrpos($Feed['itunes_image'], '/') + 1);
359
+ $_FILES['itunes_image_file']['name'] = $name;
360
+ $ext = substr($name, strrpos($name, '.') + 1);
361
+ }
362
+ if (!empty($_FILES['itunes_image_file']['tmp_name'])) {
363
+ if (!in_array(strtolower($ext), $acceptable_extensions)) {
364
+ unset($Feed['itunes_image']);
365
+ powerpress_page_message_add_error(__('Apple Podcasts image has an invalid file type: ' . $ext, 'powerpress'));
366
+ } else {
367
+ // Check the image...
368
+ if (file_exists($temp)) {
369
+ $ImageData = @getimagesize($temp);
370
+
371
+ $rgb = true; // We assume it is RGB
372
+ if (defined('POWERPRESS_IMAGICK') && POWERPRESS_IMAGICK) {
373
+ if ($ImageData[2] == IMAGETYPE_PNG && extension_loaded('imagick')) {
374
+ $image = new Imagick($temp);
375
+ if ($image->getImageColorspace() != imagick::COLORSPACE_RGB) {
376
+ $rgb = false;
377
+ }
378
  }
379
  }
 
380
 
381
+ if (empty($ImageData['channels']))
382
+ $ImageData['channels'] = 3; // Assume it's ok if we cannot detect it.
383
 
384
+ if ($ImageData) {
385
+ if ($rgb && ($ImageData[2] == IMAGETYPE_JPEG || $ImageData[2] == IMAGETYPE_PNG) && $ImageData[0] == $ImageData[1] && $ImageData[0] >= 1400 && $ImageData[0] <= 3000 && $ImageData['channels'] == 3) // Just check that it is an image, the correct image type and that the image is square
386
+ {
387
+ $upload_result = wp_handle_upload($_FILES['itunes_image_file'], array('action' => $_POST['action'], 'test_form' => false));
388
+ if (is_array($upload_result) && isset($upload_result['error'])) {
389
+ unset($Feed['itunes_image']);
390
+ powerpress_page_message_add_error(__('Error saving image', 'powerpress') . ': ' . $upload_result['error']);
391
+ } elseif (is_array($upload_result) && isset($upload_result['url'])) {
392
+ $Feed['itunes_image'] = $upload_result['url'];
393
+ if (!empty($_POST['itunes_image_checkbox_as_rss'])) {
394
+ $Feed['rss2_image'] = $upload_result['url'];
395
+ }
396
+ } else {
397
+ unset($Feed['itunes_image']);
398
+ powerpress_page_message_add_error(__('Error saving image', 'powerpress'));
399
  }
400
+ } else if ($ImageData['channels'] != 3 || $rgb == false) {
401
+ unset($Feed['itunes_image']);
402
+ powerpress_page_message_add_error(__('Invalid image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('Image must be in RGB color space (CMYK is not supported).', 'powerpress'));
403
+ } else if ($ImageData[0] != $ImageData[1]) {
404
+ unset($Feed['itunes_image']);
405
+ powerpress_page_message_add_error(__('Invalid image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('Image must be square, 1400 x 1400 is the required minimum size.', 'powerpress'));
406
+ } else if ($ImageData[0] != $ImageData[1] || $ImageData[0] < 1400) {
407
+ unset($Feed['itunes_image']);
408
+ powerpress_page_message_add_error(__('Invalid image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('Image is too small, 1400 x 1400 is the required minimum size.', 'powerpress'));
409
+ } else if ($ImageData[0] != $ImageData[1] || $ImageData[0] > 3000) {
410
+ unset($Feed['itunes_image']);
411
+ powerpress_page_message_add_error(__('Invalid image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('Image is too large, 3000 x 3000 is the maximum size allowed.', 'powerpress'));
412
  } else {
413
  unset($Feed['itunes_image']);
414
+ powerpress_page_message_add_error(__('Invalid image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']));
415
  }
 
 
 
 
 
 
 
 
 
 
 
 
416
  } else {
417
  unset($Feed['itunes_image']);
418
  powerpress_page_message_add_error(__('Invalid image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']));
419
  }
 
 
 
420
  }
421
  }
422
  }
4265
  if ($error == false) {
4266
  $post_vars = array('podcast_guid' => $post_guid, 'podcast_post_date' => $post_time, 'podcast_title' => $post_title, 'podcast_subtitle' => isset($EpisodeData['subtitle']) ? $EpisodeData['subtitle'] : '');
4267
  // Extend the max execution time here
4268
+ @set_time_limit(60 * 20); // give it 20 minutes just in case
4269
  $json_data = false;
4270
  if ($creds) {
4271
  $accessToken = powerpress_getAccessToken();
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: podcasting, podcast, podcaster, powerpress, itunes, apple, apple podcasts,
4
  Requires at least: 3.6
5
  Requires PHP: 5.2
6
  Tested up to: 6.0
7
- Stable tag: 9.7.3
8
  Donate link: https://create.blubrry.com/resources/podcast-media-hosting/
9
  License: GPLv2 or later
10
 
@@ -185,6 +185,12 @@ If you are a fan of PowerPress, we would greatly appreciate it if you could take
185
 
186
 
187
  == Changelog ==
 
 
 
 
 
 
188
  = 9.7.3 =
189
  * Released on 11/17/2022
190
  * Bugfixes for the Post Type Podcasting page
4
  Requires at least: 3.6
5
  Requires PHP: 5.2
6
  Tested up to: 6.0
7
+ Stable tag: 9.7.4
8
  Donate link: https://create.blubrry.com/resources/podcast-media-hosting/
9
  License: GPLv2 or later
10
 
185
 
186
 
187
  == Changelog ==
188
+ = 9.7.4 =
189
+ * Released on 12/07/2022
190
+ * Bugfix for artwork uploader
191
+ * Other small bugfixes
192
+ * Added Swahili to podcast feed language options
193
+
194
  = 9.7.3 =
195
  * Released on 11/17/2022
196
  * Bugfixes for the Post Type Podcasting page