Remove obsolete code parts, merge code paths for
easier readability. Make filename check based on
podcast ID (so files in different folders can have
the same name).
This only works for files that are still available in the
feed, and for which the filename can be determined easily.
For files that are supported (e.g. proper feeds and most
YouTube user channels), the import will happen automatically.
Command line users can use the new "gpo importfiles" command.
Other files that cannot be identified will be moved into
the 'Unknown' subfolder, so future versions or external
utilities can look at those files and import them.
The max_episodes_per_feed setting should prevent too many episodes in a
single podcast (which slows down processing and loading of the episode
list). In cases where the feed lists all episodes in chronological order
(oldest first), the feed will at some point (episodes in the feed >=
max_episodes_per_feed) stop showing new episodes.
This patch fixes this by (trying to) sort the entries by update time,
descending and only then cutting of the entry list.
This should make the episode and podcast list
nicer for feeds that have newlines and spaces
in their titles. It also fixes a bug in the
episode list for Maemo.
Add a new configuration option that controls the
ordering of mime types when multiple enclosures
(file formats) are available in a podcast feed.
Based on an initial patch by Bernd Schlapsi.
Create a temporary M3U playlist and send its
filename to the Nokia Media Player, as this
is the only way to open multiple files at once
with the built-in Media Player.
Refactor Justin's "User extensions" code to make it
a bit more cleaner and documented, and rename it to
"hooks", as this more precisely describes the nature
of the mechanism.
Currently this only lets you do something with
channels and episodes before they are saved,
e.g. modify titles. Can be extended easily to
provide more functions.
Loads $GPODDER_HOME/extensions/*.py, see src/gpodder/userext.py
for details.
Implement a faster method for acquiring the
episode object from a download URL or filename.
This improves performance for episode status
updates and episode metadata requests over D-Bus.
This patch adds two methods for detecting the
episode length (time units, not bytes):
* iTunes-specific "duration" in the RSS feed
* GStreamer-based length detection after download
The patch also adds duration information to the
tooltip in the episode list as a first step for
displaying this information in the UI.
Clean-up the database module for easier adding and
removal of columns to the podcast and episode tables.
Add time-related information (total time, position and
timestamp for the last position update) to episodes.
Remove the "deleted" column for podcasts and make sure
to remove all "deleted" podcasts and their episodes when
upgrading from an older version of gPodder.
Another attempt at finally fixing bug 340, but this time I'm pretty sure
that it works, because we are more selective now.
Whenever a new episode appears in the feed, its date is compared to the
date of the newest-known episode in the same feed. If it's more than one
week older than the newest-known episode, it's marked as old by default.
The "one week" value is just a randomly-chosen one to allow for border
cases (like a daily podcast re-issuing an episode of the last few days)
to work correctly and not cause "missing episodes".
When multiple episodes are selected, and the "playback episodes"
function is used, we now sort the episodes in ascending chronological
order before passing the list of episodes to the media player.
Thanks to Xavier for reporting this bug.
The filename will be updated by the download
module whenever the download has finished and
the file_disposition header contains a proper
name. This is easier (and also gets rid of the
blocking operation during filename discovery)
than what we did before, which (I believe) also
led to an error that Shane Kerr was seeing in
gPodder bug 821.
Some feeds describe their "cover" image in a
<image><url>...</url></image> tag. This patch
should make it possible to properly detect and
fetch images in these cases as well.
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'
This removes all the progress bars and action
buttons (except "Visit website") from the
dialog, as this functionality is going to be
moved in a separate dialog for easier access.
Split the text formatting into a separate function
and let the Fremantle module override it in a
subclass that's used in the main UI. Probably needs
some more fine-tuning, but the basic framework is
now in place.
Thanks to Mox and Tuomas for their input.
On Windows, a folder name like "Abc..." is
saved as "Abc", and trying to create such a
folder name works, but the trailing dots are
removed. When trying to download files to such
a folder (while gPodder still believes the
folder has dots at the end), this won't work.
To fix this bug, don't allow trailing dots in
the folder name of podcasts by stripping them.
Thanks to Yves for reporting this bug.
If this option is set to True, gPodder will accept feeds
that do not have any episodes listed. This is useful for
cases where podcasts do not have episodes throughout the
year, but will have new episodes eventually.
Thanks to Steve for reporting this bug in Bugzilla.
This is still a work-in-progress, but it works
fine for me so far. Still needs lots of work to
be more accessible and robust.
You can use the "sc:" prefix to add Soundcloud
users (or use http://soundcloud.com/username).
This should make some previously-broken feeds
appear as podcast, even though they are not
really. Please don't expect too much from this
feature, but it seems to make some users happy.
Don't fail hard when we cannot get the real
URL of an episode while searching for files.
Only partially fixes bug 573, as the reporter
has posted the traceback in the wrong bug.
Episode that have not been downloaded (or have been
deleted since) and that do not appear in the feed are
now purged from the database after a feed update to
avoid the database getting filled with orphaned episodes.
Based on a patch by Neal Cox.
This adds a new checkbox in the "View" menu that allows
the user to hide all podcasts in the podcast list for
which the episode list is empty (probably because some
filter is active).
As long as the "Keep downloaded episodes" checkbox is
not checked, we now delete episodes and the podcast from
the database when unsubscribing from a podcast.
Thanks to slestak989 for reporting this issue.
There is now a new configuration option called
feed_update_skipping (default: Enabled) that can
be used to disable skipping of feeds during update.
Also, skipping of feeds is only done when there
are more than one podcasts to be updated (this
allows the context-menu "update single feed" to
work as a kind of "force update" menu item).
Thanks to Sebastian Krause for the bug report.
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.
Add some additional code and checks to make the use
of password-protected podcasts more stable and easier
to use. Thanks to Dan Ramos for the bug report.
Here is a patch that mostly fixes the problem. But I
still get a few cases where setting the channel title
causes the directory to be named 'Something (2)' etc.
Create "gpodder.gtkui" package that will contain all
modules that support the GTK+-based user interface.
libpodcasts has been renamed to "model" and is now
GTK+-clean, so it does not require the GTK+ module.