
import sys
import os
import time
import urlparse
import urllib
import progressBar
import GoogleReader
downloadDir = "myDownloadDir";
logFile = downloadDir + "PodcastsDownloadTool.log";
tag = "Podcasts";
login = "myGoogleReaderLogin";
password = "myGoogleReaderPassword";
def GetLocalFileNameFromURL (fullpath):
(filepath, filename) = os.path.split (urlparse.urlparse (fullpath) .path)
return downloadDir + filename
def LogMessage (message):
f = open (logFile, "a")
print >> f, message;
f.close ();
pass
def DownloadFile (url, filename):
progressBar.ResetProgressBar ();
urllib.urlretrieve (url, filename, reporthook = progressBar.ProgressBarReportHook);
pass
def ProcessPodcastDownloading ():
# Check and create dir
if not os.path.exists (downloadDir):
os.mkdir (downloadDir);
# Login to Google Reader
gr = GoogleReader.GoogleReader ();
gr.identify (login, password);
if gr.login ():
print "Login OK";
else:
print "Login KO";
return
xmlfeed = gr.get_feed (feed = "user / - / label /% s"% tag, n = 17, xt = "user / - / state / com.google / read");
for entry in xmlfeed.get_entries ():
try:
googleID = entry ['google_id'];
if entry.has_key ('enclosure'):
# Prepare vars and print info
URLToDownload = entry ['enclosure'];
localFilePath = GetLocalFileNameFromURL (URLToDownload);
print "Title:% s"% entry ['title'];
print "Download from URL:% s ..."% URLToDownload;
print "Local file:% s"% localFilePath;
# Download file
DownloadFile (url = URLToDownload, filename = localFilePath)
# Log message
LogMessage ("% s% s% s% s \ n"% (time.strftime ('% x% X'), URLToDownload, googleID, entry ['published']));
print "Downloaded.";
# Mark as readed
gr.set_read (googleID);
print "Marked.";
except:
#Print and log error
print "Error:", sys.exc_info ();
LogMessage ("% s \ nError:% s \ nEntry:% s \ nException info:% s \ n% s \ n"% ("=" * 80, time.strftime ('% x% X'), entry, sys.exc_info (), "=" * 80));
pass
if __name __ == '__ main__':
ProcessPodcastDownloading ();

elif dom_entry_element.localName == 'link':
if dom_entry_element.getAttribute ('rel') == 'alternate':
entry ['link'] = dom_entry_element.getAttribute ('href') if dom_entry_element.getAttribute ('rel') == 'enclosure':
entry ['enclosure'] = dom_entry_element.getAttribute ('href') elif dom_entry_element.localName == 'link':
if dom_entry_element.getAttribute ('rel') == 'alternate':
entry ['link'] = dom_entry_element.getAttribute ('href')
if dom_entry_element.getAttribute ('rel') == 'enclosure':
entry ['enclosure'] = dom_entry_element.getAttribute ('href')
elif dom_entry_element.localName == 'category': Source: https://habr.com/ru/post/20876/
All Articles