Commit Graph

184 Commits

Author SHA1 Message Date
Thomas Perl 624282aea2 Fix various import statements (Py3k compat) 2012-01-19 11:26:44 +01:00
Thomas Perl 5411f3fc2f Python 3: Initial support for Python 3 (CLI)
This changeset makes gPodder's codebase convertable
to Python 3 using the "2to3" utility. Right now, only
the CLI module (bin/gpo) has been tested.

See the README file for instructions and remarks.
2012-01-10 13:47:20 +01:00
Thomas Perl 5205a4b71d Update copyright years (add 2012) 2012-01-09 21:19:24 +01:00
Thomas Perl 672e071843 Support for Vimeo video feeds (bug 1529)
This is closely modelled around the YouTube module.

In the future, we should probably remodel this to
use the extensions/hooks/plugins mechanism, and make
the interface for video services more generic.
2012-01-03 16:37:41 +01:00
Neal H. Walfield bf1385d0c8 Enable hooks unconditionally
- Enable hooks unconditionally in core.py.
  - Remove checks for whether 'gpodder.user_hooks' is None (it can't be).
2011-10-12 11:26:35 +02:00
Thomas Perl 346c582fea Fix download filename with invalid headers (bug 1440) 2011-10-04 10:36:43 +02:00
Thomas Perl 69b38badb4 More cautious use of redirect URLs for YT and SC
For YouTube and Soundcloud feeds (among others), we try
to avoid renaming downloads even for HTTP redirects,
because the initial filename that we have is usually okay.
2011-09-18 22:04:33 +02:00
Thomas Perl 3bfab38220 Proper URL sanitization for redirected downloads 2011-09-18 21:34:10 +02:00
Thomas Perl 580056a59c Use filename from redirected URL (bug 1423)
In some cases, proper filenames hide in the final URL
of a redirect (or redirect chain) of a web server. An
example of this is the "Science Talk" podcast.
2011-08-31 21:27:41 +02:00
Thomas Perl 714251a7a9 Various fixes to download file/folder handling 2011-08-07 23:39:46 +02:00
Thomas Perl 664e463948 QML UI: Redesign, episode actions, split episode details 2011-07-24 20:37:58 +02:00
Thomas Perl d714be329e Make DownloadTask a child of PodcastEpisode 2011-07-16 18:04:07 +02:00
Thomas Perl dde5272d9d Update file size of episode while downloading 2011-07-16 17:25:44 +02:00
Thomas Perl 52779f611b First cut of dbsqlite simplification (w/ weakrefs) 2011-07-16 14:30:08 +02:00
Thomas Perl 8e87300c04 Logging: Deprecate liblogger, use standard logging module 2011-07-15 16:32:06 +02:00
Thomas Perl 4376057001 Update copyright years 2011-04-01 18:59:53 +02:00
Thomas Perl d9a4963669 Use only "cgi.escape" for escaping Pango markup
Replace the usage of saxutils.escape with cgi.escape.
2011-02-25 21:05:26 +01:00
Thomas Perl 292c82ab00 Database schema cleanup / upgrade 2010-12-20 14:35:46 +01:00
Thomas Perl 6a62fd0e90 Remove cmd_download_complete / cmd_all_downloads_complete
User hooks can now be used instead of this feature.
2010-12-20 00:26:51 +01:00
Thomas Perl 10cad7aad0 Proper single-time download notifications (bug 1161)
Only show a notification for finished or failed downloads
once, both on the Desktop version and on Maemo 5 by adding
a special function to DownloadTask to keep track whether or
not the notification has already been shown previously.
2010-12-18 14:50:43 +01:00
Sebastian Hanula 8f84d07c17 Use first Content-length header (bug 1226)
Use first matching Content-length header when multiple
found. Occured with some cache/proxy servers.
2010-12-16 18:52:05 +01:00
Thomas Perl 3628f7c50c Hook for download finished + BitTorrent example
This example hook allows you to open .torrent
files with your BitTorrent client after the
download has been completed.
2010-10-11 10:46:57 +02:00
Thomas Perl 03e6ef1ecf Clean and bling up the CLI interface (gpo) 2010-10-10 22:44:22 +02:00
Thomas Perl 1be902f2ea Quicker saving of downloaded episodes
This temporarily disables updating the M3U files
until we find a more efficient way updating them.
2010-04-26 21:41:50 +02:00
Thomas Perl ccf590328e Better detection for wrong file extensions
This fixes issues where previously downloaded
episodes would not get their extension fixed,
because the mime type does not change, although
the filename is still wrong.
2010-04-09 02:28:11 +02:00
Thomas Perl 47a6daf567 Add "Start download now" option for downloads
When a download limit is enabled, and downloads
are queued, right-clicking on a download now
allows to forcefully start the download task
without having to wait for the episode to hit
the queue.
2010-03-07 20:18:17 +01:00
Thomas Perl fb6210eb84 Fix strings with positional arguments
Translatable format strings with more than one
positional argument should have their value
described by using a dictionary so that the
translators can reorder inserted variables.
2010-01-18 21:20:22 +01:00
Thomas Perl 181564f1b7 Add 2010 to the years in copyright notice
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'
2010-01-02 17:35:42 +01:00
Thomas Perl 6ab9856fe9 Configurable preferred YouTube fmt_id (bug 578)
Users can now set their preferred YouTube fmt_id
for downloads of YouTube videos. The default has
been changed to 18, because that's a known-good
video format that should work on most machines.
2009-12-17 13:08:55 +01:00
Thomas Perl cd6f130ee1 Spawn new threads for download limit (bug 693)
When the "download limit" value is changed,
automatically start new threads if it makes
sense (when there are still tasks waiting
to be added and the amount of current threads
is less than the download limit).

Also let each thread check if it may continue
to accept tasks instead of using "cancelling".
This way, the number of threads more often is
in line with the download limit setting.

Thanks to "ad" for reporting this issue.
2009-12-17 00:37:45 +01:00
Thomas Perl 133883412a Redesign download list contents (multiline) 2009-09-22 18:53:14 +02:00
Thomas Perl cff1cd3b8f Fix bug that results in "None" filename 2009-09-15 14:23:38 +02:00
Thomas Perl e3e4dea386 Fix non-escaped URLs when downloading (bug 549)
Should fix a bug when downloads from URLs with
spaces would not work correctly.
2009-09-09 18:53:45 +02:00
Thomas Perl c45da9e33a Support for "Content-disposition" header (RFC 2138)
Add support for renaming files according to the
Content-disposition header after download has
completed and correct mimetype based on the name.
2009-09-06 16:38:40 +02:00
Thomas Perl c923039166 Split shownotes dialog code (Desktop+Maemo)
The Maemo 4 UI of gPodder now has a new and proper
shownotes dialog with a menu that allows better
control of all actions on the episode download.

The download handling code has been refined and
some minor bugs have been fixed (cancel after pause).

The current GTK+ ("Desktop") UI for the Shownotes
dialog has not been re-designed yet, but just edited
to work with the new interface structure. Later :)
2009-09-02 15:57:09 +02:00
Thomas Perl 2e20b27fdc Support downloads without content-length header (bug 535)
Some servers, like the one serving "Bloomberg" episodes
do not send a "Content-length" header in their HTTP
response, which made gPodder fail to download files.

This patch fixes the issue and also re-calculates the
file size after the download has completed, so the real
file size appears after the file has been downloaded.
2009-09-01 14:37:11 +02:00
Thomas Perl 90cda4b56b Rename gpodder.resolver to gpodder.youtube and clean it up
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.
2009-08-24 17:02:35 +02:00
Thomas Perl 965cecfa7f Refactor DownloadStatusManager to DownloadStatusModel
Cleans up some GTK+ requirements of gpodder.services and makes
the purpose of DownloadStatusModel vs. DownloadQueueManager
clearer to the developer.
2009-08-24 16:17:32 +02:00
Thomas Perl 996b2bcda2 Improve HTTP authentication handling (bug 525)
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.
2009-08-24 13:04:11 +02:00
Alexander Boström 74cfa7e972 Dynamically enable and disable the update_downloads_list timeout function depending on if there are queued or active downloading tasks. 2009-08-24 00:30:58 +02:00
Thomas Perl a67174a597 Remove dependency on libgpodder/gPodderLib for most modules
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.
2009-08-11 00:09:38 +02:00
Thomas Perl 5d4097ecb6 Refactoring: Database object usage / reference
Minimize the direct usage of the database object to
avoid dependencies between modules. Also clean up some
cruft in the GUI code.
2009-08-10 23:14:35 +02:00
Morten Nygaard Åsnes 9edca3e540 Added GPODDER_CHANNEL_TITLE variable to cmd_download_complete hook. 2009-07-23 22:03:40 +02:00
Thomas Perl 81f5c8ac07 Remove support for custom HTTP proxy settings
You can still use http_proxy and ftp_proxy environment
variables to set the proxy you want to use for downloading.
2009-07-06 15:29:09 +02:00
Thomas Perl 4c7088dfa3 First cut of new feedcore module + related changes
This might break a lot, but it makes feed parsing and
updating so much cleaner, and also helps with error
reporting, because exceptions are bubbled up to the UI.

Removed:

 * Changing feed URL (this introduces too many problems)
 * Support for FTP proxy servers (who uses FTP for podcasts?)
2009-06-12 00:51:13 +02:00
Thomas Perl 90c2f31cf0 Fix another bug with hanging downloads
If the server specifies the content length of
what we are going to download, only read at most
that amount of data from the server and then
close the connection to avoid eternal hanging.
2009-06-10 01:57:35 +02:00
nikosapi f39a789f4f Fixed version of redirect_internal in DownloadURLOpener (bug 465)
Using wireshark you can see that gPodder gets stuck after it receives
the first 302 from the server. Wget on the other hand handles it
perfectly (there are 2 to 3, 302 responses in total).

Adding a Range header to the request will make the download fail,
this patch fixes this bug by providing our own version of
redirect_internal.
2009-06-05 11:49:05 +02:00
Thomas Perl d81109d080 Update podcast list after download status changes (bug 433)
The podcast list is now updated correctly when the
status of a download changes, the same as with the
episodes list.
2009-05-12 11:03:59 +02:00
Thomas Perl b1ec8f62e9 Make gPodder more library-like; remove --local
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.
2009-05-07 16:26:07 +02:00
Thomas Perl 0f24910055 Truncate partial download file if resume is unsupported (bug 409)
When downloading files, make sure that the server sends
the correct content-range response header for the request.
If not, truncate the file and start from the beginning.
2009-05-05 10:22:12 +02:00
Shane Huntley f133a757c8 Refresh episode status from db before reusing a DownloadTask (bug 414) 2009-04-27 15:14:31 +02:00
Thomas Perl ed7a71dd97 Add status_changed to DownloadTask for monitoring
This allows our UI to directly monitor the status
of all running DownloadTask objects by checking the
truth value of the status_changed attribute and
updating the UI for all relevant episodes.
2009-04-02 00:02:07 +02:00
Thomas Perl 0c3b31563f Use symbolic status names from DownloadTask
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.
2009-04-01 13:05:53 +02:00
Thomas Perl aa4eb0b4d0 Move ext_command_thread from gPodderLib to util
We want to get rid of gPodderLib in the end, so move
the utility function out of gPodderLib and correct
its uses accordingly. Also add a unittest for it.
2009-04-01 12:53:13 +02:00
Thomas Perl e3a8795a3e Initial work on the new download manager code
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)
2009-04-01 01:12:17 +02:00
Thomas Perl a388a992a2 Fix raising of ContentTooShortError (from urllib)
Previously, this has not worked, because the name
was not defined in this scope (we based the code on
urllib, which was allowed to use it like this).
2009-03-30 18:59:50 +02:00
Thomas Perl dcefd98846 Only update filename when extension changes (bug 363)
Only update the filename of an episode as a result of
changed mimetypes when the changed mimetype also changes
the file extension.

Also fix a small bug that omitted the extension when
searching for a "proper" filename and a bug that happens
when the filename extension is missing from a file.

Thanks to Ville-Pekka Vainio for reporting this bug.
2009-02-25 14:17:43 +01:00
Thomas Perl 6cd6f72c22 Fix a bug in the downloader when totalSize is zero
This happens for Flickr photo feeds, for example.
2009-02-18 13:32:39 +01:00
Thomas Perl bb59cebe63 Download resuming and proper filename support (bugs 19 and 57)
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! :)
2009-02-09 23:26:47 +01:00
Thomas Perl 0f226211b5 Update copyright info from 2005-2008 to 2005-2009
As every year, we have to update the year info for
gPodder in all our files throughout the source tree.
2009-02-01 21:22:21 +01:00
Alex Ghitza cbfc8b021d Name currently-downloading files *.partial (bug 282)
Temporary files should not be hidden (with .tmp-*),
but displayed via a file browser (as *.partial).
2009-01-03 17:32:26 +01:00
Thomas Perl c2ac54ff11 Update the UI more efficiently, make it much faster
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!
2008-12-13 13:29:45 +01: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
Thomas Perl 46de7bfe0c Detect and report HTTP errors when downloading (bug 106)
The FancyURLopener by default ignores HTTP errors and
downloads the HTTP error page without letting the calling
code know. We override the method and report the error
in our subclass, so we can provide feedback to the user
in the logfile and in a message dialog.

This bug has been reported by Markus Golser
2008-08-10 14:38:20 +02:00
Thomas Perl e5460ab8d9 Fix large negative values for download progress (bug 160)
When downloading an episode, and the urllib progress
callback reports a totalSize of "-1", gPodder would show
large negative values for the download progress. This is
fixed by using the size reported by the feed in this case
and also adding some sanity checks (progress between the
values 0 and 100) and spitting out warnings in case of
problems.

This bug has been reported by Heinz Erhard
2008-08-09 17:16:23 +02:00
nikosapi 2c3d3865df Once a download is complete, save the real, on-disk filesize 2008-08-08 09:44:23 +02:00
Thomas Perl bc44648b84 Show total download speed in titlebar (bug 139)
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
2008-08-04 14:17:01 +02:00
Thomas Perl 5f02de291e Sun, 15 Jun 2008 14:44:29 +0200 <thp@perli.net>
Merge "Allows user command execution after certain events" from Paul Rudkin

	* src/gpodder/config.py: Add two new configuration options:
	cmd_all_downloads_complete and cmd_download_complete
	* src/gpodder/download.py: Call the user-specific command when a
	download finishes (if configured)
	* src/gpodder/gui.py: If all downloads have been completed, execute
	the user-specific command (if configured)
	* src/gpodder/libgpodder.py: Add ext_command_thread function that
	handles calling an external command
	(Closes: http://bugs.gpodder.org/show_bug.cgi?id=4)



git-svn-id: svn://svn.berlios.de/gpodder/trunk@743 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2008-06-15 12:46:34 +00:00
Thomas Perl d63f123e36 Revert traceback-related changes from r682
git-svn-id: svn://svn.berlios.de/gpodder/trunk@686 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2008-04-22 20:24:19 +00:00
Thomas Perl e3b4d2176e Tue, 22 Apr 2008 21:54:01 +0200 <thp@perli.net>
Diverse changes, code clean-ups and other small annoyances

	* src/gpodder/config.py: Make sure we can load a default set of
	configuration options, even if we are in CLI mode
	* src/gpodder/download.py: Don't display a traceback when logging a
	cancelled download
	* src/gpodder/gui.py: Add Doug Hellmann to contributors/coders list in
	the about dialog (Doug Hellmann has done the feed cache code); do not
	center the gPodderEpisode dialog on the treeAvailable widget (this
	looks ugly ;)
	* src/gpodder/libpodcasts.py: Clean up import statements; Make sure we
	always have icon names, even in CLI mode; Remove "is_music_channel"
	property of podcastChannel (not needed anymore); 



git-svn-id: svn://svn.berlios.de/gpodder/trunk@684 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2008-04-22 19:57:02 +00:00
Thomas Perl 18df6b386c Tue, 22 Apr 2008 21:15:40 +0200 <thp@perli.net>
Python code fixup: Compare "None" with "is not" instead of "!="

	* src/gpodder/config.py: "!= None" => "is not None"
	* src/gpodder/download.py: "!= None" => "is not None"
	* src/gpodder/gui.py: "!= None" => "is not None"
	* src/gpodder/libconverter.py: "!= None" => "is not None"
	* src/gpodder/libgpodder.py: "!= None" => "is not None"
	* src/gpodder/libpodcasts.py: "!= None" => "is not None"
	* src/gpodder/services.py: "!= None" => "is not None"
	* src/gpodder/util.py: "!= None" => "is not None"



git-svn-id: svn://svn.berlios.de/gpodder/trunk@683 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2008-04-22 19:16:30 +00:00
Thomas Perl bba4db9632 Tue, 22 Apr 2008 21:07:28 +0200 <thp@perli.net>
Logging traceback is enabled by default (needs to be disabled on demand)

	* src/gpodder/*.py: Remove "traceback=True" from logging calls
	* src/gpodder/liblogger.py: Always print a traceback if it's
	available; if not, do not print it out; this can be disabled by
	passing "traceback=False" to the log() function
	* src/gpodder/sync.py: Also add "traceback=False" for optional imports



git-svn-id: svn://svn.berlios.de/gpodder/trunk@682 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2008-04-22 19:08:54 +00:00
Thomas Perl 2f6c16e636 Thu, 17 Apr 2008 17:54:48 +0200 <thp@perli.net>
Calculate total percentage based on byte size instead of percentage

	* src/gpodder/download.py: Make sure we save the right size of a
	currently in-progress download of an episode
	* src/gpodder/services.py: Calculate the total percentage for all
	episodes based on their file size instead of their percentage done;
	this is especially important when downloading small files mixed with
	large files; this makes the estimated download time more reliable;
	thanks to Jérôme Chabod, who has done this patch
	(Closes: http://bugs.gpodder.org/show_bug.cgi?id=46)



git-svn-id: svn://svn.berlios.de/gpodder/trunk@675 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2008-04-17 15:59:38 +00:00
Thomas Perl d3d7adf099 Thu, 17 Apr 2008 17:42:31 +0200 <thp@perli.net>
Clean up preferences dialog + Move download settings to downloads tab

	* data/gpodder.glade: UI-related changes to the preferences dialog
	clean-up and the moving of the download settings to the downloads tab;
	thanks to Paul Rudking for the download settings to downloads tab
	patch
	* src/gpodder/download.py: Better rate limiting, implemented by Paul
	Rudkin
	* src/gpodder/gui.py: UI-related changes to the preferences dialog
	clean-up; the download settings changes are by Paul Rudkin
	* src/gpodder/services.py: Improve the waiting/locking for the maximum
	number of simultaneous downloads using a threading.Event
	(Closes: http://bugs.gpodder.org/show_bug.cgi?id=69)
	(Closes: http://bugs.gpodder.org/show_bug.cgi?id=83)



git-svn-id: svn://svn.berlios.de/gpodder/trunk@673 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2008-04-17 15:45:29 +00:00
Thomas Perl 3ccbb80a2c Sat, 29 Mar 2008 17:13:26 +0100 <thp@perli.net>
Project management updates (authors, contributors and copyright)

	* AUTHORS: Removed (was outdated); content now in gui.py (AboutDialog)
	* bin/gpodder, data/po/Makefile, doc/dev/copyright_notice, 
	  doc/dev/win32/setup-win32.py, INSTALL, Makefile, README,
	  setup.py: Updated Copyright and old website URL to include 2008, the
	  gPodder team and www.gpodder.org
	* src/gpodder/*.py: Updated Copyright years
	* src/gpodder/gui.py: Add list of contributors from AUTHORS file and
	from the content on the website's news page (please mail me if I
	forgot to mention you as a contributor, I surely have missed a few);
	make the AboutDialog's application name "gPodder" (from gpodder) and
	add an URL hook function to the AboutDialog, so the website is opened
	in the user's default web browser



git-svn-id: svn://svn.berlios.de/gpodder/trunk@648 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2008-03-29 16:16:55 +00:00
Thomas Perl cd1266a8aa Make "gl" a global-accessible object in libgpodder
git-svn-id: svn://svn.berlios.de/gpodder/trunk@598 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2008-03-02 13:22:29 +00:00
Thomas Perl 84f4b781b5 Add download completion notification support
git-svn-id: svn://svn.berlios.de/gpodder/trunk@506 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2008-01-01 22:34:52 +00:00
Thomas Perl 0ce8ee3c7b Do not send Referer header when downloading episodes
git-svn-id: svn://svn.berlios.de/gpodder/trunk@469 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2007-11-22 20:54:30 +00:00
Thomas Perl a72bd55808 Add error reporting when download fails because of an I/O error
git-svn-id: svn://svn.berlios.de/gpodder/trunk@453 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2007-11-05 12:55:36 +00:00
Thomas Perl 9343da2eb0 Fix format_filesize() function to be standards-conformant (unit prefixes)
git-svn-id: svn://svn.berlios.de/gpodder/trunk@448 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2007-11-03 13:18:59 +00:00
Thomas Perl ac149c7b7a New Configuration/Settings Manager; massive code clean-ups
git-svn-id: svn://svn.berlios.de/gpodder/trunk@447 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2007-11-02 16:37:14 +00:00
Thomas Perl 5b0c7208ca Limit download progress status updates to reduce CPU load
git-svn-id: svn://svn.berlios.de/gpodder/trunk@436 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2007-10-06 10:41:46 +00:00
Thomas Perl e2db68e087 Finally remove Desktop symlink code; several compatibility fixes
git-svn-id: svn://svn.berlios.de/gpodder/trunk@433 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2007-09-25 20:06:48 +00:00
Thomas Perl f84d984780 Replace wget with new gpodder.download module; User-agent support
git-svn-id: svn://svn.berlios.de/gpodder/trunk@421 b0d088ad-0a06-0410-aad2-9ed5178a7e87
2007-09-18 18:25:25 +00:00