Exemplo n.º 1
0
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&amp;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"
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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)
Exemplo n.º 4
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
    }
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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"])
Exemplo n.º 7
0
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)