function powerpress_admin_migrate_get_files($clean = false, $exclude_blubrry = true)
{
    global $wpdb;
    $return = array();
    //$return['feeds_required'] = 0;
    $query = "SELECT p.ID, p.post_title, p.post_date, pm.meta_id, pm.post_id, pm.meta_key, pm.meta_value ";
    $query .= "FROM {$wpdb->posts} AS p ";
    $query .= "INNER JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id ";
    $query .= "WHERE (pm.meta_key = 'enclosure' OR pm.meta_key LIKE '\\_%:enclosure') ";
    $query .= "AND p.post_type != 'revision' ";
    $query .= "GROUP BY pm.meta_id ";
    $query .= "ORDER BY p.post_date DESC ";
    $results_data = $wpdb->get_results($query, ARRAY_A);
    if ($results_data) {
        while (list($null, $row) = each($results_data)) {
            $meta_id = $row['meta_id'];
            $EpisodeData = powerpress_get_enclosure_data($row['post_id'], 'podcast', $row['meta_value'], false);
            // Get the enclosure data with no redirect added
            if ($exclude_blubrry && strstr($EpisodeData['url'], 'content.blubrry.com')) {
                continue;
            }
            // Skip media hosted on blubrry in this case
            if (!$clean) {
                $return[$meta_id] = $row;
            }
            if (!$exclude_blubrry) {
                $return[$meta_id]['on_blubrry'] = strstr($EpisodeData['url'], 'content.blubrry.com');
            }
            $return[$meta_id]['src_url'] = $EpisodeData['url'];
        }
    }
    return $return;
}
 public function on_shoutem_post_start($params)
 {
     $attachments =& $params['attachments_ref'];
     $post = $params['wp_post'];
     //Powerpress support
     if (function_exists('powerpress_get_enclosure')) {
         $audio_meta = powerpress_get_enclosure_data($post->ID);
         if ($audio_meta) {
             $audio_meta = array($audio_meta);
         } else {
             $audio_meta = array();
         }
         $podpress_meta = powerpress_get_enclosure_data_podpress($post->ID);
         if ($podpress_meta && is_array($podpress_meta)) {
             //$podpress_meta['url'] = urlencode($podpress_meta['url']);
             $audio_meta = array_merge($audio_meta, array($podpress_meta));
         }
         foreach ($audio_meta as $audio) {
             $url = $audio['url'];
             $audio_record = array('id' => '', 'src' => $url, 'type' => 'audio', 'duration' => '');
             $attachments['audio'][] = $audio_record;
         }
     }
     return '';
 }
Example #3
0
function powerpress_do_embed($player, $embed, $process_podpress)
{
    list($post_id, $feed_slug) = explode('-', $embed, 2);
    $EpisodeData = powerpress_get_enclosure_data($post_id, $feed_slug);
    if ($EpisodeData == false && $process_podpress && $feed_slug == 'podcast') {
        $EpisodeData = powerpress_get_enclosure_data_podpress($post_id);
    }
    // Embeds are only available for the following players
    do_powerpressplayer_embed($player, $EpisodeData['url'], $EpisodeData);
    exit;
}
Example #4
0
function powerpress_playlist_episodes($args)
{
    global $wpdb;
    $return = array();
    $defaults = array('limit' => 10, 'slug' => 'podcast', 'post_type' => 'post', 'category' => '', 'taxonomy' => '', 'tax_term' => '', 'term_taxonomy_id' => '');
    $args = wp_parse_args($args, $defaults);
    /* handle taxonomy and post id's*/
    if (empty($args['taxonomy']) && empty($args['tax_term']) && !empty($args['category'])) {
        $args['taxonomy'] = 'category';
        $args['tax_term'] = $args['category'];
    }
    $TaxonomyObj = false;
    if (!empty($args['term_taxonomy_id'])) {
        $TaxonomyObj = powerpress_get_term_by_ttid($args['term_taxonomy_id']);
    }
    if (empty($TaxonomyObj) && !empty($args['taxonomy']) && !empty($args['tax_term'])) {
        if (preg_match('/^[0-9]*$/', $args['tax_term'])) {
            // If it is a numeric ID, lets try finding it by ID first...
            $TaxonomyObj = get_term_by('id', $args['tax_term'], $args['taxonomy']);
        }
        if (empty($TaxonomyObj)) {
            $TaxonomyObj = get_term_by('name', $args['tax_term'], $args['taxonomy']);
        }
        if (empty($TaxonomyObj)) {
            $TaxonomyObj = get_term_by('slug', $args['tax_term'], $args['taxonomy']);
        }
    }
    // Start the SQL query
    $query = "SELECT p.ID, p.post_title, p.post_date, pm.meta_value ";
    $query .= "FROM {$wpdb->posts} AS p ";
    $query .= "INNER JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id ";
    if (!empty($TaxonomyObj->term_taxonomy_id)) {
        $query .= "INNER JOIN {$wpdb->term_relationships} AS tr ON p.ID = tr.object_id ";
    }
    $query .= "WHERE (pm.meta_key = %s) ";
    $query .= "AND p.post_type = %s ";
    $query .= "AND p.post_status = 'publish' ";
    if (!empty($TaxonomyObj->term_taxonomy_id)) {
        $query .= "AND tr.term_taxonomy_id = '" . $TaxonomyObj->term_taxonomy_id . "' ";
    }
    $query .= "GROUP BY p.ID ";
    $query .= "ORDER BY p.post_date DESC ";
    $query .= "LIMIT 0, %d";
    $query = $wpdb->prepare($query, $args['slug'] == 'podcast' ? 'enclosure' : '_' . $args['slug'] . ':enclosure', $args['post_type'], $args['limit']);
    $results_data = $wpdb->get_results($query, ARRAY_A);
    if ($results_data) {
        while (list($null, $row) = each($results_data)) {
            if (empty($row['meta_value'])) {
                continue;
            }
            $EnclosureData = powerpress_get_enclosure_data($row['ID'], $args['slug'], $row['meta_value']);
            $return[$row['ID']] = array();
            $return[$row['ID']]['ID'] = $row['ID'];
            $return[$row['ID']]['post_title'] = $row['post_title'];
            $return[$row['ID']]['post_date'] = $row['post_date'];
            $return[$row['ID']]['enclosure'] = $EnclosureData;
        }
    }
    return $return;
}
            ?>
" rel="bookmark" title="<?php 
            the_title();
            ?>
">
                            <h2>
                                <?php 
            echo showAndTitle($postID);
            ?>
                            </h2>
                        </a>

                        <div class="mini light">
                            <?php 
            if (function_exists('powerpress_get_enclosure_data')) {
                $EpisodeData = powerpress_get_enclosure_data($post->ID);
                if ($EpisodeData) {
                    $duration = $EpisodeData['duration'];
                    $parts = explode(':', $duration);
                    $times = array(array('hour', 'hours'), array('min', 'mins'), array('second, seconds'));
                    $output = '';
                    /* ignore seconds */
                    for ($i = 0; $i < 2; $i++) {
                        $value = (int) $parts[$i];
                        $word = $value == 1 ? $times[$i][0] : $times[$i][1];
                        if ($value != "0") {
                            $output = $output . ($value . ' ' . $word . ' ');
                        }
                    }
                    echo $output . "-";
                }
 /**
  * Get audio player
  * 
  * @since    1.0.0
  */
 public static function get_underscore_audio_player()
 {
     $podcast_content = powerpress_get_enclosure_data(get_the_ID(), $feed_slug = 'podcast');
     // No podcast available
     if ($podcast_content == false) {
         return null;
     }
     $options = get_option('Underscore_Audio_Player_Admin');
     // Output buffer
     ob_start();
     include_once dirname(__FILE__) . '/partials/underscore-audio-player-public-display.php';
     $output = ob_get_contents();
     ob_end_clean();
     return $output;
 }
 function powerpress_insert_post_data($data, $postarr)
 {
     // If we added or modified a podcast episode, then we need to re-add/remove the embedded hidden link...
     if (isset($_POST['Powerpress']['podcast']) && $postarr['post_type'] == 'post') {
         // First, remove the previous comment if one exists in the post body.
         $data['post_content'] = preg_replace('/\\<!--.*added by PowerPress.*-->/im', '', $data['post_content']);
         $Powerpress = $_POST['Powerpress']['podcast'];
         if (!empty($Powerpress['remove_podcast'])) {
             // Do nothing
         } else {
             if (!empty($Powerpress['change_podcast']) || !empty($Powerpress['new_podcast'])) {
                 $MediaURL = $Powerpress['url'];
                 if (strpos($MediaURL, 'http://') !== 0 && strpos($MediaURL, 'https://') !== 0 && empty($Powerpress['hosting'])) {
                     // Only glitch here is if the media url had an error, and if that's the case then there are other issues the user needs to worry about.
                     $GeneralSettings = get_option('powerpress_general');
                     if ($GeneralSettings && isset($GeneralSettings['default_url'])) {
                         $MediaURL = rtrim($GeneralSettings['default_url'], '/') . '/' . ltrim($MediaURL, '/');
                     }
                 }
                 $data['post_content'] .= "<!-- DO NOT DELETE href=\"{$MediaURL}\" added by PowerPress to fix WordPress 2.8+ bug -->";
             } else {
                 $EncloseData = powerpress_get_enclosure_data($postarr['ID']);
                 if ($EncloseData && $EncloseData['url']) {
                     $data['post_content'] .= "<!-- DO NOT DELETE href=\"{$EncloseData['url']}\" added by PowerPress to fix WordPress 2.8+ bug -->";
                 }
             }
         }
     }
     return $data;
 }
Example #8
0
function powerpress_premium_content_message($post_id, $feed_slug, $EpisodeData = false)
{
    if (!$EpisodeData && $post_id) {
        $EpisodeData = powerpress_get_enclosure_data($post_id, $feed_slug);
    }
    if (!$EpisodeData) {
        return '';
    }
    $FeedSettings = get_option('powerpress_feed_' . $feed_slug);
    $post_type = get_query_var('post_type');
    if ($post_type != 'post') {
        $GeneralSettings = get_option('powerpress_general');
        if (!empty($GeneralSettings['posttype_podcasting'])) {
            // Get the feed slugs and titles for this post type
            $PostTypeSettingsArray = get_option('powerpress_posttype_' . $post_type);
            if (!empty($PostTypeSettingsArray[$feed_slug]['premium'])) {
                $FeedSettings = $PostTypeSettingsArray[$feed_slug];
            }
        }
    }
    $extension = 'unknown';
    $parts = pathinfo($EpisodeData['url']);
    if ($parts && isset($parts['extension'])) {
        $extension = strtolower($parts['extension']);
    }
    if (isset($FeedSettings['premium_label']) && $FeedSettings['premium_label'] != '') {
        // User has a custom label
        return '<p class="powerpress_links powerpress_links_' . $extension . '">' . $FeedSettings['premium_label'] . '</p>' . PHP_EOL;
    }
    return '<p class="powerpress_links powerpress_links_' . $extension . '">' . htmlspecialchars($FeedSettings['title']) . ': <a href="' . get_bloginfo('url') . '/wp-login.php" title="Protected Content">(Protected Content)</a></p>' . PHP_EOL;
}
<div class="magic">
	<p>magic export (to json) starting at ... <?php 
echo $time_start;
?>
</p>
</div>

<?php 
$categories = get_categories();
$series = array();
foreach ($categories as $category) {
    $episodes = array();
    $q = new WP_Query(array('category_name' => $category->slug, 'posts_per_page' => -1));
    while ($q->have_posts()) {
        $q->the_post();
        $data = powerpress_get_enclosure_data(get_the_ID());
        $episode = array('name' => get_the_title(), 'number' => get_episode_number(get_permalink()), 'desc' => get_the_excerpt(), 'content' => get_the_content(), 'series' => $category->slug, 'media' => $data['url'], 'length' => $data['duration'], 'filesize' => $data['size']);
        $episodes[] = $episode;
    }
    $series[] = array('name' => $category->name, 'short-name' => $category->slug, 'desc' => $category->category_description);
    ?>
		<div class="magic">
			<p>finished processing series: <?php 
    echo $category->slug;
    ?>
 with <?php 
    echo count($episodes);
    ?>
 episodes</p>
			<p> <a href="<?php 
    echo $www . $category->slug . '-episodes.json';