GTKHTML2 is deprecated, and WebKitGTK+ is now
packaged in many distros, so we can easily add
this (optional) dependency for the Desktop
version of gPodder.
The menu "additional components" lists a missing module "bluetooth".
This is only resolved after installing pybluez, however, according to
the documentation, only bluetooth-sendto is needed, no special python
module.
The following command has been used:
grep -r '2005-2009 Thomas Perl and the gPodder Team' * | cut -d: -f1 |
xargs sed -i -e 's/2005-2009 Thomas Perl and the gPodder Team/2005-2010
Thomas Perl and the gPodder Team/g'
Remove the GTK+ dependency in gpodder.youtube by making the
only function that is in there fake a opml.Importer-like object,
so we can use the model from gpodder.gtkui.opml to display the
results instead of generating the model inside gpodder.youtube.
Some modules are still left that need some more refactoring.
These are: gui.py and libpodcasts.py.
All other modules now have their dependency on gPodderLib or
the config object (almost all really just depend on the config
object) injected instead of accessing a global variable.
Updating tags of files should be done in the post-download
hook, this makes gPodder a bit slimmer. If we wanted the
tag update functionality, we should utilize a proper library
that is able to update tags for all media files (mutagen?).
when the download directory cannot be written to,
an error message is shown. This can help users spot
a configuration error where the download dir is set
to a folder that does not exist or is not writable
by the user.
Do not install gettext globally, but have a gettext
function in the gpodder module and import it from all
dependent modules.
Remove the --local command line option and instead
automatically detect if the gpodder script is called
from a source folder (determined by the existence of
"src" and "data" in the parent folder and by the fact
that prefix does not start with '/usr').
Clean up setup.py and use metadata from the module.
Cancelled and failed downloads should have their
partial download files removed when gPodder is
closed, while all other (non-finished) files should
be paused to be resumed in the next session.
This lets us get rid of global state and also makes the
code more readable and less interdependent, and allows
us to more easily refactor code in the future.
Obviously, this still breaks some things that need
re-thinking - these parts have been marked with FIXMEs.
In the DownloadStatusManager, use symbolic names
from the DownloadTask class, so as to not duplicate
code and to always pick the right icon, even when
the status IDs in the DownloadTask change.
This is still a work-in-progress, and many things
have been broken by introducing it, but the new
code is easier to understand and maintain, and
should also prove performance-enhancing on Maemo.
Last but not least, when it's done, it will fix
these bugs: 242, 361 (http://bugs.gpodder.org)
This patch finishes off the proper filename support, so
remove the "experimental_file_naming" configuration option.
Also add download resuming based on this new code. The
resuming function currently works like this: All active
and queued downloads will not be deleted when gPodder is
closed, and gPodder will ask the user if she wants to
continue downloading at next startup (if not, the partial
files are deleted).
These two changes are very suspicious of breaking some weird
feeds (for proper filenames) and servers (for resuming).
Report any bugs that you encounter. Enjoy! :)
The 0.14.1 release ("The Thirty-Fathom Grave") has had
some last-minute changes on its release branch:
* Update README, manpage, version info and release date.
* Add contributors, bug reporters and donators to the
about dialog for this release cycle. Thanks to all!
* Note the gtkhtml2 dependency and expose it in the
additional components dialog via DependencyManager.
Remove all unnecessary full episode list reloads and
reduce the number of UI updates while downloading to
make the UI feel (and be) more responsive and also
not need to reset the scroll position because of a
full channel/episode list reload. That's good stuff!
Let the Desktop Environment / the default BitTorrent
client handle torrent downloads. We just use the default
handler for .torrent files to "open" a torrent file after
download has completed.
Discussed on the mailing list in the following thread:
https://lists.berlios.de/pipermail/gpodder-devel/2008-November/002256.html
Add a Dependency Manager window and class to handle optional
dependencies and make it possible to register special features
with their description and optional dependencies.
While downloading episodes, show the total download speed
in the title bar in addition to the total progress percentage.
Only update the progress at most once per second, to avoid
updating the GUI too often (progress notifications).
Reported by Will <war59312@gmail.com> in gPodder bug 139
Fix PixbufLoader bug for invalid covers (reported by Wilfred van Rooijen)
* src/gpodder/services.py: Fix a bug when the PixbufLoader cannot open
a image file in Python 2.5.2 (GError: Unrecognizable image file
format); bug reported by Wilfred van Rooijen on gpodder-devel:
https://lists.berlios.de/pipermail/gpodder-devel/2008-July/002065.html
git-svn-id: svn://svn.berlios.de/gpodder/trunk@792 b0d088ad-0a06-0410-aad2-9ed5178a7e87
Merge patch to close bug #152 (Deleting a channel does not cancel episodes
downloading from that channel)
* src/gpodder/gui.py: make on_itemRemoveChannel_activate() cancel
any active downloads from the channel being deleted
* src/gpodder/services.py: fix some weird indentation
git-svn-id: svn://svn.berlios.de/gpodder/trunk@786 b0d088ad-0a06-0410-aad2-9ed5178a7e87
Request covers only when necessary (Patch from Justin Forest)
Closes bug #144 (http://bugs.gpodder.org/show_bug.cgi?id=144)
* src/gpodder/gui.py: Don't update covers every time updateComboBox
is called
* src/gpodder/libpodcasts.py: update cover during an update()
* src/gpodder/services.py: log when a cover is being requested
git-svn-id: svn://svn.berlios.de/gpodder/trunk@779 b0d088ad-0a06-0410-aad2-9ed5178a7e87
Make things less verbose and fix a problem with cover art handling
* src/gpodder/gui.py: Fix problem when trying to remove a non-existent
podcast cover art from the cache; make things less verbose
* src/gpodder/*.py: Make things less verbose
git-svn-id: svn://svn.berlios.de/gpodder/trunk@739 b0d088ad-0a06-0410-aad2-9ed5178a7e87
Automatically download channel cover file; improve channel cover handling
* data/gpodder.glade: Simplify and clean-up the podcast editor dialog,
especially with respect to the cover art stuff
* src/gpodder/config.py: Add configuration option
"podcast_list_icon_size" that determines the pixel size of the cover
art displayed in the podcast list
* src/gpodder/gui.py: Add cover cache, register with the cover
downloader service in the main window, handle messages from the cover
downloader (removed and download finished); request covers for
channels when refreshing the channel list; make sure drag'n'drop of
image files to the channel list works directly and sets the
corresponding channel cover; Rework cover download handling and add an
open dialog as suggested by the May 2008 Usability Evaluation
* src/gpodder/libgpodder.py: Remove old, attic image downloading code
from gPodderLib, because it now has its own service class
* src/gpodder/libpodcasts.py: Remove unneeded get_cover_pixbuf helper
function for podcastChannel; improve channels_to_model to take
advantage of the new cover downloader service
* src/gpodder/services.py: Add CoverDownloader service that acts as a
central hub for all downloading and modifying of channel cover art,
including notification of observers (through ObservableService)
* src/gpodder/util.py: Add resize_pixbuf_keep_ratio helper function to
resize a gtk pixbuf while keeping the aspect radio (with optional
caching support through a dictionary parameter)
(Closes: http://bugs.gpodder.org/show_bug.cgi?id=88)
Fri, 13 Jun 2008 20:10:13 +0200 <thp@perli.net>
Fix a bug in the experimental file naming support
* src/gpodder/util.py: Fix bug that stopped the experimental file
naming patch from working; thanks to Shane Donohoe for reporting
git-svn-id: svn://svn.berlios.de/gpodder/trunk@737 b0d088ad-0a06-0410-aad2-9ed5178a7e87
Download start performance improvements; fix podcast list handling
* data/gpodder.glade: Convert the gPodderAddPodcastDialog from a
GtkWindow to a real GtkDialog to make Escape key work and set the URL
entry box to activate the "Add" button when Enter is pressed in it
* src/gpodder/gui.py: Fix podcast selection in updateComboBox, so the
currect podcast is selected when removing/adding podcasts; allow to
pass a URL which should be selected after the update; use
DownloadStatusManager's new batch mode to speed up starting many
downloads at once (very visible speed improvement); adding podcasts
has also been improved a bit with the new code
* src/gpodder/services.py: Support batch mode (i.e. only notify after
all episodes have been added to th download list); this speeds up the
UI when multiple episodes are downloaded at once
git-svn-id: svn://svn.berlios.de/gpodder/trunk@715 b0d088ad-0a06-0410-aad2-9ed5178a7e87
Fix race condition in is_download_in_progress()
* src/gpodder/services.py: Make sure we behave correctly when items in
the download list disappear while we are iterating over the list of
downloads when trying to find out if a download is already in progress
* src/gpodder/gui.py: Add SPGoetze to list of bug reporters
(Closes: https://bugs.launchpad.net/ubuntu/+source/gpodder/+bug/208964)
git-svn-id: svn://svn.berlios.de/gpodder/trunk@712 b0d088ad-0a06-0410-aad2-9ed5178a7e87
Merge patch from Junio C Hamano to fix problems with zero-length in feeds
* src/gpodder/gui.py: Update list of contributors/patch writers
* src/gpodder/services.py: Patch from Junio C Hamano to fix a problem
when a feed has zero length, which would otherwise result in a
divide-by-zero error
git-svn-id: svn://svn.berlios.de/gpodder/trunk@687 b0d088ad-0a06-0410-aad2-9ed5178a7e87