Exemple #1
0
def parse_feed(feed_str):
    """Parses a feed, and returns a Podcast instance"""
    podcast = ParsedPodcast()
    tree = cElementTree.fromstring(feed_str.encode("utf-8"))
    channel = tree[0]

    for child in channel:
        if child.tag == "title":
            podcast.title = child.text
        elif child.tag == "link":
            podcast.link = child.text
        elif child.tag == "description":
            podcast.description = child.text
        elif child.tag == "language":
            podcast.language = child.text
        elif child.tag == "copyright":
            podcast.copyright = child.text
        elif child.tag == ITUNES_NS + "author":
            podcast.author = child.text
        elif child.tag == ITUNES_NS + "keywords":
            podcast.tags += child.text.split(", ")
        elif child.tag == ITUNES_NS + "explicit":
            podcast.explicit = child.text
        elif child.tag == ITUNES_NS + "image":
            podcast.image = child.attrib.get("href")
        elif child.tag == ITUNES_NS + "owner":
            podcast.owner = _parse_person(child)
        elif child.tag == ITUNES_NS + "category":
            podcast.categories += _parse_categories(child)
        elif child.tag == "item":
            podcast.episodes.append(_parse_item(child))

    return podcast
def create_valid_podcast():
    """Creates a valid podcast."""
    podcast = ParsedPodcast(**TEST_DATA)
    podcast.episodes = map(lambda d: ParsedEpisode(**d), podcast.episodes)
    return podcast