/**
  * Summary
  * 
  * @accessor
  */
 public function summary()
 {
     // @todo generate warning if a shortcode is used in summaries
     return \Podlove\PHP\escape_shortcodes($this->episode->summary);
 }
function override_feed_entry($hook, $podcast, $feed, $format)
{
    add_action($hook, function () use($podcast, $feed, $format) {
        global $post;
        $cache = \Podlove\Cache\TemplateCache::get_instance();
        echo $cache->cache_for('feed_item_' . $feed->slug . '_' . $post->ID, function () use($podcast, $feed, $format, $post) {
            $xml = "";
            $episode = Model\Episode::find_one_by_post_id($post->ID);
            $asset = $feed->episode_asset();
            $file = Model\MediaFile::find_by_episode_id_and_episode_asset_id($episode->id, $asset->id);
            $asset_assignment = Model\AssetAssignment::get_instance();
            if (!$file) {
                return;
            }
            $enclosure_file_size = $file->size;
            $cover_art_url = "";
            if ($cover_art = $episode->cover_art()) {
                $cover_art_url = $cover_art->url();
            }
            if (isset($_REQUEST['tracking']) && $_REQUEST['tracking'] == 'no') {
                $enclosure_url = $episode->enclosure_url($feed->episode_asset(), null, null);
            } else {
                $enclosure_url = $episode->enclosure_url($feed->episode_asset(), "feed", $feed->slug);
            }
            $deep_link = Model\Feed::get_link_tag(array('prefix' => 'atom', 'rel' => 'http://podlove.org/deep-link', 'type' => '', 'title' => '', 'href' => get_permalink() . "#"));
            $xml .= apply_filters('podlove_deep_link', $deep_link, $feed);
            $xml .= apply_filters('podlove_feed_enclosure', '', $enclosure_url, $enclosure_file_size, $format->mime_type, $file);
            $duration = sprintf('<itunes:duration>%s</itunes:duration>', $episode->get_duration('HH:MM:SS'));
            $xml .= apply_filters('podlove_feed_itunes_duration', $duration);
            $author = apply_filters('podlove_feed_content', $podcast->author_name);
            $author = sprintf('<itunes:author>%s</itunes:author>', $author);
            $xml .= apply_filters('podlove_feed_itunes_author', $author);
            $subtitle = apply_filters('podlove_feed_content', \Podlove\PHP\escape_shortcodes(strip_tags($episode->subtitle)));
            $subtitle = sprintf('<itunes:subtitle>%s</itunes:subtitle>', $subtitle);
            $xml .= apply_filters('podlove_feed_itunes_subtitle', $subtitle);
            $summary = apply_filters('podlove_feed_content', \Podlove\PHP\escape_shortcodes(strip_tags($episode->summary)));
            $summary = sprintf('<itunes:summary>%s</itunes:summary>', $summary);
            $xml .= apply_filters('podlove_feed_itunes_summary', $summary);
            if (\Podlove\get_setting('metadata', 'enable_episode_explicit')) {
                $itunes_explicit = apply_filters('podlove_feed_content', $episode->explicit_text());
                $itunes_explicit = sprintf('<itunes:explicit>%s</itunes:explicit>', $itunes_explicit);
                $xml .= apply_filters('podlove_feed_itunes_explicit', $itunes_explicit);
            }
            if ($cover_art_url) {
                $cover_art = sprintf('<itunes:image href="%s" />', $cover_art_url);
            } else {
                $cover_art = '';
            }
            $xml .= apply_filters('podlove_feed_itunes_image', $cover_art);
            if ($feed->embed_content_encoded) {
                add_filter('the_content_feed', function ($content, $feed_type) {
                    return preg_replace('#<style(.*?)>(.*?)</style>#is', '', $content);
                }, 10, 2);
                $content_encoded = '<content:encoded><![CDATA[' . get_the_content_feed('rss2') . ']]></content:encoded>';
                $xml .= apply_filters('podlove_feed_content_encoded', $content_encoded);
            }
            ob_start();
            do_action('podlove_append_to_feed_entry', $podcast, $episode, $feed, $format);
            $xml .= ob_get_contents();
            ob_end_clean();
            return $xml;
        }, 15 * MINUTE_IN_SECONDS);
    }, 11);
}