'; echo '

'.__('Import podPress to Podcasting').'

'; } /** * Display the footer */ function footer() { echo ''; } /** * Start the importing process */ function greet() { $this->header(); ?>

footer(); } /** * Step one of the import process (displays importer output) */ function import() { $this->header(); $podcasts = $this->retreive_podPress_podcasts(); $this->import_podcasts($podcasts); $this->footer(); } /** * Grab the podPress podcasts */ function retreive_podPress_podcasts() { global $wpdb; $podcasts = array(); $podpress_data = $wpdb->get_results("SELECT post_id, meta_value FROM {$wpdb->postmeta} WHERE meta_key = 'podPressMedia'", ARRAY_A); if ( $podpress_data != '' ) { foreach ( $podpress_data AS $data ) { $itunes_info = $wpdb->get_results("SELECT post_id, meta_value FROM {$wpdb->postmeta} WHERE meta_key = 'podPressPostSpecific' AND post_id = $data[post_id]", ARRAY_A); if ( $data['meta_value'] != '' ) { $podcast = array(); $podcast = unserialize(trim($data['meta_value'])); $podcast = ( !is_array($podcast) ) ? unserialize($podcast) : $podcast; $podcast[0]['post_id'] = $data['post_id']; $podcast[0]['itunes'] = unserialize($itunes_info[0]['meta_value']); $podcast[0]['itunes'] = ( !is_array($podcast[0]['itunes']) ) ? unserialize($podcast[0]['itunes']) : $podcast; $podcasts[] = $podcast; } } } return $podcasts; } /** * Actually import the podPress podcasts into Podcasting */ function import_podcasts($podcasts) { global $wpdb, $podcasting_metabox; $i = 0; $podPress_options = get_option('podPress_config'); foreach ( $podcasts AS $podcast ) { $no_enclose = false; $enclosed = get_post_meta($podcast[0]['post_id'], 'enclosure'); if ( $enclosed != '' ) { foreach ( $enclosed AS $enclose ) { $enclose = explode("\n", $enclose); if ( ( $enclose[0] == $podcast[0]['URI'] ) && ( $enclose[3] != '' ) ) $no_enclose = true; } } if ( !$no_enclose ) { // Basic podcasting info $content = ( substr($podcast[0]['URI'], 0, 4) == 'http' ) ? $podcast[0]['URI'] : $podPress_options['mediaWebPath'] . $podcast[0]['URI']; $headers = $podcasting_metabox->getHttpHeaders($content); $length = (int) $headers['content-length']; $type = addslashes( $headers['content-type'] ); // iTunes $itunes = serialize(array( 'format' => 'default-format', 'keywords' => ( substr($podcast[0]['itunes']['itunes:keywords'], 0, 1) != '#' ) ? $podcast[0]['itunes']['itunes:keywords'] : '', 'author' => ( substr($podcast[0]['itunes']['itunes:author'], 0, 1) != '#' ) ? $podcast[0]['itunes']['itunes:author'] : '', 'length' => $podcast[0]['duration'], 'explicit' => strtolower($podcast[0]['itunes']['itunes:explicit']) )); if ( $headers['response'] != '404' && is_array($headers) ) { add_post_meta($podcast[0]['post_id'], 'enclosure', "$content\n$length\n$type\n$itunes\n"); $pod_enclosure_id2 = $wpdb->get_var("SELECT meta_id FROM {$wpdb->postmeta} WHERE post_id = {$podcast[0][post_id]} AND meta_key = 'enclosure' ORDER BY meta_id DESC"); // Find the enclosure we just added wp_set_object_terms($pod_enclosure_id2, 'default-format', 'podcast_format', false); $i++; } } } echo '

Successfully imported ' . $i . ' podcasts.

'; } /** * The switcher function for WordPress importers */ function dispatch() { if (empty ($_GET['step'])) $step = 0; else $step = (int) $_GET['step']; switch ($step) { case 0 : $this->greet(); break; case 1 : check_admin_referer('import-podpress'); $this->import(); break; } } function podPressImport() { // Nothing. } } # Start the podPress importer $podPress_import = new podPressImport(); # Add the podPress importer to the array of importers $wp_importers['podpress'] = array('PodPress', 'Import podPress podcasts into Podcasting.', array ($podPress_import, 'dispatch')); ?>