def test_canvas(): """Test with the well-formatted feed of the Canvas podcast.""" feed = read_test_file("canvas") result = parse_feed(feed) assert result.title == "Canvas" assert result.link == "https://www.relay.fm/canvas" assert result.description == "Hosted by Federico Viticci and Fraser Speirs, Canvas is a podcast all about mobile productivity. Armed with iOS, Federico and Fraser will be walking through workflows, exploring the best apps for the iPad and iPhone and helping users solve problems. Hosted by Federico Viticci and Fraser Speirs." assert result.language == "en-US" assert result.copyright == u"Copyright © 2016 Relay FM" assert result.author == "Relay FM" assert result.tags == ["iPad", "iOS", "iPhone", "workflows", "productivity"] assert result.explicit == "clean" assert result.image == "http://relayfm.s3.amazonaws.com/uploads/broadcast/image/25/canvas_artwork.png" assert result.owner.name == "Relay FM" assert result.owner.email == "*****@*****.**" assert sorted(result.categories) == sorted([["Technology"], ["Technology", "Gadgets"], ["Technology", "Software How-To"]]) episode = result.episodes[0] assert episode.title == "Canvas 2: Document Providers" assert episode.summary == "Federico and Fraser go in-depth on the Document Picker and Document Provider system in iOS 9." assert episode.published == datetime.datetime(2016, 1, 22,10, 15) assert episode.enclosure.url == "http://www.podtrac.com/pts/redirect.mp3/traffic.libsyn.com/relaycanvas/Canvas-002-2016-01-12.mp3" assert episode.enclosure.length == 36043673 assert episode.enclosure.type == "audio/mp3" assert episode.link == "http://relay.fm/canvas/2" assert episode.guid == "http://relay.fm/canvas/2" assert episode.author == "Federico Viticci and Fraser Speirs" assert episode.explicit == "clean" assert episode.duration == 2252 assert "<li><a href=\"https://itunes.apple.com/us/app/dropbox/id327630330?mt=8&uo=4\">Dropbox</a></li>" in episode.content assert episode.subtitle == "Federico and Fraser go in-depth on the Document Picker and Document Provider system in iOS 9." assert episode.description == "Federico and Fraser go in-depth on the Document Picker and Document Provider system in iOS 9." assert episode.image == "http://relayfm.s3.amazonaws.com/uploads/broadcast/image/25/canvas_artwork.png"
def _update_warrior(warrior): '''Update workout data for warrior''' logger.info('Update warrior '+warrior.name) if len(warrior.rss_id) == 0: return warrior url = 'https://www.heiaheia.com/users/%s/feed'%warrior.rss_id workouts = parser.parse_feed(url) warrior.add_workouts(workouts) return warrior
def test_whats_the_point(): """Test with the What's the point feed.""" feed = read_test_file("whatsthepoint") result = parse_feed(feed) assert result.title == "What's The Point" assert result.author == "FiveThirtyEight" # This feed doesn't use UTC, but PST. assert result.episodes[0].published == datetime.datetime(2016, 1, 28, 11, 0, 0)
def lambda_handler(event, context): blogs = event.get('blogs', []) url = event['urls'].pop() xml = download_feed(url) blogs.append(parse_feed(xml)) return { 'email_from': event['email_from'], 'email_to': event['email_to'], 'urls': event['urls'] or -1, 'blogs': blogs }
def posts(): try: feeds = models.Feed.query.all() for feed in feeds: url = feed.url data = parse_feed(url) for d in data: s = models.Song.query.filter_by(song_id=d['song_id']).first() if s is None: song = models.Song(title=d['title'], player_id=d['player_id'], song_id=d['song_id'], feed_id=feed.id, pub_date=d['pub_date']) db_session.add(song) db_session.commit() return "Success" except IntegrityError as e: pass except Exception as e: return "Error: " + str(e)
def main(args): print(args) feed = parse_feed(args.podcast_feed) episodes = [] show_logo = "" for item in feed: if args.logo and "image" in item.tag: try: show_logo = item.attrib["href"] except KeyError as e: for child in item: if "url" in child.tag: show_logo = child.text break if item.tag == "item": if args.specific_episode: title = item.find("title").text for selected_title in args.specific_episode: if selected_title.lower() == title.lower().strip(): episodes.append(item) else: episodes.append(item) if args.latest and not args.specific_episode: episodes = episodes[:(args.latest)] for episode_item in episodes: video_dict = download_mp3( get_episode_data(episode_item=episode_item, show_logo=show_logo), args, ) youtube_upload( video_dict=video_dict, playlist_id=args.podcast_youtube_playlist_id, category=args.youtube_category_id, tags=args.youtube_tags, private=args.youtube_private, unlisted=args.youtube_unlisted, ) delete_tmp_video(video_dict["output_file"])