Plugin Directory

Changeset 3453956


Ignore:
Timestamp:
02/04/2026 04:44:51 PM (2 weeks ago)
Author:
benbeecroft
Message:

PowerPress 11.15.12

Location:
powerpress/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • powerpress/trunk/powerpressadmin.php

    r3445012 r3453956  
    58685868        $podcast_search_and = $podcast_id ? "&podcast_id=" . intval($podcast_id) : "&media_url=" . urlencode($enclosure_url);
    58695869
    5870         // ========================================
    5871         // BUILD PLAYER CACHE, PURGE URL
    5872         // ========================================
     5870        // ===========================================
     5871        // SETUP FOR TRANSCRIPT/CHAPTERS/PLAYER CACHE
     5872        // ===========================================
    58735873
    58745874        $blubrry_hosted_media = powerpress_is_blubrry_hosted($enclosure_url);
     
    58765876            $enclosure_filename = powerpress_extract_filename($enclosure_url);
    58775877
    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);
    58815883                if (!empty($settings['player']) && $settings['player'] == 'blubrrymodern') {
    58825884                    $purge_url .= '&modern=1';
    58835885                }
    58845886            } 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);
    58865889                if (!empty($settings['player']) && $settings['player'] == 'blubrrymodern') {
    58875890                    $purge_url .= '&modern=1';
     
    58895892
    58905893                // 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);
    58965897                }
    58975898
    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);
    59035902                }
    59045903            }
    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 = [];
    59095909
    59105910        // ========================================
     
    59145914        if ($process_transcripts) {
    59155915            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']));
    59205919
    59215920                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
    59235925                    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
    59285930                    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'];
    59315932                    }
    59325933
    59335934                    // api request
     5935                    $enc_keyword = urlencode($program_keyword);
     5936                    $enc_filename = urlencode($enclosure_filename);
    59345937                    $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                        [],
    59375940                        [],
    59385941                        $settings,
     
    59465949                        $episode_data["pci_transcript_url"] = $transcript_results['temp_transcription_file'];
    59475950                        $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;
    59505952                    }
    59515953
     
    59785980        if ($process_chapters) {
    59795981            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}";
    59825985
    59835986                // api request
     5987                $enc_keyword = urlencode($program_keyword);
     5988                $enc_filename = urlencode($enclosure_filename);
    59845989                $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                    [],
    59875992                    [],
    59885993                    $settings,
     
    60016006                    }
    60026007
    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;
    60056009                }
    60066010
     
    60156019        }
    60166020
     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
    60176030        // ================================
    60186031        // UPDATE EPISODE TITLE IN BLUBRRY
    60196032        // ================================
    60206033
    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            }
    60496073        }
    60506074    }
  • powerpress/trunk/readme.txt

    r3445012 r3453956  
    55Requires PHP: 5.2
    66Tested up to: 6.9
    7 Stable tag: 11.15.11
     7Stable tag: 11.15.12
    88Donate link: https://blubrry.com/services/podcast-hosting/
    99License: GPLv2 or later
     
    165165
    166166== Changelog ==
     167
     168= 11.15.12 =
     169* Released on 2/3/26
     170* Update: Cache invalidation logic
    167171
    168172= 11.15.11 =
  • powerpress/trunk/version.txt

    r3445012 r3453956  
    1 11.15.11
     111.15.12
Note: See TracChangeset for help on using the changeset viewer.