From db1900c7e78a95f8388505f3ad47f312d9b80493 Mon Sep 17 00:00:00 2001 From: cryobry <38270216+cryobry@users.noreply.github.com> Date: Sun, 13 May 2018 16:15:09 -0700 Subject: [PATCH] Simplify timing logic --- get_podcasts.py | 84 +++++++++++++++++++------------------------------ 1 file changed, 33 insertions(+), 51 deletions(-) diff --git a/get_podcasts.py b/get_podcasts.py index 993a6b8..74aef63 100755 --- a/get_podcasts.py +++ b/get_podcasts.py @@ -16,7 +16,8 @@ feedurls = ['http://linuxactionnews.com/rss', \ 'http://feeds.soundcloud.com/users/soundcloud:users:146429914/sounds.rss', \ 'http://billburr.libsyn.com/rss', \ 'http://feeds.99percentinvisible.org/99percentinvisible', \ - 'http://rss.art19.com/tim-ferriss-show'] + 'http://rss.art19.com/tim-ferriss-show', \ + 'http://feed.thisamericanlife.org/talpodcast'] # number of old episodes to keep old_episodes_keep = 3 @@ -44,17 +45,6 @@ opener=urllib.request.build_opener() opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1941.0 Safari/537.36')] urllib.request.install_opener(opener) -# create new timestamp -timestamp_file = os.path.join(download_root_dir, '.last_sync') -new_ts = int(time.time()) - -# get old timestamp -if os.path.exists(timestamp_file): - with open(timestamp_file) as f: - old_ts = int(f.readline()) -else: - old_ts = 0 - ################################# ######### GET EPISODES ########## ################################# @@ -81,57 +71,49 @@ for feed in feedurls: # parse episodes for episode in parsed['episodes']: - # get release time + + # format release time to date format release_time = int(episode['published']) + episode_date = datetime.datetime.fromtimestamp(release_time) + episode_date = episode_date.strftime("%y-%m-%d") # debug if debug == 1: - print(old_ts) print(release_time) - - if release_time > old_ts: - # format release time to date format - episode_date = datetime.datetime.fromtimestamp(release_time) - episode_date = episode_date.strftime("%y-%m-%d") + print(episode_date) - # debug - if debug == 1: - print(episode_date) - - # create filename based on episode date and/or episode title - if episode_name_in_filename == 0: - episode_title = episode_date - else: - episode_title = episode_date + " " + episode['title'] - - full_episode_path = os.path.splitext(os.path.join(podcast_download_dir, episode_title))[0] - - for enclosures in episode['enclosures']: - # get download url - url = enclosures['url'] - if enclosures['mime_type'] == 'audio/mpeg': - full_episode_path += '.mp3' - # download file and save to episode title - if not os.path.exists(full_episode_path): - try: - print('Downloading ' + episode['title']) - urllib.request.urlretrieve(url, full_episode_path) - except urllib.error.HTTPError as e: - print('HTTPError' + ': Could not download ' + podcast_title + '\n' + 'Reason: ' + e.reason + '\n' + 'URL: ' + url) - except urllib.error.URLError: - print('URLError') - except urllib.error.ContentTooShortError: - print('Download failed, file corrupt!') + # create filename based on episode date and/or episode title + if episode_name_in_filename == 0: + episode_title = episode_date + else: + episode_title = episode_date + " " + episode['title'] + + full_episode_path = os.path.splitext(os.path.join(podcast_download_dir, episode_title))[0] + + for enclosures in episode['enclosures']: + # get download url + url = enclosures['url'] + if debug == 1: + print(url) + if enclosures['mime_type'] == 'audio/mpeg': + full_episode_path += '.mp3' + # download file and save to episode title + if not os.path.exists(full_episode_path): + try: + print('Downloading ' + episode['title']) + urllib.request.urlretrieve(url, full_episode_path) + except urllib.error.HTTPError as e: + print('HTTPError' + ': Could not download ' + podcast_title + '\n' + 'Reason: ' + e.reason + '\n' + 'URL: ' + url) + except urllib.error.URLError: + print('URLError') + except urllib.error.ContentTooShortError: + print('Download failed, file corrupt!') # remove old episodes old_files = glob.glob(os.path.join(podcast_download_dir, '*')) old_files.sort() for file in old_files[:-old_episodes_keep]: os.unlink(file) - -# write new timestamp file -with open(timestamp_file, 'w') as outf: - outf.write(str(new_ts)) ################################# ######## MANAGE HANDHELD ########