Commit Graph

66 Commits

Author SHA1 Message Date
MarkusHackspacher 3ce9cd55e7 remove too many blank lines 2018-07-24 14:11:05 +02:00
MarkusHackspacher 82f41f4c21 sorting imports
with isort -y -rc
see #393
2018-07-24 11:08:10 +02:00
MarkusHackspacher a90fa0b521 fix W391 blank line at end of file 2018-02-11 21:51:40 +01:00
Eric Le Lay 11569ca31d more pycodestyle checks
see #393 for discussion
2018-02-06 15:19:08 +01:00
Thomas Perl 98ec45a712 Update copyright years (2018) 2018-01-28 19:39:53 +01:00
Thomas Perl 17112ee247 Update copyright years (2017) 2017-12-16 13:52:51 +01:00
Thomas Perl 36eefc8a30 Update copyright years (2016) 2016-01-15 15:22:52 +01:00
Thomas Perl aa72634950 Update copyright years (2015) 2015-05-24 19:33:39 +02:00
Thomas Perl 553e35f219 Update copyright years (2014) 2014-02-27 21:55:13 +01:00
Thomas Perl bda982be02 Update copyright years for 2013 2013-03-05 16:38:48 +01:00
Thomas Perl 5205a4b71d Update copyright years (add 2012) 2012-01-09 21:19:24 +01: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 5ac4b4ded0 Gtk UI: Remove dependency manager code 2011-02-24 23:21:37 +01:00
Thomas Perl cf44f7c30e Code cleanup: Remove unused imports 2010-05-17 18:26:13 +02:00
Thomas Perl 4de99e166b Use WebKitGTK+ as replacement for GTKHTML2
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.
2010-04-07 20:31:38 +02:00
Götz Waschk b89412f4fb Remove obsolete PyBluez dependency (bug 932)
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.
2010-03-14 21:56:50 +01:00
Ville-Pekka Vainio b426d8c917 Mention bluetooth-sendto in dependency manager (bug 892) 2010-02-25 01:25:00 +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 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 94513d4365 Refactor CoverDownloader to gtkui.services
This makes the gpodder.services module GTK+-free, and
also removes the global state object cover_downloader.
2009-08-24 16:47:59 +02:00
Thomas Perl 26dda59ad9 Split out DependencyManager's GTK+-related stuff
Again, we simply split the GTK+-related code to a
new module in the gpodder.gtkui package.
2009-08-24 16:27:17 +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 bfcef518f5 Move GTK+-related functions from gpodder.util to gtkui.model 2009-08-14 00:14:06 +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 41b6e827cd Remove libtagupdate + related functionality
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?).
2009-07-06 15:54:57 +02:00
Thomas Perl 081f120808 Show error message when download dir is readonly
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.
2009-06-04 12:35:18 +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 48ddd44166 Remove cancelled and failed downloads on exit
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.
2009-04-02 00:33:49 +02:00
Thomas Perl 38a1bf5c88 DownloadStatusManager it not a global object anymore
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.
2009-04-01 13:34:19 +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 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 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 a213a3cc85 Merge release infos and last-minute changes from 0.14.1
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.
2009-02-01 21:43:20 +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
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
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 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 bb7e7c786b Support for YouTube in CoverDownloader. 2008-10-14 19:14:10 +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
Nick 6c0221b263 Fix problem for download cancelling when deleting channels
Merge some minor fixes (indentation in services.py and use
episode.url instead of episode.link in gui.py) from the 0.12.2
release branch.
2008-08-03 21:52:13 +02:00
Thomas Perl 9a08d06d77 Mon, 28 Jul 2008 10:50:51 +0200 <thp@perli.net>
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
2008-07-28 08:53:01 +00:00
Nick 645da96c8b Tue, 22 Jul 2008 15:01:42 -0400 <me@nikosapi.org>
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
2008-07-22 19:09:48 +00:00
Nick bc4b5cb15d Sat, 19 Jul 2008 20:37:10 -0400 <me@nikosapi.org>
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
2008-07-20 00:46:49 +00:00
Thomas Perl 1174dd057c Sat, 14 Jun 2008 15:56:53 +0200 <thp@perli.net>
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
2008-06-14 13:57:34 +00:00
Thomas Perl d3533acc1f Fri, 13 Jun 2008 21:32:57 +0200 <thp@perli.net>
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
2008-06-14 11:43:53 +00:00
Thomas Perl bb4f2f11c5 Wed, 14 May 2008 15:34:25 +0200 <thp@perli.net>
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
2008-05-14 13:38:06 +00:00
Thomas Perl dd2300e727 Mon, 12 May 2008 11:26:43 +0200 <thp@perli.net>
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
2008-05-12 09:29:05 +00:00
Thomas Perl 4e137b290e Wed, 23 Apr 2008 22:31:42 +0200 <thp@perli.net>
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
2008-04-23 20:33:27 +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