Browse Source

Simplify timing logic

cryobry 5 years ago
parent
commit
db1900c7e7
1 changed files with 33 additions and 51 deletions
  1. 33 51
      get_podcasts.py

+ 33 - 51
get_podcasts.py

@@ -16,7 +16,8 @@ feedurls = ['http://linuxactionnews.com/rss', \
             'http://feeds.soundcloud.com/users/soundcloud:users:146429914/sounds.rss', \
             'http://feeds.soundcloud.com/users/soundcloud:users:146429914/sounds.rss', \
             'http://billburr.libsyn.com/rss', \
             'http://billburr.libsyn.com/rss', \
             'http://feeds.99percentinvisible.org/99percentinvisible', \
             '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
 # number of old episodes to keep
 old_episodes_keep = 3
 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')]
 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)
 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 ##########
 ######### GET EPISODES ##########
 #################################
 #################################
@@ -81,57 +71,49 @@ for feed in feedurls:
 
 
   # parse episodes
   # parse episodes
   for episode in parsed['episodes']:
   for episode in parsed['episodes']:
-    # get release time
+  
+    # format release time to date format
     release_time = int(episode['published'])
     release_time = int(episode['published'])
+    episode_date = datetime.datetime.fromtimestamp(release_time)
+    episode_date = episode_date.strftime("%y-%m-%d")
     
     
     # debug
     # debug
     if debug == 1:
     if debug == 1:
-      print(old_ts)
       print(release_time)
       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
   # remove old episodes
   old_files = glob.glob(os.path.join(podcast_download_dir, '*'))
   old_files = glob.glob(os.path.join(podcast_download_dir, '*'))
   old_files.sort()
   old_files.sort()
   for file in old_files[:-old_episodes_keep]:
   for file in old_files[:-old_episodes_keep]:
     os.unlink(file)
     os.unlink(file)
-          
-# write new timestamp file
-with open(timestamp_file, 'w') as outf:
-  outf.write(str(new_ts))
         
         
 #################################
 #################################
 ######## MANAGE HANDHELD ########
 ######## MANAGE HANDHELD ########