Changeset 3453956
- Timestamp:
- 02/04/2026 04:44:51 PM (2 weeks ago)
- Location:
- powerpress/trunk
- Files:
-
- 3 edited
-
powerpressadmin.php (modified) (8 diffs)
-
readme.txt (modified) (2 diffs)
-
version.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
powerpress/trunk/powerpressadmin.php
r3445012 r3453956 5868 5868 $podcast_search_and = $podcast_id ? "&podcast_id=" . intval($podcast_id) : "&media_url=" . urlencode($enclosure_url); 5869 5869 5870 //========================================5871 // BUILD PLAYER CACHE, PURGE URL 5872 // ======================================== 5870 // =========================================== 5871 // SETUP FOR TRANSCRIPT/CHAPTERS/PLAYER CACHE 5872 // =========================================== 5873 5873 5874 5874 $blubrry_hosted_media = powerpress_is_blubrry_hosted($enclosure_url); … … 5876 5876 $enclosure_filename = powerpress_extract_filename($enclosure_url); 5877 5877 5878 if (!empty($episode_data['podcast_id'])) { 5879 $purge_url = 'https://player.blubrry.com/?podcast_id=' . intval($episode_data['podcast_id']); 5880 $purge_url .= '&media_url=' . urlencode($enclosure_url); 5878 // build player cache purge url 5879 if (!empty($podcast_id)) { 5880 // with podcast_id, player looks up permalink/artwork server-side 5881 $purge_url = "https://player.blubrry.com/?podcast_id=" . intval($podcast_id); 5882 $purge_url .= "&media_url=" . urlencode($enclosure_url); 5881 5883 if (!empty($settings['player']) && $settings['player'] == 'blubrrymodern') { 5882 5884 $purge_url .= '&modern=1'; 5883 5885 } 5884 5886 } else { 5885 $purge_url = 'https://player.blubrry.com/?media_url=' . urlencode($enclosure_url); 5887 // w/o podcast_id, permalink/artwork passed in url so must be in purge url 5888 $purge_url = "https://player.blubrry.com/?media_url=" . urlencode($enclosure_url); 5886 5889 if (!empty($settings['player']) && $settings['player'] == 'blubrrymodern') { 5887 5890 $purge_url .= '&modern=1'; … … 5889 5892 5890 5893 // add permalink if available 5891 if (!empty($episode_data['id'])) { 5892 $permalink = get_permalink($episode_data['id']); 5893 if (!empty($permalink)) { 5894 $purge_url .= '&podcast_link=' . urlencode($permalink); 5895 } 5894 $permalink = get_permalink($post_id); 5895 if (!empty($permalink)) { 5896 $purge_url .= '&podcast_link=' . urlencode($permalink); 5896 5897 } 5897 5898 5898 // add episode artwork 5899 if (!empty($episode_data['itunes_image'])) { 5900 if (isset($settings['bp_episode_image']) && $settings['bp_episode_image'] != false) { 5901 $purge_url .= '&artwork_url=' . urlencode($episode_data['itunes_image']); 5902 } 5899 // add episode artwork if enabled 5900 if (!empty($episode_art) && isset($settings['bp_episode_image']) && $settings['bp_episode_image'] != false) { 5901 $purge_url .= '&artwork_url=' . urlencode($episode_art); 5903 5902 } 5904 5903 } 5905 5906 // build query for api calls 5907 $podcast_search_and .= "&purge_url=" . urlencode($purge_url); 5908 } 5904 } 5905 5906 $episode_data_modified = false; 5907 $transcript_results = []; 5908 $chapters_results = []; 5909 5909 5910 5910 // ======================================== … … 5914 5914 if ($process_transcripts) { 5915 5915 if (!empty($settings['blubrry_hosting']) && $blubrry_hosted_media) { 5916 $should_process_transcript = ( 5917 !empty($_POST['Powerpress'][$feed_slug]['transcript']['generate']) || 5918 (!empty($_POST['Powerpress'][$feed_slug]['transcript']['upload']) && !empty($_POST['Powerpress'][$feed_slug]['pci_transcript_url'])) 5919 ); 5916 $should_process_transcript = !empty($_POST['Powerpress'][$feed_slug]['transcript']['generate']) || 5917 (!empty($_POST['Powerpress'][$feed_slug]['transcript']['upload']) && 5918 !empty($_POST['Powerpress'][$feed_slug]['pci_transcript_url'])); 5920 5919 5921 5920 if ($should_process_transcript) { 5922 // add transcript url to query string 5921 // build transcript-specific query params 5922 $transcript_query = $podcast_search_and; 5923 5924 // add transcript url to query string 5923 5925 if (!empty($_POST['Powerpress'][$feed_slug]['pci_transcript_url']) && !empty($_POST['Powerpress'][$feed_slug]['transcript']['upload'])) { 5924 $ podcast_search_and.= '&transcript_url=' . urlencode($_POST['Powerpress'][$feed_slug]['pci_transcript_url']);5925 } 5926 5927 // add language parameter 5926 $transcript_query .= '&transcript_url=' . urlencode($_POST['Powerpress'][$feed_slug]['pci_transcript_url']); 5927 } 5928 5929 // add language parameter 5928 5930 if (!empty($_POST['Powerpress'][$feed_slug]['pci_transcript_language'])) { 5929 // build query for api calls 5930 $podcast_search_and .= '&language=' . $_POST['Powerpress'][$feed_slug]['pci_transcript_language']; 5931 $transcript_query .= '&language=' . $_POST['Powerpress'][$feed_slug]['pci_transcript_language']; 5931 5932 } 5932 5933 5933 5934 // api request 5935 $enc_keyword = urlencode($program_keyword); 5936 $enc_filename = urlencode($enclosure_filename); 5934 5937 $transcript_results = powerpress_api_request( 5935 '/2/media/%s/%s?transcript=true' . $podcast_search_and,5936 array(urlencode($program_keyword), urlencode($enclosure_filename)),5938 "/2/media/{$enc_keyword}/{$enc_filename}?transcript=true{$transcript_query}&purge_transcript=1", 5939 [], 5937 5940 [], 5938 5941 $settings, … … 5946 5949 $episode_data["pci_transcript_url"] = $transcript_results['temp_transcription_file']; 5947 5950 $episode_data["pci_transcript"] = 1; 5948 $enclosure_data = $enclosure_url . "\n" . $enclosure_size . "\n" . $enclosure_type . "\n" . serialize($episode_data); 5949 update_post_meta($post_id, $field, $enclosure_data); 5951 $episode_data_modified = true; 5950 5952 } 5951 5953 … … 5978 5980 if ($process_chapters) { 5979 5981 if (!empty($settings['blubrry_hosting']) && $blubrry_hosted_media && !empty($episode_data["pci_chapters_url"])) { 5980 // build query for api calls 5981 $podcast_search_and .= "&chapters_url=" . urlencode($episode_data["pci_chapters_url"]); 5982 // build chapters query params 5983 $enc_chapters_url = urlencode($episode_data['pci_chapters_url']); 5984 $chapters_query = "{$podcast_search_and}&chapters_url={$enc_chapters_url}"; 5982 5985 5983 5986 // api request 5987 $enc_keyword = urlencode($program_keyword); 5988 $enc_filename = urlencode($enclosure_filename); 5984 5989 $chapters_results = powerpress_api_request( 5985 '/2/media/%s/%s?chapters=true' . $podcast_search_and,5986 array(urlencode($program_keyword), urlencode($enclosure_filename)),5990 "/2/media/{$enc_keyword}/{$enc_filename}?chapters=true{$chapters_query}&purge_chapters=1", 5991 [], 5987 5992 [], 5988 5993 $settings, … … 6001 6006 } 6002 6007 6003 $enclosure_data = $enclosure_url . "\n" . $enclosure_size . "\n" . $enclosure_type . "\n" . serialize($episode_data); 6004 update_post_meta($post_id, $field, $enclosure_data); 6008 $episode_data_modified = true; 6005 6009 } 6006 6010 … … 6015 6019 } 6016 6020 6021 // ================================= 6022 // SAVE EPISODE DATA 6023 // ================================= 6024 6025 if ($episode_data_modified) { 6026 $enclosure_data = "{$enclosure_url}\n{$enclosure_size}\n{$enclosure_type}\n" . serialize($episode_data); 6027 update_post_meta($post_id, $field, $enclosure_data); 6028 } 6029 6017 6030 // ================================ 6018 6031 // UPDATE EPISODE TITLE IN BLUBRRY 6019 6032 // ================================ 6020 6033 6021 $post_array = [ 6022 'title' => $post_title, 6023 'media_url' => $enclosure_url, 6024 'podcast_post_date' => $post_time, 6025 'episode_art' => $episode_art 6026 ]; 6027 6028 if (!empty($podcast_id)) { 6029 $post_array['podcast_id'] = $podcast_id; 6030 } 6031 6032 $title_results = powerpress_api_request( 6033 '/2/episode/%s/update-title/', 6034 [urlencode($program_keyword)], 6035 $post_array, 6036 $settings, 6037 $creds, 6038 $auth, 6039 $api_url_array 6040 ); 6041 6042 // check for title update errors 6043 if (!is_array($title_results)) { 6044 $error = __('Blubrry Hosting Error (update title)', 'powerpress') . ': ' . __('Failed to update episode title.', 'powerpress'); 6045 powerpress_add_error($error, ['feed_slug' => $feed_slug, 'media_file' => $enclosure_url]); 6046 } else if (isset($title_results['error'])) { 6047 $error = __('Blubrry Hosting Error (update title)', 'powerpress') . ': ' . $title_results['error']; 6048 powerpress_add_error($error, ['feed_slug' => $feed_slug, 'media_file' => $enclosure_url]); 6034 $should_update_title = $episode_data_modified || !empty($podcast_id); 6035 6036 if ($should_update_title) { 6037 $post_array = [ 6038 'title' => $post_title, 6039 'media_url' => $enclosure_url, 6040 'podcast_post_date' => $post_time, 6041 'episode_art' => $episode_art 6042 ]; 6043 6044 if (!empty($podcast_id)) { 6045 $post_array['podcast_id'] = $podcast_id; 6046 } 6047 6048 // build endpoint w/ purge_url if available 6049 $enc_keyword = urlencode($program_keyword); 6050 $update_title_endpoint = "/2/episode/{$enc_keyword}/update-title/"; 6051 if (!empty($purge_url)) { 6052 $update_title_endpoint .= "?purge_url=" . urlencode($purge_url); 6053 } 6054 6055 $title_results = powerpress_api_request( 6056 $update_title_endpoint, 6057 [], 6058 $post_array, 6059 $settings, 6060 $creds, 6061 $auth, 6062 $api_url_array 6063 ); 6064 6065 // check for title update errors 6066 if (!is_array($title_results)) { 6067 $error = __('Blubrry Hosting Error (update title)', 'powerpress') . ': ' . __('Failed to update episode title.', 'powerpress'); 6068 powerpress_add_error($error, ['feed_slug' => $feed_slug, 'media_file' => $enclosure_url]); 6069 } else if (isset($title_results['error'])) { 6070 $error = __('Blubrry Hosting Error (update title)', 'powerpress') . ': ' . $title_results['error']; 6071 powerpress_add_error($error, ['feed_slug' => $feed_slug, 'media_file' => $enclosure_url]); 6072 } 6049 6073 } 6050 6074 } -
powerpress/trunk/readme.txt
r3445012 r3453956 5 5 Requires PHP: 5.2 6 6 Tested up to: 6.9 7 Stable tag: 11.15.1 17 Stable tag: 11.15.12 8 8 Donate link: https://blubrry.com/services/podcast-hosting/ 9 9 License: GPLv2 or later … … 165 165 166 166 == Changelog == 167 168 = 11.15.12 = 169 * Released on 2/3/26 170 * Update: Cache invalidation logic 167 171 168 172 = 11.15.11 = -
powerpress/trunk/version.txt
r3445012 r3453956 1 11.15.1 11 11.15.12
Note: See TracChangeset
for help on using the changeset viewer.