Changed sync code to check needed pace against available space and raise
error if there is not enough room for the track. This causes the track
to be listed in the failed_sync list. I could not get it to be in the
failed_sync list without raising an exception. Added a new sync failed
exception.
Also changed the main gtkui code to not include the failed_sync tracks
in the list of tracks to perform post-sync processing on. This prevents
tracks that were not copied from being marked as played.
This adds auto-discovery of the channel ID and new-style feed for old-style
(username-based) feed URLs when the V3 API key is available, and also adds an
extra menu item for migrating subscriptions.
The 'Episode details', or shownotes, could be displayed but not
hidden. Further, the menu item and the context sensitive menu gave
inconsistent behavior when multiple episodes were selected. And
I've removed the 'Episode details' context sensitive menu from the
'Progress' notebook page since this displays the shownotes on the
hidden 'Podcasts' notebook page.
steps to reproduce:
0) have update setting on "download immediately"
1) when a new episode starts downloading
2) pause and then resume the download
3) manually update the podcast
result: a duplicate download task gets added/queued, can lead to corrupt
downloads.
there are other circumstances that can trigger the bug, but this one is
simplest/most reliable to reproduce.
while i can't claim to understand all of the download-handling code,
this seems (more) correct, and fixes the problem.
note: if the code looks confusing, the git diff patch just came out
weird -- compare the "before" and "after" files manually..
When all downloads/syncs are finished, gPodder displays a summary of
downloaded episodes, having cut the titles if they are too long.
However, Russian descriptions are regular, non-unicode python strings,
and gPodder may cut only a part of a multi-byte UTF-8 sequence. It
causes an exception like this:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xbe in position 51:
invalid start byte
This patch fixes that by converting the title to a unicode string if
it's not unicode.
This bug is similar to bug 1825, commit
e1ce9b0551.
In src/gpodder/gtkui/main.py: Use "callback is None"
instead of "callback==None", and also make the function
signature nicer (spacing, newline).
Remove trailing whitespace in all files affected by the
latest device sync patch:
git show HEAD | diffstat -l | xargs sed -i 's/\s\+$//g'
Context menues from extensions were grouped by string parsing.
If "/" is in the string the string before the seperator is used as
root menu entry and the string after the seperator is used as
sub-menu entry
- Add category metadata in every extension
- Show this category in the extension list gui
- Add "mandatory_in" and "disable-in" configuration for an extension
- Add Ubuntu unity check to enable/disable unity specific extensions
- Move "gpodder.win32" and "gpodder.osx" setting to the "gpodder.ui" namespace to be able to use it in the extensions category settings
- Only show metadata information in the right-click dialog of an extension
1) Redid the youtube video format list (added fallbacks for each quality
setting) and added a new config key youtube.preferred_format_ids, that
accepts a list of supported quality ids.
2) Added a GUI setting switcher that lets a user pick between predefined
video quality settings and respects the 'custom' setting. 'Custom'
should currently only be used if the user prefers 3D formats or 3GP.
All other variants are in the normal settings with sane fallbacks.
Existing users will not feel any change (current fmt=18 default is
respected). Only the default fallback for get_real_download_url() was
changed (to 720p), but that will never be called unless the user clears
her youtube.preferred_fmt_id variable.
Detect network connections on Linux (still need to find a way to
implement it for Windows and OS X - on these platforms, this
implementation acts as if the connection is always available).
We might need to use this in more places in the code, but for starters
this should work nicely.
The Linux implementation assumes the "ip" command is available.
After a year of basically no work towards Maemo 5 support,
I consider gPodder 3-on-Maemo 5 something that we won't ever
do, so the remaining codes goes. This also cleans up some
dead code in the Gtk UI that's been sitting there.
If anybody wants to step up and do something about that, be
my guest. If anything, I'd assume that if anything on the N900,
gPodder 3-on-Nemo Mobilemight be feasible, and in that case, it
should be "just like Harmattan" in most ways.
Move download resuming code from Gtk UI module to
gpodder.common (new module) and use it from the QML UI
for a simple "Resume downloads" dialog at startup.