Wed, 29 Aug 2007 20:26:50 +0200 Upgrade to the GNU General Public License, Version 3 * bin/gpodder: Upgrade to GPLv3 * COPYING: Upgrade to GPLv3 * doc/dev/copyright_notice: Upgrade to GPLv3 * Makefile: Upgrade to GPLv3 * README: Upgrade to GPLv3 * setup.py: Upgrade to GPLv3 * src/gpodder/*.py: Upgrade to GPLv3 (except for SimpleGladeApp and cache, as these are LGPL or other and do not originate from gPodder) Wed, 29 Aug 2007 19:32:22 +0200 Integration changes, commit and ChangeLog migration * doc/dev/svncl.sed: Use tabs instead of 8 spaces for ChangeLog edit * Makefile: Make $EDITOR edit "ChangeLog" directly Wed, 29 Aug 2007 19:17:36 +0200 Last batch of experimental change merges (up to svn r398) * doc/dev/tepache-howto.txt: Removed * doc/dev/tepache: Removed * src/gpodder/gui.py.orig: Removed * src/gpodder/libwget.py: Send progress = 0.0 on inital status update * src/gpodder/libpodcasts.py: Try to get episode metadata from several different properties of the corresponding feedparser entries; warn user when we couldn't get the episode title and try to get the episode title from the filename of the URL if we still have not found an episode title * src/gpodder/libgpodder.py: Add get_device_name() that returns a "nice" representative string of the currently selected device that can be used to represent the device in the GUI * src/gpodder/util.py: Return "(unknown)" string when bytesize in format_filesize() when the size has a negative value; make get_tree_icon() catch errors and be more corrent with icon creation; add get_first_line() function that extracts the first line of a string * src/gpodder/libipodsync.py: Add "divx" to list of video extensions * src/gpodder/services.py: DownloadStatusManager has a new observer notification: "progress-detail"; add unregister() functionality for observers; add request_progress_detail() function that can be used to force a "progress-detail" notification to be sent out to all relevant observers; remove get_url_by_iter() function as it is not needed anymore * src/gpodder/gui.py: Clean-up after tepache dependency removal; new GladeWidget base class that subclasses SimpleGladeApp and simplifies class creation for our gPodder windows; add context menu to treeAvailable; re-work play_or_download() and make it return a list of boolean indicators on which actions can be performed on the selected items; move show_message() and show_confirmation() to GladeWidget; disable editing of the URL in the channel info dialog, this simplifies code and editing the URL doesn't make so much sense anyway (adding the new url and removing the old does the same and is easier, code-wise); add support for cancelling downloads in the available podcasts view; support live status view and download cancelling in the gPodderEpisode dialog window by hooking up to DownloadStatusManager as observer * src/gpodder/SimpleGladeApp.py: Customize for gPodder (remove usage of weakref for keyword arguments -> properties of new object) * bin/gpodder: We're using a experimental development version now * data/gpodder.glade: Add progress bar and associated buttons to gPodderEpisode dialog * MANIFEST.in: Removed gpodder.py.orig inclusion * Makefile: Removed support for tepache Wed, 29 Aug 2007 19:05:57 +0200 More changes from the experimental branch (up to svn r382) * src/gpodder/liblocdbreader.py: Clean-up * src/gpodder/libwget.py: Use "gpodder.services" instead of accepting a generic download status manager as constructor parameter; remove downloadStatusManager class (moved to gpodder.services) * src/gpodder/console.py: More clean-ups; use get_new_episodes() instead of duplicating code here; simplify the code for wget version detection * src/gpodder/libpodcasts.py: Improve channel/episode generation from feedparser objects (with error handling); utilize download status manager from "gpodder.services" instead of accepting a download status manager as parameter; clean up unneeded functions and rename some functions to make the code more readable; use util.get_tree_icon() for compositing a nice icon; remove the "played" column from the treemodel; add local_filename to treemodel * src/gpodder/liblocdbwriter.py: Clean-up * src/gpodder/libgpodder.py: Clean-up * src/gpodder/util.py: Add torrent_filename() function that tries to extract the filename of the file a .torrent file contains; add file_extension_from_url() function that returns the file extension in a URL; add file_type_by_extension() that returns the type of a file based on its extension; add get_tree_icon() that loads a named icon and optionally adds a bullet to it (unplayed status indicator) * src/gpodder/libipodsync.py: Clean-up * src/gpodder/services.py: New module that currently contains the improved DownloadStatusManager and a single object that servces as download status manager for all parts of gpodder * src/gpodder/gui.py: Only one column for status/played; use "gpodder.services" for the download status manager; clean-up * src/gpodder/liblocaldb.py: Clean-up * bin/gpodder: Clean-up * data/gpodder.glade: Clean-up; removed "show played column" preference in gPodderProperties dialog Wed, 29 Aug 2007 18:49:37 +0200 First import from experimental branch (up to svn r375) * src/gpodder/librssreader.py: Removed in favor of python-feedparser * src/gpodder/libwget.py: Percentage is now a float, don't set to 0 when there has been an error * src/gpodder/console.py: Use {load,save}_channels methods; code cleanup and simplification * src/gpodder/cache.py: Add python-feedcache module from Doug Hellman * src/gpodder/libpodcasts.py: Use opml and feedcache for channel list and RSS reading; use shelve for new ChannelSettings class; clean-up podcastChannel and podcastItem; better TreeModel generator for podcastChannel (try to cache the model, only updates icons, etc...); remove downloadRss method in podcastChannel; move DownloadHistory and Playbackhistory to libgpodder; new load_channels() and save_channels() functions to save/load the channel list to an OPML file * src/gpodder/libgpodder.py: BIG clean-up; remove gPodderChannelWriter and gPodderChannelReader (this is now in libpodcasts as simple functions); add DownloadHistory and PlaybackHistory from libpodcasts; * src/gpodder/gui.py: Use new functions for channel list loading/saving; only update treemodel for treeAvailable when it's really necessary * src/gpodder/liblocaldb.py: Remove unnecessary functions that have not been used for a while (treemodel-related); use load_channels() instead of gPodderChannelReader Wed, 29 Aug 2007 18:31:16 +0200 * ChangeLog: Older changes can be found on the gPodder website