Added new logging facility (liblogger.py)
git-svn-id: svn://svn.berlios.de/gpodder/trunk@174 b0d088ad-0a06-0410-aad2-9ed5178a7e87
This commit is contained in:
parent
923fa5ad3e
commit
87d9efbb57
12 changed files with 117 additions and 240 deletions
|
@ -1,3 +1,12 @@
|
|||
Fri, 17 Nov 2006 11:10:42 +0100 <thp@perli.net>
|
||||
* src/gpodder/liblogger.py: Added new logging facility
|
||||
* src/gpodder/libgpodder.py: Removed isDebugging() and debug flag
|
||||
* src/gpodder/*: Use new liblogger instead of isDebugging() in
|
||||
libwget.py, liblocdbreader.py, libplayers.py, libpodcasts.py,
|
||||
libgpodder.py, libipodsync.py, gpodder.py and liblocaldb.py
|
||||
* TODO: Updated TODO list
|
||||
* bin/gpodder: bumped release date again
|
||||
|
||||
Thu, 16 Nov 2006 23:44:43 +0100 <thp@perli.net>
|
||||
* src/gpodder/liblocaldb.py: Applied modified version of patch
|
||||
from Alain Tauch to fix a bug in liblocaldb.py; re-factored the
|
||||
|
|
5
TODO
5
TODO
|
@ -23,11 +23,6 @@
|
|||
did show up in the 'downloaded' tab, it did once I closed and
|
||||
re-opened gPodder. (thanks to Haim Roitgrund for reporting this)
|
||||
|
||||
* re-factor "if libgpodder.isDebugging()" + "print" into a more
|
||||
sophisticated logging/debugging infrastructure (the code should
|
||||
not "print" debug messages, but hand the debug strings to the
|
||||
logging facility, something like: libgpodder.debug( "bla bla")
|
||||
|
||||
* in libipodsync.py: use mime magic instead of extension-based
|
||||
video detection? --> also, is mp4 always video or could it be
|
||||
aac audio too? if so, how to check what is what?
|
||||
|
|
|
@ -26,8 +26,8 @@
|
|||
# PLEASE DO NOT CHANGE FORMAT OF __version__ LINE (setup.py reads this)
|
||||
|
||||
__author__ = "Thomas Perl <thp@perli.net>"
|
||||
__version__ = "0.8.0+svn20061116"
|
||||
__date__ = "2006-11-16"
|
||||
__version__ = "0.8.0+svn20061117"
|
||||
__date__ = "2006-11-17"
|
||||
__copyright__ = "Copyright (c) 2005-2006 %s. All rights reserved." % __author__
|
||||
__licence__ = "GPL"
|
||||
|
||||
|
|
|
@ -53,6 +53,7 @@ from libwget import downloadStatusManager
|
|||
from libgpodder import gPodderLib
|
||||
from libgpodder import gPodderChannelReader
|
||||
from libgpodder import gPodderChannelWriter
|
||||
from liblogger import log
|
||||
|
||||
from liblocaldb import localDB
|
||||
|
||||
|
@ -61,9 +62,6 @@ from libplayers import UserAppsReader
|
|||
from libipodsync import gPodder_iPodSync
|
||||
from libipodsync import ipod_supported
|
||||
|
||||
# for isDebugging:
|
||||
import libgpodder
|
||||
|
||||
app_name = "gpodder"
|
||||
app_version = "unknown" # will be set in main() call
|
||||
app_authors = [
|
||||
|
@ -110,11 +108,6 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.new {
|
||||
def new(self):
|
||||
if libgpodder.isDebugging():
|
||||
print "A new %s has been created" % self.__class__.__name__
|
||||
|
||||
#self.gPodder.set_title( self.gPodder.get_title())
|
||||
#self.statusLabel.set_text( "Welcome to gPodder! Suggestions? Mail to: thp@perli.net")
|
||||
# set up the rendering of the comboAvailable combobox
|
||||
cellrenderer = gtk.CellRendererText()
|
||||
self.comboAvailable.pack_start( cellrenderer, True)
|
||||
|
@ -240,8 +233,7 @@ class Gpodder(SimpleGladeApp):
|
|||
self.comboDownloaded.set_active( self.active_downloaded_channels)
|
||||
except:
|
||||
self.active_downloaded_channels = 0
|
||||
if libgpodder.isDebugging():
|
||||
print _('No downloaded podcasts found.')
|
||||
log( _('No downloaded podcasts found.'))
|
||||
# end of self.updateDownloadedComboBox()
|
||||
|
||||
def updateTreeView( self):
|
||||
|
@ -271,9 +263,7 @@ class Gpodder(SimpleGladeApp):
|
|||
myresult = True
|
||||
|
||||
dlg.destroy()
|
||||
if libgpodder.isDebugging():
|
||||
print "I Asked: %s" % message
|
||||
print "User answered: %s" % str(myresult)
|
||||
log( "I Asked: %s\nUser answered: %s", message, str( myresult))
|
||||
return myresult
|
||||
|
||||
def set_icon(self):
|
||||
|
@ -332,11 +322,9 @@ class Gpodder(SimpleGladeApp):
|
|||
if result != None and result != "" and (result[:4] == "http" or result[:3] == "ftp"):
|
||||
for old_channel in self.channels:
|
||||
if old_channel.url == result:
|
||||
if libgpodder.isDebugging():
|
||||
print 'channel already exists in my list :)'
|
||||
log( 'Channel already exists: %s', result)
|
||||
return
|
||||
if libgpodder.isDebugging():
|
||||
print ("Will add channel :%s") % result
|
||||
log( 'Adding new channel: %s', result)
|
||||
self.statusLabel.set_text( _("Fetching channel index..."))
|
||||
channel_new = podcastChannel( result)
|
||||
self.channels.append( channel_new)
|
||||
|
@ -428,17 +416,13 @@ class Gpodder(SimpleGladeApp):
|
|||
self.showMessage( _("You have already downloaded this episode\nor you are currently downloading it."))
|
||||
# if we're not downloading it, but it exists: add to localdb (if not already done so)
|
||||
if os.path.exists( filename) == True:
|
||||
if libgpodder.isDebugging():
|
||||
print "already downloaded, trying to add to localDB if needed"
|
||||
log( 'Episode has already been downloaded.')
|
||||
if current_channel.addDownloadedItem( current_podcast):
|
||||
self.ldb.clear_cache()
|
||||
#-- Gpodder custom methods }
|
||||
|
||||
#-- Gpodder.close_gpodder {
|
||||
def close_gpodder(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "close_gpodder called with self.%s" % widget.get_name()
|
||||
|
||||
if self.channels_loaded:
|
||||
gPodderChannelWriter().write( self.channels)
|
||||
|
||||
|
@ -451,15 +435,11 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_itemUpdate_activate {
|
||||
def on_itemUpdate_activate(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_itemUpdate_activate called with self.%s" % widget.get_name()
|
||||
self.update_feed_cache()
|
||||
#-- Gpodder.on_itemUpdate_activate }
|
||||
|
||||
#-- Gpodder.on_sync_to_ipod_activate {
|
||||
def on_sync_to_ipod_activate(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_sync_to_ipod_activate called with self.%s" % widget.get_name()
|
||||
sync_win = Gpoddersync()
|
||||
while gtk.events_pending():
|
||||
gtk.main_iteration( False)
|
||||
|
@ -470,8 +450,6 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_cleanup_ipod_activate {
|
||||
def on_cleanup_ipod_activate(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_cleanup_ipod_activate called with self.%s" % widget.get_name()
|
||||
if not self.showConfirmation( _('Do you really want to truncate the Podcasts playlist on your iPod?')):
|
||||
return
|
||||
sync_win = Gpoddersync()
|
||||
|
@ -484,8 +462,6 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_itemPreferences_activate {
|
||||
def on_itemPreferences_activate(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_itemPreferences_activate called with self.%s" % widget.get_name()
|
||||
if self.uar == None:
|
||||
self.uar = UserAppsReader()
|
||||
self.uar.read()
|
||||
|
@ -495,8 +471,6 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_itemAddChannel_activate {
|
||||
def on_itemAddChannel_activate(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_itemAddChannel_activate called with self.%s" % widget.get_name()
|
||||
ch = Gpodderchannel()
|
||||
ch.entryURL.set_text( "http://")
|
||||
result = ch.requestURL()
|
||||
|
@ -505,8 +479,6 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_itemEditChannel_activate {
|
||||
def on_itemEditChannel_activate(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_itemEditChannel_activate called with self.%s" % widget.get_name()
|
||||
channel = None
|
||||
try:
|
||||
channel = self.channels[self.active_channel]
|
||||
|
@ -516,8 +488,7 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
result = Gpodderchannel().requestURL( channel)
|
||||
if result != channel.url and result != None and result != "" and (result[:4] == "http" or result[:3] == "ftp"):
|
||||
if libgpodder.isDebugging():
|
||||
print 'Changing ID %d from "%s" to "%s"' % (active, channel.url, result)
|
||||
log( 'Changing channel #%d from "%s" to "%s"', active, channel.url, result)
|
||||
self.statusLabel.set_text( _("Fetching channel index..."))
|
||||
channel_new = podcastChannel( result)
|
||||
new_channels = self.channels[0:active]
|
||||
|
@ -535,9 +506,6 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_itemRemoveChannel_activate {
|
||||
def on_itemRemoveChannel_activate(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_itemRemoveChannel_activate called with self.%s" % widget.get_name()
|
||||
|
||||
try:
|
||||
if self.showConfirmation( _("Do you really want to remove this channel?\n\n %s") % self.channels[self.active_channel].title) == False:
|
||||
return
|
||||
|
@ -551,8 +519,6 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_itemExportChannels_activate {
|
||||
def on_itemExportChannels_activate(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_itemExportChannels_activate called with self.%s" % widget.get_name()
|
||||
if len( self.channels) == 0:
|
||||
self.showMessage( _("Your channel list is empty. Nothing to export."))
|
||||
return
|
||||
|
@ -564,8 +530,7 @@ class Gpodder(SimpleGladeApp):
|
|||
foutname = dlg.get_filename()
|
||||
if foutname[-5:] != ".opml" and foutname[-4:] != ".xml":
|
||||
foutname = foutname + ".opml"
|
||||
if libgpodder.isDebugging():
|
||||
print 'Exporting channels list to: %s' % foutname
|
||||
log( 'Exporting channel list to: %s', foutname)
|
||||
w = opmlWriter( foutname)
|
||||
for ch in self.channels:
|
||||
w.addChannel( ch)
|
||||
|
@ -577,8 +542,6 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_itemImportChannels_activate {
|
||||
def on_itemImportChannels_activate(self, widget, *args):
|
||||
if libgpodder.isDebugging:
|
||||
print "on_itemImportChannels_activate called with self.%s" % widget.get_name()
|
||||
opml_lister = Gpodderopmllister()
|
||||
|
||||
gl = gPodderLib()
|
||||
|
@ -589,8 +552,6 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_itemAbout_activate {
|
||||
def on_itemAbout_activate(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_itemAbout_activate called with self.%s" % widget.get_name()
|
||||
dlg = gtk.AboutDialog()
|
||||
dlg.set_name( app_name)
|
||||
dlg.set_version( app_version)
|
||||
|
@ -609,29 +570,22 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_wNotebook_switch_page {
|
||||
def on_wNotebook_switch_page(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_wNotebook_switch_page called with self.%s" % widget.get_name()
|
||||
pass
|
||||
#-- Gpodder.on_wNotebook_switch_page }
|
||||
|
||||
#-- Gpodder.on_comboAvailable_changed {
|
||||
def on_comboAvailable_changed(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_comboAvailable_changed called with self.%s" % widget.get_name()
|
||||
self.active_channel = self.comboAvailable.get_active()
|
||||
self.updateTreeView()
|
||||
#-- Gpodder.on_comboAvailable_changed }
|
||||
|
||||
#-- Gpodder.on_btnEditChannel_clicked {
|
||||
def on_btnEditChannel_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnEditChannel_clicked called with self.%s" % widget.get_name()
|
||||
self.on_itemEditChannel_activate( widget, args)
|
||||
#-- Gpodder.on_btnEditChannel_clicked }
|
||||
|
||||
#-- Gpodder.on_treeAvailable_row_activated {
|
||||
def on_treeAvailable_row_activated(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_treeAvailable_row_activated called with self.%s" % widget.get_name()
|
||||
try:
|
||||
selection = self.treeAvailable.get_selection()
|
||||
selection_tuple = selection.get_selected_rows()
|
||||
|
@ -651,15 +605,11 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_btnDownload_clicked {
|
||||
def on_btnDownload_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnDownload_clicked called with self.%s" % widget.get_name()
|
||||
self.on_treeAvailable_row_activated( widget, args)
|
||||
#-- Gpodder.on_btnDownload_clicked }
|
||||
|
||||
#-- Gpodder.on_btnSelectAllAvailable_clicked {
|
||||
def on_btnSelectAllAvailable_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnSelectAllAvailable_clicked called with self.%s" % widget.get_name()
|
||||
self.treeAvailable.get_selection().select_all()
|
||||
self.on_treeAvailable_row_activated( self.btnDownload, args)
|
||||
self.treeAvailable.get_selection().unselect_all()
|
||||
|
@ -667,13 +617,10 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_treeDownloads_row_activated {
|
||||
def on_treeDownloads_row_activated(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_treeDownloads_row_activated called with self.%s" % widget.get_name()
|
||||
selection = self.treeDownloads.get_selection()
|
||||
selection_tuple = selection.get_selected_rows()
|
||||
if selection.count_selected_rows() == 0:
|
||||
if libgpodder.isDebugging():
|
||||
print "will not cancel any download. reason: nothing selected."
|
||||
log( 'Nothing selected to cancel.')
|
||||
return
|
||||
|
||||
if selection.count_selected_rows() == 1:
|
||||
|
@ -688,21 +635,16 @@ class Gpodder(SimpleGladeApp):
|
|||
url = self.download_status_manager.get_url_by_iter( selection_iter)
|
||||
self.download_status_manager.cancel_by_url( url)
|
||||
except:
|
||||
if libgpodder.isDebugging():
|
||||
print "error while cancelling downloads"
|
||||
log( 'Error while cancelling downloads.')
|
||||
#-- Gpodder.on_treeDownloads_row_activated }
|
||||
|
||||
#-- Gpodder.on_btnCancelDownloadStatus_clicked {
|
||||
def on_btnCancelDownloadStatus_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnCancelDownloadStatus_clicked called with self.%s" % widget.get_name()
|
||||
self.on_treeDownloads_row_activated( widget, None)
|
||||
#-- Gpodder.on_btnCancelDownloadStatus_clicked }
|
||||
|
||||
#-- Gpodder.on_btnCancelAll_clicked {
|
||||
def on_btnCancelAll_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnCancelAll_clicked called with self.%s" % widget.get_name()
|
||||
self.treeDownloads.get_selection().select_all()
|
||||
self.on_treeDownloads_row_activated( self.btnCancelDownloadStatus, None)
|
||||
self.treeDownloads.get_selection().unselect_all()
|
||||
|
@ -710,8 +652,6 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_comboDownloaded_changed {
|
||||
def on_comboDownloaded_changed(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_comboDownloaded_changed called with self.%s" % widget.get_name()
|
||||
self.active_downloaded_channels = self.comboDownloaded.get_active()
|
||||
try:
|
||||
filename = self.get_current_channel_downloaded()
|
||||
|
@ -724,8 +664,6 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_treeDownloaded_row_activated {
|
||||
def on_treeDownloaded_row_activated(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_treeDownloaded_row_activated called with self.%s" % widget.get_name()
|
||||
try:
|
||||
channel_filename = self.get_current_channel_downloaded()
|
||||
|
||||
|
@ -753,24 +691,18 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
#-- Gpodder.on_btnDownloadedExecute_clicked {
|
||||
def on_btnDownloadedExecute_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnDownloadedExecute_clicked called with self.%s" % widget.get_name()
|
||||
self.on_treeDownloaded_row_activated( widget, args)
|
||||
#-- Gpodder.on_btnDownloadedExecute_clicked }
|
||||
|
||||
#-- Gpodder.on_btnDownloadedDelete_clicked {
|
||||
def on_btnDownloadedDelete_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnDownloadedDelete_clicked called with self.%s" % widget.get_name()
|
||||
|
||||
channel_filename = self.get_current_channel_downloaded()
|
||||
selection = self.treeDownloaded.get_selection()
|
||||
selection_tuple = selection.get_selected_rows()
|
||||
model = self.treeDownloaded.get_model()
|
||||
|
||||
if selection.count_selected_rows() == 0:
|
||||
if libgpodder.isDebugging():
|
||||
print "will not remove any episode reason: nothing selected."
|
||||
log( 'Nothing selected - will not remove any downloaded episode.')
|
||||
return
|
||||
|
||||
if selection.count_selected_rows() == 1:
|
||||
|
@ -796,14 +728,11 @@ class Gpodder(SimpleGladeApp):
|
|||
self.updateComboBox()
|
||||
self.updateDownloadedComboBox()
|
||||
except:
|
||||
if libgpodder.isDebugging():
|
||||
print "error while deleting (some) downloads"
|
||||
log( 'Error while deleting (some) downloads.')
|
||||
#-- Gpodder.on_btnDownloadedDelete_clicked }
|
||||
|
||||
#-- Gpodder.on_btnDeleteAll_clicked {
|
||||
def on_btnDeleteAll_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnDeleteAll_clicked called with self.%s" % widget.get_name()
|
||||
self.treeDownloaded.get_selection().select_all()
|
||||
self.on_btnDownloadedDelete_clicked( widget, args)
|
||||
self.treeDownloaded.get_selection().unselect_all()
|
||||
|
@ -827,8 +756,7 @@ class Gpodderchannel(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderchannel.new {
|
||||
def new(self):
|
||||
if libgpodder.isDebugging():
|
||||
print "A new %s has been created" % self.__class__.__name__
|
||||
pass
|
||||
#-- Gpodderchannel.new }
|
||||
|
||||
#-- Gpodderchannel custom methods {
|
||||
|
@ -872,22 +800,16 @@ class Gpodderchannel(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderchannel.on_gPodderChannel_destroy {
|
||||
def on_gPodderChannel_destroy(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_gPodderChannel_destroy called with self.%s" % widget.get_name()
|
||||
self.result = False
|
||||
#-- Gpodderchannel.on_gPodderChannel_destroy }
|
||||
|
||||
#-- Gpodderchannel.on_cbMusicChannel_toggled {
|
||||
def on_cbMusicChannel_toggled(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_cbMusicChannel_toggled called with self.%s" % widget.get_name()
|
||||
self.musicPlaylist.set_sensitive( self.cbMusicChannel.get_active())
|
||||
#-- Gpodderchannel.on_cbMusicChannel_toggled }
|
||||
|
||||
#-- Gpodderchannel.on_btnOK_clicked {
|
||||
def on_btnOK_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnOK_clicked called with self.%s" % widget.get_name()
|
||||
self.url = self.entryURL.get_text()
|
||||
self.gPodderChannel.destroy()
|
||||
self.result = True
|
||||
|
@ -898,8 +820,6 @@ class Gpodderchannel(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderchannel.on_btnCancel_clicked {
|
||||
def on_btnCancel_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnCancel_clicked called with self.%s" % widget.get_name()
|
||||
self.gPodderChannel.destroy()
|
||||
self.result = False
|
||||
|
||||
|
@ -917,8 +837,6 @@ class Gpodderproperties(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderproperties.new {
|
||||
def new(self):
|
||||
if libgpodder.isDebugging():
|
||||
print "A new %s has been created" % self.__class__.__name__
|
||||
gl = gPodderLib()
|
||||
self.httpProxy.set_text( gl.http_proxy)
|
||||
self.ftpProxy.set_text( gl.ftp_proxy)
|
||||
|
@ -972,17 +890,12 @@ class Gpodderproperties(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderproperties.on_gPodderProperties_destroy {
|
||||
def on_gPodderProperties_destroy(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_gPodderProperties_destroy called with self.%s" % widget.get_name()
|
||||
if self.on_close != None:
|
||||
self.on_close()
|
||||
#-- Gpodderproperties.on_gPodderProperties_destroy }
|
||||
|
||||
#-- Gpodderproperties.on_comboPlayerApp_changed {
|
||||
def on_comboPlayerApp_changed(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_comboPlayerApp_changed called with self.%s" % widget.get_name()
|
||||
|
||||
# find out which one
|
||||
iter = self.comboPlayerApp.get_active_iter()
|
||||
model = self.comboPlayerApp.get_model()
|
||||
|
@ -1000,8 +913,6 @@ class Gpodderproperties(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderproperties.on_cbEnvironmentVariables_toggled {
|
||||
def on_cbEnvironmentVariables_toggled(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_cbEnvironmentVariables_toggled called with self.%s" % widget.get_name()
|
||||
sens = not self.cbEnvironmentVariables.get_active()
|
||||
self.httpProxy.set_sensitive( sens)
|
||||
self.ftpProxy.set_sensitive( sens)
|
||||
|
@ -1009,8 +920,6 @@ class Gpodderproperties(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderproperties.on_btnOK_clicked {
|
||||
def on_btnOK_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnOK_clicked called with self.%s" % widget.get_name()
|
||||
gl = gPodderLib()
|
||||
gl.http_proxy = self.httpProxy.get_text()
|
||||
gl.ftp_proxy = self.ftpProxy.get_text()
|
||||
|
@ -1030,8 +939,6 @@ class Gpodderproperties(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderproperties.on_btnCancel_clicked {
|
||||
def on_btnCancel_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnCancel_clicked called with self.%s" % widget.get_name()
|
||||
self.gPodderProperties.destroy()
|
||||
#-- Gpodderproperties.on_btnCancel_clicked }
|
||||
|
||||
|
@ -1045,8 +952,7 @@ class Gpodderepisode(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderepisode.new {
|
||||
def new(self):
|
||||
if libgpodder.isDebugging():
|
||||
print "A new %s has been created" % self.__class__.__name__
|
||||
pass
|
||||
#-- Gpodderepisode.new }
|
||||
|
||||
#-- Gpodderepisode custom methods {
|
||||
|
@ -1072,16 +978,11 @@ class Gpodderepisode(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderepisode.on_btnCloseWindow_clicked {
|
||||
def on_btnCloseWindow_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnCloseWindow_clicked called with self.%s" % widget.get_name()
|
||||
self.gPodderEpisode.destroy()
|
||||
#-- Gpodderepisode.on_btnCloseWindow_clicked }
|
||||
|
||||
#-- Gpodderepisode.on_btnDownload_clicked {
|
||||
def on_btnDownload_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnDownload_clicked called with self.%s" % widget.get_name()
|
||||
|
||||
# if we have a callback, .. well.. call it back! ;)
|
||||
if self.download_callback != None:
|
||||
self.download_callback()
|
||||
|
@ -1101,8 +1002,6 @@ class Gpoddersync(SimpleGladeApp):
|
|||
#-- Gpoddersync.new {
|
||||
def new(self):
|
||||
global artwork_dir
|
||||
if libgpodder.isDebugging():
|
||||
print "A new %s has been created" % self.__class__.__name__
|
||||
self.imageSyncServer.set_from_file( artwork_dir + 'computer.png')
|
||||
self.imageSyncAnimation.set_from_file( artwork_dir + 'sync-anim.gif')
|
||||
self.imageSyncClient.set_from_file( artwork_dir + 'ipod-mini.png')
|
||||
|
@ -1130,8 +1029,7 @@ class Gpoddersync(SimpleGladeApp):
|
|||
|
||||
#-- Gpoddersync.on_gPodderSync_destroy {
|
||||
def on_gPodderSync_destroy(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_gPodderSync_destroy called with self.%s" % widget.get_name()
|
||||
pass
|
||||
#-- Gpoddersync.on_gPodderSync_destroy }
|
||||
|
||||
|
||||
|
@ -1145,9 +1043,6 @@ class Gpodderopmllister(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderopmllister.new {
|
||||
def new(self):
|
||||
if libgpodder.isDebugging():
|
||||
print "A new %s has been created" % self.__class__.__name__
|
||||
|
||||
# initiate channels list
|
||||
self.channels = []
|
||||
self.callback_for_channel = None
|
||||
|
@ -1178,8 +1073,7 @@ class Gpodderopmllister(SimpleGladeApp):
|
|||
else:
|
||||
self.channels.remove( url)
|
||||
|
||||
if libgpodder.isDebugging():
|
||||
print url
|
||||
log( 'Edited: %s', url)
|
||||
|
||||
def get_channels_from_url( self, url, callback):
|
||||
reader = opmlReader()
|
||||
|
@ -1190,14 +1084,11 @@ class Gpodderopmllister(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderopmllister.on_gPodderOpmlLister_destroy {
|
||||
def on_gPodderOpmlLister_destroy(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_gPodderOpmlLister_destroy called with self.%s" % widget.get_name()
|
||||
pass
|
||||
#-- Gpodderopmllister.on_gPodderOpmlLister_destroy }
|
||||
|
||||
#-- Gpodderopmllister.on_btnOK_clicked {
|
||||
def on_btnOK_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnOK_clicked called with self.%s" % widget.get_name()
|
||||
self.gPodderOpmlLister.destroy()
|
||||
# add channels that have been selected
|
||||
for url in self.channels:
|
||||
|
@ -1207,8 +1098,6 @@ class Gpodderopmllister(SimpleGladeApp):
|
|||
|
||||
#-- Gpodderopmllister.on_btnCancel_clicked {
|
||||
def on_btnCancel_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnCancel_clicked called with self.%s" % widget.get_name()
|
||||
self.gPodderOpmlLister.destroy()
|
||||
#-- Gpodderopmllister.on_btnCancel_clicked }
|
||||
|
||||
|
|
|
@ -52,6 +52,7 @@ from stat import ST_MODE
|
|||
from librssreader import rssReader
|
||||
from libpodcasts import podcastChannel
|
||||
from libplayers import dotdesktop_command
|
||||
from liblogger import log
|
||||
|
||||
from gtk.gdk import PixbufLoader
|
||||
|
||||
|
@ -59,10 +60,6 @@ from ConfigParser import ConfigParser
|
|||
|
||||
from xml.sax import saxutils
|
||||
|
||||
# global debugging variable, set to False on release
|
||||
# TODO: while developing a new version, set this to "True"
|
||||
debugging = True
|
||||
|
||||
# global recursive lock for thread exclusion
|
||||
globalLock = threading.RLock()
|
||||
|
||||
|
@ -72,9 +69,6 @@ g_podder_lib = None
|
|||
# default url to use for opml directory on the web
|
||||
default_opml_directory = 'http://share.opml.org/opml/topPodcasts.opml'
|
||||
|
||||
def isDebugging():
|
||||
return debugging
|
||||
|
||||
def getLock():
|
||||
globalLock.acquire()
|
||||
|
||||
|
@ -125,8 +119,7 @@ class gPodderLibClass( object):
|
|||
makedirs( path)
|
||||
return True
|
||||
except:
|
||||
if isDebugging():
|
||||
print 'createIfNecessary: could not create: %s' % ( path )
|
||||
log( 'Could not create %s', path)
|
||||
return False
|
||||
|
||||
return True
|
||||
|
@ -163,8 +156,7 @@ class gPodderLibClass( object):
|
|||
def get_from_parser( self, parser, option, default = ''):
|
||||
try:
|
||||
result = parser.get( self.gpodderconf_section, option)
|
||||
if isDebugging():
|
||||
print "get_from_parser( %s) = %s" % ( option, result )
|
||||
log( 'Option "%s" is set to "%s"', option, result)
|
||||
return result
|
||||
except:
|
||||
return default
|
||||
|
@ -182,16 +174,14 @@ class gPodderLibClass( object):
|
|||
try:
|
||||
parser.set( self.gpodderconf_section, option, str(value))
|
||||
except:
|
||||
if isDebugging():
|
||||
print 'write_to_parser: could not write config (option=%s, value=%s' % (option, value)
|
||||
log( 'write_to_parser: could not write config (option=%s, value=%s)', option, value)
|
||||
|
||||
def loadConfig( self):
|
||||
was_oldstyle = False
|
||||
try:
|
||||
fn = self.getConfigFilename()
|
||||
if open(fn,'r').read(1) != '[':
|
||||
if isDebugging():
|
||||
print 'seems like old-style config. trying to read it anyways..'
|
||||
log( 'seems like old-style config. trying to read it anyways..')
|
||||
fp = open( fn, 'r')
|
||||
http = fp.readline()
|
||||
ftp = fp.readline()
|
||||
|
@ -210,8 +200,7 @@ class gPodderLibClass( object):
|
|||
self.ipod_mount = self.get_from_parser( parser, 'ipod_mount', '/media/ipod/')
|
||||
self.update_on_startup = self.get_boolean_from_parser(parser, 'update_on_startup', default=False)
|
||||
else:
|
||||
if isDebugging():
|
||||
print "config file %s has no section %s" % (fn, gpodderconf_section)
|
||||
log( 'config file %s has no section %s', fn, gpodderconf_section)
|
||||
if not self.proxy_use_environment:
|
||||
self.http_proxy = strip( http)
|
||||
self.ftp_proxy = strip( ftp)
|
||||
|
@ -232,8 +221,7 @@ class gPodderLibClass( object):
|
|||
self.saveConfig()
|
||||
|
||||
def openFilename( self, filename):
|
||||
if isDebugging():
|
||||
print 'open %s with %s' % ( filename, self.open_app )
|
||||
log( 'Opening %s (with %s)', filename, self.open_app)
|
||||
|
||||
# use libplayers to create a commandline out of open_app plus filename, then exec in background ('&')
|
||||
system( '%s &' % dotdesktop_command( self.open_app, filename))
|
||||
|
@ -243,16 +231,12 @@ class gPodderLibClass( object):
|
|||
return exists( symlink_path)
|
||||
|
||||
def createDesktopSymlink( self):
|
||||
if isDebugging():
|
||||
print "createDesktopSymlink requested"
|
||||
if not self.getDesktopSymlink():
|
||||
downloads_path = expanduser( "~/Desktop/")
|
||||
self.createIfNecessary( downloads_path)
|
||||
symlink( self.downloaddir, "%s%s" % (downloads_path, self.desktop_link))
|
||||
|
||||
def removeDesktopSymlink( self):
|
||||
if isDebugging():
|
||||
print "removeDesktopSymlink requested"
|
||||
if self.getDesktopSymlink():
|
||||
unlink( expanduser( "~/Desktop/%s" % self.desktop_link))
|
||||
|
||||
|
@ -262,20 +246,17 @@ class gPodderLibClass( object):
|
|||
pixbuf = PixbufLoader()
|
||||
|
||||
if cover_file == None:
|
||||
if isDebugging():
|
||||
print "directly downloading %s" % url
|
||||
log( 'Downloading %s', url)
|
||||
pixbuf.write( urllib.urlopen(url).read())
|
||||
|
||||
if cover_file != None and not exists( cover_file):
|
||||
if isDebugging():
|
||||
print "downloading cover to %s" % cover_file
|
||||
log( 'Downloading cover to %s', cover_file)
|
||||
cachefile = open( cover_file, "w")
|
||||
cachefile.write( urllib.urlopen(url).read())
|
||||
cachefile.close()
|
||||
|
||||
if cover_file != None:
|
||||
if isDebugging():
|
||||
print "reading cover from %s" % cover_file
|
||||
log( 'Reading cover from %s', cover_file)
|
||||
pixbuf.write( open( cover_file, "r").read())
|
||||
|
||||
try:
|
||||
|
@ -297,8 +278,7 @@ class gPodderLibClass( object):
|
|||
thread.start()
|
||||
|
||||
def deleteFilename( self, filename):
|
||||
if isDebugging():
|
||||
print "deleteFilename: " + filename
|
||||
log( 'deleteFilename: %s', filename)
|
||||
try:
|
||||
unlink( filename)
|
||||
except:
|
||||
|
@ -358,18 +338,17 @@ class gPodderChannelReader( DefaultHandler):
|
|||
callback_proc( position, channel_count)
|
||||
|
||||
cachefile = channel.downloadRss(force_update)
|
||||
log( 'cachefile for %s is %s', channel.url, cachefile)
|
||||
# check if download was a success
|
||||
if cachefile != None:
|
||||
reader.parseXML(channel.url, cachefile)
|
||||
if channel.filename != '__unknown__':
|
||||
proposed_filename = channel.filename
|
||||
if isDebugging():
|
||||
print 'First proposed fn: %s' % ( proposed_filename )
|
||||
log( 'First proposed fn: %s', proposed_filename)
|
||||
i = 2
|
||||
while self.channel_filename_exists( channel.url, proposed_filename):
|
||||
proposed_filename = '%s%d' % ( channel.filename, i )
|
||||
if isDebugging():
|
||||
print 'New proposed fn: %s' % ( proposed_filename )
|
||||
log( 'New proposed fn: %s', proposed_filename)
|
||||
i = i+1
|
||||
reader.channel.filename = proposed_filename
|
||||
input_channels.append( reader.channel)
|
||||
|
|
|
@ -42,7 +42,8 @@ import sys
|
|||
import time
|
||||
import email.Utils
|
||||
|
||||
import libgpodder
|
||||
from liblogger import log
|
||||
|
||||
import liblocaldb
|
||||
import libpodcasts
|
||||
|
||||
|
@ -69,8 +70,7 @@ class gPodder_iPodSync(object):
|
|||
|
||||
def __init__( self, ipod_mount = '/media/ipod/', callback_progress = None, callback_status = None, callback_done = None):
|
||||
if not ipod_supported():
|
||||
if libgpodder.isDebugging():
|
||||
print '(ipodsync) iPod functions not supported. (libgpod + eyed3 needed)'
|
||||
log( '(ipodsync) iPod functions not supported. (libgpod + eyed3 needed)')
|
||||
self.ipod_mount = ipod_mount
|
||||
self.callback_progress = callback_progress
|
||||
self.callback_status = callback_status
|
||||
|
@ -107,8 +107,7 @@ class gPodder_iPodSync(object):
|
|||
def remove_from_ipod( self, track, playlists):
|
||||
if not ipod_supported():
|
||||
return False
|
||||
if libgpodder.isDebugging():
|
||||
print '(ipodsync) REMOVING FROM IPOD!! track: %s' % track.title
|
||||
log( '(ipodsync) Removing track from iPod: %s', track.title)
|
||||
if self.callback_status != None:
|
||||
gobject.idle_add( self.callback_status, track.title, track.artist)
|
||||
fname = gpod.itdb_filename_on_ipod( track)
|
||||
|
@ -130,13 +129,10 @@ class gPodder_iPodSync(object):
|
|||
return False
|
||||
for playlist in gpod.sw_get_playlists( self.itdb):
|
||||
if playlist.name == playlistname:
|
||||
if libgpodder.isDebugging():
|
||||
print "(ipodsync) found old playlist: %s" % (playlist.name)
|
||||
log( '(ipodsync) Found old playlist: %s', playlist.name)
|
||||
return playlist
|
||||
|
||||
# if we arrive here: gpodder playlist not found!
|
||||
if libgpodder.isDebugging():
|
||||
print "creating new playlist: %s" % (playlistname)
|
||||
log( '(ipodsync) New playlist: %s', playlistname)
|
||||
new_playlist = gpod.itdb_playlist_new( str(playlistname), False)
|
||||
gpod.itdb_playlist_add( self.itdb, new_playlist, -1)
|
||||
return new_playlist
|
||||
|
@ -152,8 +148,7 @@ class gPodder_iPodSync(object):
|
|||
return False
|
||||
for track in gpod.sw_get_playlist_tracks( self.get_playlist_for_channel( channel)):
|
||||
if episode.title == track.title and channel.title == track.album:
|
||||
if libgpodder.isDebugging():
|
||||
print '(ipodsync) Already on iPod: %s (from %s)' % (episode.title, track.title)
|
||||
log( '(ipodsync) Already on iPod: %s (from %s)', episode.title, track.title)
|
||||
return True
|
||||
|
||||
return False
|
||||
|
@ -162,8 +157,7 @@ class gPodder_iPodSync(object):
|
|||
if not ipod_supported():
|
||||
return False
|
||||
for track in gpod.sw_get_playlist_tracks( self.pl_podcasts):
|
||||
if libgpodder.isDebugging():
|
||||
print '(ipodsync) trying to remove track %s' % track.title
|
||||
log( '(ipodsync) Trying to remove: %s', track.title)
|
||||
self.remove_from_ipod( track, [ self.pl_podcasts ])
|
||||
|
||||
def copy_channel_to_ipod( self, channel):
|
||||
|
@ -194,8 +188,7 @@ class gPodder_iPodSync(object):
|
|||
track.flag3 = 0x01
|
||||
track.flag4 = 0x01
|
||||
except:
|
||||
if libgpodder.isDebugging():
|
||||
print '(ipodsync) Seems like your python-gpod is out-of-date.'
|
||||
log( '(ipodsync) Seems like your python-gpod is out-of-date.')
|
||||
pass
|
||||
|
||||
def add_episode_from_channel( self, channel, episode):
|
||||
|
@ -211,8 +204,7 @@ class gPodder_iPodSync(object):
|
|||
# episode is already here :)
|
||||
return True
|
||||
|
||||
if libgpodder.isDebugging():
|
||||
print '(ipodsync) Adding item: %s from %s' % (episode.title, channel.title)
|
||||
log( '(ipodsync) Adding item: %s from %s', episode.title, channel.title)
|
||||
local_filename = str(channel.getPodcastFilename( episode.url))
|
||||
try:
|
||||
eyed3_info = eyeD3.Mp3AudioFile( local_filename)
|
||||
|
@ -264,15 +256,12 @@ class gPodder_iPodSync(object):
|
|||
gpod.itdb_playlist_add_track( self.pl_master, track, -1)
|
||||
|
||||
if gpod.itdb_cp_track_to_ipod( track, local_filename, None) != 1:
|
||||
if libgpodder.isDebugging():
|
||||
print '(ipodsync) could not add track: %s' % episode.title
|
||||
log( '(ipodsync) Could not add %s', episode.title)
|
||||
else:
|
||||
if libgpodder.isDebugging():
|
||||
print '(ipodsync) success for %s :)' % episode.title
|
||||
log( '(ipodsync) Added %s', episode.title)
|
||||
|
||||
try:
|
||||
os.system('sync')
|
||||
except:
|
||||
# silently ignore :)
|
||||
pass
|
||||
|
||||
|
|
|
@ -28,10 +28,10 @@
|
|||
|
||||
import gtk
|
||||
import gobject
|
||||
import libgpodder
|
||||
|
||||
from liblocdbreader import readLocalDB
|
||||
from libgpodder import gPodderLib
|
||||
from liblogger import log
|
||||
|
||||
from os import listdir
|
||||
from os import sep
|
||||
|
@ -39,16 +39,13 @@ from os.path import isfile
|
|||
|
||||
class localDB( object):
|
||||
def __init__( self):
|
||||
if libgpodder.isDebugging():
|
||||
print "created new localDB object"
|
||||
self.channel_list = None
|
||||
self.local_db_cache = {}
|
||||
|
||||
def getDownloadedChannelsList( self):
|
||||
# do not re-read downloaded channels list
|
||||
if self.channel_list != None:
|
||||
if libgpodder.isDebugging():
|
||||
print "(localDB) using cached downloaded channels list"
|
||||
log( '(localDB) using cached downloaded channels list')
|
||||
return self.channel_list
|
||||
|
||||
self.channel_list = []
|
||||
|
@ -74,8 +71,7 @@ class localDB( object):
|
|||
new_model = gtk.ListStore( gobject.TYPE_STRING, gobject.TYPE_STRING)
|
||||
|
||||
for channel in self.getDownloadedChannelsList():
|
||||
if libgpodder.isDebugging():
|
||||
print "(getmodel) " + channel.title
|
||||
log( 'Getting ListStore for %s', channel.title)
|
||||
new_iter = new_model.append()
|
||||
new_model.set( new_iter, 0, channel.url)
|
||||
new_model.set( new_iter, 1, channel.title)
|
||||
|
|
|
@ -35,6 +35,8 @@ from string import strip
|
|||
import libpodcasts
|
||||
import libgpodder
|
||||
|
||||
from liblogger import log
|
||||
|
||||
class rssLocDBErrorHandler( ErrorHandler):
|
||||
def __init__( self):
|
||||
None
|
||||
|
@ -83,8 +85,7 @@ class readLocalDB( DefaultHandler):
|
|||
if attrs.get('music', 'false').lower() == 'true':
|
||||
self.channel.is_music_channel = True
|
||||
if attrs.get('nosync', 'false').lower() == 'true':
|
||||
if libgpodder.isDebugging():
|
||||
print 'local channel does not want to be synced: %s' % self.channel.title
|
||||
log( 'iPod sync deactivated for %s', self.channel.title)
|
||||
self.channel.sync_to_devices = False
|
||||
|
||||
def endElement( self, name):
|
||||
|
@ -119,9 +120,6 @@ class readLocalDB( DefaultHandler):
|
|||
self.current_item.pubDate = self.current_element_data
|
||||
if name == "item":
|
||||
self.channel.addItem( self.current_item)
|
||||
# this produces lots of output and works ATM, so output disabled
|
||||
if libgpodder.isDebugging() and False:
|
||||
print "importing local db channel: " + self.current_item.url
|
||||
self.current_item = None
|
||||
|
||||
def characters( self, ch):
|
||||
|
|
37
src/gpodder/liblogger.py
Normal file
37
src/gpodder/liblogger.py
Normal file
|
@ -0,0 +1,37 @@
|
|||
|
||||
|
||||
#
|
||||
# gPodder (a media aggregator / podcast client)
|
||||
# Copyright (C) 2005-2006 Thomas Perl <thp at perli.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
# MA 02110-1301, USA.
|
||||
#
|
||||
|
||||
#
|
||||
# liblogger.py -- gPodder logging facility
|
||||
# Thomas Perl <thp perli net> 20061117
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
|
||||
write_to_stdout = True
|
||||
|
||||
|
||||
def log( message, *args):
|
||||
if write_to_stdout:
|
||||
print message % args
|
||||
|
|
@ -41,7 +41,7 @@ from gtk import ListStore
|
|||
from gtk.gdk import pixbuf_new_from_file_at_size
|
||||
from gtk.gdk import Pixbuf
|
||||
|
||||
import libgpodder
|
||||
from liblogger import log
|
||||
|
||||
# where are the .desktop files located?
|
||||
userappsdirs = [ '/usr/share/applications/', '/usr/local/share/applications/' ]
|
||||
|
@ -95,8 +95,7 @@ class UserAppsReader(object):
|
|||
app_mime = parser.get( sect, 'MimeType')
|
||||
app_icon = parser.get( sect, 'Icon')
|
||||
if app_mime.find( 'audio/') != -1:
|
||||
if libgpodder.isDebugging():
|
||||
print "found app in " + dir + filename + " ("+app_name+")"
|
||||
log( 'Player found: %s (%s in %s)', app_name, filename, dir)
|
||||
self.apps.append( UserApplication( app_name, app_cmd, app_mime, app_icon))
|
||||
except:
|
||||
return
|
||||
|
|
|
@ -30,6 +30,7 @@ import gtk
|
|||
import gobject
|
||||
import htmlentitydefs
|
||||
|
||||
from liblogger import log
|
||||
import libgpodder
|
||||
|
||||
from os.path import exists
|
||||
|
@ -120,12 +121,10 @@ class podcastChannel(ListType):
|
|||
try:
|
||||
writeLocalDB( self.index_file, channel)
|
||||
except:
|
||||
if libgpodder.isDebugging():
|
||||
print 'Cannot save localDB channel in set_localdb_channel( %s)' % channel.title
|
||||
log( 'Cannot save channel in set_localdb_channel( %s)', channel.title)
|
||||
|
||||
def set_metadata_from_localdb( self):
|
||||
if libgpodder.isDebugging():
|
||||
print 'Reading metadata from localdb: %s' % self.index_file
|
||||
log( 'Reading metadata from database: %s', self.index_file)
|
||||
libgpodder.getLock()
|
||||
ch = self.get_localdb_channel()
|
||||
if ch != None:
|
||||
|
@ -133,8 +132,7 @@ class podcastChannel(ListType):
|
|||
libgpodder.releaseLock()
|
||||
|
||||
def save_metadata_to_localdb( self):
|
||||
if libgpodder.isDebugging():
|
||||
print 'Saving metadata to localdb: %s' % self.index_file
|
||||
log( 'Saving metadata to database: %s', self.index_file)
|
||||
libgpodder.getLock()
|
||||
ch = self.get_localdb_channel()
|
||||
if ch != None:
|
||||
|
@ -152,8 +150,7 @@ class podcastChannel(ListType):
|
|||
# no multithreaded access
|
||||
libgpodder.getLock()
|
||||
localdb = self.index_file
|
||||
if libgpodder.isDebugging():
|
||||
print "localdb: " + localdb
|
||||
log( 'Local database: %s', localdb)
|
||||
|
||||
self.downloaded = self.get_localdb_channel()
|
||||
|
||||
|
@ -168,8 +165,7 @@ class podcastChannel(ListType):
|
|||
if not already_in_list:
|
||||
self.downloaded.append( item)
|
||||
else:
|
||||
if libgpodder.isDebugging():
|
||||
print "no need to re-add already added podcast item to localDB"
|
||||
log( 'Podcast episode already downloaded.')
|
||||
|
||||
writeLocalDB( localdb, self.downloaded)
|
||||
libgpodder.releaseLock()
|
||||
|
@ -214,7 +210,6 @@ class podcastChannel(ListType):
|
|||
return -1
|
||||
|
||||
def downloadRss( self, force_update = True):
|
||||
|
||||
if (self.filename == "__unknown__" or exists( self.cache_file) == False) or force_update:
|
||||
# remove old cache file
|
||||
libgpodder.gPodderLib().deleteFilename( self.cache_file)
|
||||
|
@ -258,9 +253,6 @@ class podcastChannel(ListType):
|
|||
self.reset_download_dir()
|
||||
return False
|
||||
return True
|
||||
# the following disabled at the moment..
|
||||
#if libgpodder.isDebugging():
|
||||
# print "set_download_dir: ", self, self.__download_dir
|
||||
|
||||
download_dir = property (fget=get_download_dir,
|
||||
fset=set_download_dir)
|
||||
|
@ -294,10 +286,10 @@ class podcastChannel(ListType):
|
|||
legacy_location = self.save_dir + filename
|
||||
new_location = self.save_dir + md5.new(url).hexdigest() + extension
|
||||
|
||||
# this supports legacy podcast locations, should be removed at some point (or move files from old location to new location)
|
||||
# this supports legacy podcast locations, should be removed at
|
||||
# some point (or move files from old location to new location)
|
||||
if exists( legacy_location):
|
||||
if libgpodder.isDebugging():
|
||||
print "(gpodder < 0.7 compat) using old filename scheme for already downloaded podcast."
|
||||
log( '(gpodder < 0.7 compat) Using old filename scheme for already downloaded podcast.')
|
||||
return legacy_location
|
||||
else:
|
||||
return new_location
|
||||
|
@ -306,14 +298,12 @@ class podcastChannel(ListType):
|
|||
return exists( self.getPodcastFilename( url))
|
||||
|
||||
def deleteDownloadedItemByUrlAndTitle(self, url, title):
|
||||
if libgpodder.isDebugging():
|
||||
print "deleteDownloadedItemByUrlAndTitle: " + title + " (" + url + ")"
|
||||
log( 'Delete %s (%s)', title, url)
|
||||
# no multithreaded access
|
||||
libgpodder.getLock()
|
||||
nr_items = 0
|
||||
nr_items = 0
|
||||
localdb = self.index_file
|
||||
if libgpodder.isDebugging():
|
||||
print "localdb: " + localdb
|
||||
log( 'Local database: %s', localdb)
|
||||
try:
|
||||
locdb_reader = readLocalDB()
|
||||
locdb_reader.parseXML( localdb)
|
||||
|
@ -324,8 +314,7 @@ class podcastChannel(ListType):
|
|||
self.downloaded.remove(item)
|
||||
except:
|
||||
print _("No LocalDB found or error in existing LocalDB.")
|
||||
if libgpodder.isDebugging():
|
||||
print " found", nr_items, "matching item(s)"
|
||||
log( 'Found %d matching item(s).', nr_items)
|
||||
if nr_items > 0:
|
||||
writeLocalDB( localdb, self.downloaded)
|
||||
libgpodder.releaseLock()
|
||||
|
|
|
@ -34,7 +34,7 @@ from threading import Thread
|
|||
from threading import Lock
|
||||
from shutil import move
|
||||
|
||||
import libgpodder
|
||||
from liblogger import log
|
||||
import signal
|
||||
|
||||
import popen2
|
||||
|
@ -98,8 +98,7 @@ class downloadThread( object):
|
|||
|
||||
def thread_function( self):
|
||||
command = "wget \"" + self.url + "\" -O \"" + self.tempname + "\""
|
||||
if libgpodder.isDebugging():
|
||||
print command
|
||||
log( 'Command: %s', command)
|
||||
process = popen2.Popen3( command, True)
|
||||
|
||||
self.pid = process.pid
|
||||
|
@ -107,9 +106,8 @@ class downloadThread( object):
|
|||
|
||||
while process.poll() == -1 and self.is_cancelled == False:
|
||||
msg = stderr.readline( 80)
|
||||
if libgpodder.isDebugging():
|
||||
print msg
|
||||
msg = msg.strip()
|
||||
log( 'wget> %s', msg)
|
||||
|
||||
if msg.find("%") != -1:
|
||||
try:
|
||||
|
@ -136,8 +134,7 @@ class downloadThread( object):
|
|||
# self.statusmgr
|
||||
|
||||
if self.result == 0 and self.channelitem != None and self.item != None:
|
||||
if libgpodder.isDebugging():
|
||||
print "downloadThread finished: adding downloaded item to downloaded list"
|
||||
log( 'Download thread finished: Adding downloaded item to local database')
|
||||
self.channelitem.addDownloadedItem( self.item)
|
||||
|
||||
# if we have received a localDB, clear its cache
|
||||
|
|
Loading…
Reference in a new issue