Commit graph

800 commits

Author SHA1 Message Date
Thomas Perl
e14200a9ba Crop tooltips and only show on first column (bugs 249, 186)
Crop episode list tooltips to a maximum of 400 characters.

Only show tooltips in main window when hovering over the
first column (podcast cover in the podcast list, and the
status icon in the episode list).

This should make the tooltips less annoying.

Thanks to Andrew Bennett and Steve McCarthy for reporting.
2008-11-19 19:29:55 +01:00
Thomas Perl
c807f3691d Faster quit experience by hiding the main window
Hide the main window before starting vacuuming the
database, so it looks like shutdown is blazingly fast
while still allowing for optimizations to complete.
2008-11-19 18:55:59 +01:00
Thomas Perl
1182a28a6e Currently downloading episodes should not be "new" (bug 154)
Fix a bug where "new" episodes that are currently being
downloaded are still considered new in the "new episodes"
dialog and re-offered for download. This patch fixes it.

Thanks to Jérôme Chabod for reporting this bug in Bugzilla.
2008-11-19 18:20:25 +01:00
Thomas Perl
89670b36dd Save position, size and maximized state of windows (bug 131)
For the main window and the episode selector dialog, save the
window position, window size and the (boolean) maximized state
and restore this information when the window is re-created.

Thanks to Sebastian Krause for reporting this bug.
2008-11-19 18:16:37 +01:00
Thomas Perl
e9892d491d Add {podcast.title} for custom_sync_name (bug 234)
You can now use {podcast.title} to insert the title of
the podcast an episode is in for your custom_sync_name.

The old "{channel.title}" syntax is deprecated and
should be converted to the new syntax automatically.

Thanks to Gilles Lehoux for reporting this bug.
2008-11-19 17:44:52 +01:00
Anders Kvist
f3ba748cd3 Allow locking of complete podcast channels (bug 85)
Add a "lock all" option to the main and context menu
for podcast channels that allows to automatically lock
and unlock all episodes in this podcast.
2008-11-19 17:05:19 +01:00
Justin Forest
6272b5dee0 VACUUM the database when gPodder is closed. 2008-11-19 16:48:03 +01:00
Justin Forest
a4f2fd1f3f A new way of creating tables and adding fields. 2008-11-19 16:47:59 +01:00
Justin Forest
b9844c0bac Optionally remove old episodes from iPod
If ipod_purge_old_episodes is turned on in advanced settings,
episodes which were played and don't have stars are removed
from iPod before sync.
2008-11-19 16:47:53 +01:00
Justin Forest
bd16e95a39 Updated YouTube downloader
YouTube changed their server side logic and the old way
of resolving enclosure URLs stopped working.  The new
method is taken from clive.
2008-11-19 16:47:46 +01:00
Thomas Perl
c6d1e38db4 Fix UI issues with new podcast finder dialog
Correct scrollbars, borders, menu placements and labels.
2008-11-19 16:47:16 +01:00
Justin Forest
a2abc49012 New podcast finder dialog
Replaces the old web OPML importer, includes top 50 podcasts
from Podcast Alley and a YouTube channel finder.
2008-11-19 16:35:00 +01:00
Justin Forest
3dca58776a Fix incorrect handling of HTTPError 2008-11-19 16:34:53 +01:00
Justin Forest
08d5f2704a Fix delete/download actions for missing episodes
Missing are those episodes that are marked as downloaded
but don't exist as files.  They have a small alert indicator.
Previously it was only possible to mark them as new, now
you can delete them forever or re-download.
2008-11-19 16:34:48 +01:00
Justin Forest
8258b17b6b Fix formatting in SQL logging.
Log messages that included a % sign (such as URLs to
Google Video queries) were treated as format strings.
2008-11-19 16:34:43 +01:00
Justin Forest
a9bd4301b1 Retreive enclosure length for YouTube videos
Issue HEAD requests to the real video if an episode
has zero length during a channel update.  Only affects
YouTube at the moment.
2008-11-19 16:34:39 +01:00
Thomas Perl
168966522e Support for streaming instead of downloading (bug 93)
With the configuration option "enable_streaming" enabled,
gPodder will now allow you to stream podcasts from the
server instead of downloading it locally first.

Streamed episodes will look as if they have been
downloaded and afterwards deleted. "Played" status is now
display on deleted episodes, too for this reason.
2008-11-19 16:25:27 +01:00
Bernd Schlapsi
085e899e56 Write EXTM3U header to m3u files on MP3 player (bug 251)
When writing podcast playlists to a filesystem-based
MP3 player, add "#EXTM3U" in the first line, so some
MP3 players can correctly detect this M3U file as a playlist.

Thanks to Ville-Pekka Vainio for reporting this on Bugzilla.
2008-11-19 15:44:54 +01:00
Thomas Perl
ff11198a69 New config and download folder locations on Maemo (bug 191)
Config files are moved from /media/mmc2/gpodder/ to
~/.config/gpodder/ when migrating from old versions,
so the N8x0 backup tool backups our config, too.

As a result, we move the download directory from
/media/mmc2/gpodder/downloads/ to /media/mmc2/gpodder/
and add detection for moving this to mmc1, the user's
homedir or an externally attached USB mass storage device.

Thanks to Dan Ramos for the bug report.
2008-11-17 22:46:46 +01:00
Thomas Perl
9c4bc90e8b Remove BitTorrent-specific code
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
2008-11-17 21:35:25 +01:00
Thomas Perl
c0629e17d8 Fix problem with "already added" and wait dialog 2008-11-06 19:12:19 +01:00
Thomas Perl
357704c48f Show information dialog while downloading feeds
Make sure that the user gets notified while we are
downloading feed data, so that the UI does not lock
up or look broken/slow when adding many feeds (e.g.
on initial OPML import).

Also add a GTK Mainloop iteration when blocking the
main thread for adding podcasts to not make the UI
freeze, but update it in every loop iteration.
2008-11-06 19:08:05 +01:00
Thomas Perl
07fa96bf1b Expose system default video and audio player in UI
In addition to selecting audio and video players, we
now support "default" as a way of having a good default
that we can pass to a utility function that can later
be made cross-platform more easily.

Also cleaned up some UI issues with the video player,
so the label of the custom command is shown and the
combo box has the correct size.
2008-11-06 18:06:12 +01:00
Thomas Perl
a83c253e22 Remove the "Save as" button from the episode dialog
We should only allow saving episodes as files from the
episode list - or provide a more advanced UI that can
also do Bluetooth sending and other things. Having the
"Save as" button there as the single "advanced" action
makes the dialog look strange.
2008-11-06 17:10:29 +01:00
Thomas Perl
7b38545e57 Add "Never download" button to episode selector (bug 20)
Add a "Never download" action button to the new episodes
selector, so users can remove the "new" status of episodes
directly from the episode selector.

In addition, this also fixes a bug where "Mark as new" was
not displayed in certain situations in the context menu.
2008-11-06 17:01:43 +01:00
Thomas Perl
09163c0a6e Set gPodder version to 0.13.9 for Git master branch
This is the development version, so mark it as such,
in case some users want to get confused why this has
0.13.0 in the name when in reality it is the dev version.
2008-11-06 16:59:22 +01:00
Thomas Perl
c1fb8bdf5e Episode selector Cancel button usability improvement
When no episodes are selected, the action of the Cancel
button is closing the dialog (no action to be cancelled).

When episodes are selected, the action of the button is
really cancelling the selection (and closing the dialog).

This should (hopefully) make the UI more easy to use :)
2008-11-06 16:16:32 +01:00
Thomas Perl
9e215d9b05 Remove URL entry box above the podcast list
Remove the URL entry box and make the "Subscribe" menu
item and the "Ctrl+L" keystroke always pop up a dialog.

Add an advanced option for users that want to have
the URL entry box back (for now). We might decide
that we will completely remove this feature in the future.
2008-11-06 16:06:13 +01:00
Bernd Schlapsi
0f5188fdfd Playlist manager for MP3 player devices (bug 203)
Add a graphical way to manage M3U playlists on MP3
player devices. This can be enabled in the advanced
configuration editor. Depending on your MP3 player,
you might want to enable Windows-style path separators
and switch between absolute or relative file paths.
2008-11-05 08:15:23 +01:00
Andrei Dolganov
76d1e096b6 Fix size calculation with sync_only_not_played turned on
GPodder don't respect option 'Sync only not played episodes'
so when you click sync button it says something like 'You
need 1.5 GB of free space on your device' because it counts
size of all episodes, not only new ones.

This patch fixes this problem by counting only episodes that
are going to be copied to the MP3 player.
2008-11-03 11:03:11 +01:00
Thomas Perl
95f5dd8222 Switch to first tab when subscribing to new URL
In the main window, when focusing the URL entry box in
the first tab, make sure that we are on the first page,
or else the user will be confused where to enter the URL.

Thanks to Steve for spotting this bug.
2008-11-02 21:27:24 +01:00
Thomas Perl
c80c205599 Set page size to zero in GtkSpinButton adjustments (bug 244)
The new version of Gtk shipping with Ubuntu 8.10 complained:
"setting an adjustment with non-zero page size is deprecated"

This small patch fixes this by setting all page sizes to zero
in the Glade file (for GtkSpinButton widgets).

Thanks for Bernd Schlapsi for reporting this bug in Bugzilla.
2008-11-02 21:03:57 +01:00
Thomas Perl
2efcaff873 Use same folder when saving multiple episodes to disk
When using the "Save to disk" context menu item to save
multiple episodes to disk, remember the last selected
folder, so if one wants to save all episodes into the
same folder, navigation to that folder has only to be
done once.
2008-10-28 10:36:23 +01:00
Philippe Gouaillier
0d2c6ea5bd Fix a problem with the French translation (bug 233)
An error in the French translation file merges into
one line, the last two entries of the device type
selector. It is then impossible to select the MTP
device type.
2008-10-27 10:58:25 +01:00
Justin Forest
1ddb6ff2ef Use uppercase collation names for SQLite (bug 224)
Fix problems with certain distributions/variants of
PySQLite that require collation names to be uppercase.

Thanks to Mehmet Nur Olcay for reporting this bug.
2008-10-23 13:05:05 +02:00
daggpod
3fe7d98387 Support cover art synchronization for Sansa Fuze and others
This is an improvement upon the original rockbox cover
art sync, as it allows to set the file type and file name
of the cover file that will be put on the MP3 player.

With this feature, cover art is displayed on the Sansa Fuze
and other MP3 players that support showing the cover art
if there is an image file in the same folder.
2008-10-23 12:52:17 +02:00
daggpod
f80d5da7a5 Set album tag to artist if no album tag is empty
When updating the tags of files, if no album name is
specified and the album name isn't set already, we
use the artist name as album tag, so MP3 players that
categorize files by album will be able to browse items
on a per-podcast basis.
2008-10-23 12:07:31 +02:00
nikosapi
8e34554146 Use RFC2822-compliant dateCreated in opml files (bug 227)
opml.py: Use email.Utils' formatdate function to generate a timestamp instead
	of using datetime. It is guaranteed to be RFC2822-compliant.

Thanks to Cory Albrecht for reporting this bug.
2008-10-23 10:35:31 +02:00
nikosapi
644bfe987a Fancy password protected feed detection/support (bug 225)
cache.py: Make the fetch function aware of 401 errors as well as a channel's
    username and password attributes. The function will create the
    appropriate url if it needs to.

gui.py: Add a new dialog to handle username and password input.
    Modify add_new_channel to be aware of 401 errors generated by a
    podcastChannel's load() function. This means that the user no longer
    needs to enter a funky-looking url to get password-protected feeds to
    work. If a feed requires authentication, the user will be prompted.

    Fix a bug where the "add podcast url" entry wasn't reset after adding
    a feed that looked like a web page.

libpodcasts.py: Make podcastChannel.load() throw a HTTPAuthError exception
    if a 401 error occurs when downloadind the feed.
2008-10-21 23:26:49 +02:00
Silvio Sisto
b6b0e301e9 Updated Spanish translation
Updated Spanish translation file data/po/es.po
2008-10-21 22:53:54 +02:00
Thomas Perl
c59c0e1b19 Correct sensitivity handling for dependency manager "About"
Make the "About" button only clickable when a feature is selected.
2008-10-14 23:11:39 +02:00
Thomas Perl
1a3ed032a7 Fix trivial bug in database code, introduced by me 2008-10-14 23:04:21 +02:00
Thomas Perl
7567453a97 Simplify database purging code for single channels
Make the purge() function in dbsqlite simpler by only
allowing a single channel to be purged at a time. This
reduces the amounts of SQL queries.
2008-10-14 23:01:20 +02:00
Thomas Perl
0a3caebf12 Dependency Manager for optional components
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.
2008-10-14 19:27:10 +02:00
Justin Forest
351e50eddf Force UTF-8 in the gtkhtml widget (bug 162)
This fixes the problem with "malformed special characters"
in show notes.  The HTML passed to the gtkhtml widget was
incomplete and gtkhtml was unable to detect the right
charset (if it even tries to do that at all).
2008-10-14 19:15:32 +02:00
Thomas Perl
ea811e0343 Experimental support for gtkhtml2 for episode dialog (bug 162)
Support the gtkhtml2 module in the episode description
dialog to display HTML markup for the episode description
and allow links and HTML lists, etc.. in the dialog.
2008-10-14 19:14:50 +02:00
Justin Forest
8441d2586c Handle 304 (Not Modified) during feed update. 2008-10-14 19:14:23 +02:00
Justin Forest
fc3fdadf07 Do not update enclosure type for existing episodes.
Since mime type is used to construct local file names, and
since there is some YouTube related magic that changes mime
types while episodes are downloaded, resetting them to the
original value (application/x-shockwave-flash) invalidates
the file name, all episodes become unavailable.

Not updating types when the channel is updated is OK, because
they usually don't change.  If they do, we update them after
the episode is downloaded.
2008-10-14 19:14:17 +02:00
Justin Forest
bb7e7c786b Support for YouTube in CoverDownloader. 2008-10-14 19:14:10 +02:00
Justin Forest
47c98633e6 YouTube integration.
Links to YouTube profiles are converted to the corresponding
RSS feeds (http://www.youtube.com/rssls), which aren't available
with the standard feed discovery.

Normal links to YouTube enclosures (*.swf) are now on-the-fly
replaced with links to high quality MP4 videos.  Apparently
links to real enclosures are not permanent, so they can't be
saved in the database.
2008-10-14 19:14:06 +02:00