Closed GoogleCodeExporter closed 9 years ago
The issue with episodes always being bold was a bug. This should now be fixed,
and only unplayed episodes should be bold.
As to your thoughts above:
1. No - unplayed are unplayed. The latest should be at the top anyway.
2. I guess a 'Download X' episodes automatically would make sense.
3. Why? This is not as easy as it seems. Should it be X epsiodes, or X unplayed
episodes? What about downloaded episodes - should they always bee displayed?
There is no other limiting of items - e.g. you cant limit an album to only show
10 tracks. What do other apps (e.g. Amarok, Clementine, etc) do?
4. Not sure about this. If the podcast is bold - then it means it has new
episodes. Not convinced the number of new episode makes much difference.
5. It is - this was the bug that has now been fixed.
I also think it should be possible to cancel podcast downloads, and I'll try
and add this for 1.5.0
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 11:15
I *almost* filed the bold thing as a bug...guess I should have :)
1. If the podcast header turns bold when new episodes are available and the new
episodes are shown in bold then this is no longer an issue. I know the new
episodes are always at the top, the problem was there was no convenient way to
tell if it was listened to or not.
2. I agree.
3. I admit this is more of a pet peeve than a deficiency. Gpodder offers this
feature as well as most feed readers such as Akregator. It's simply a way to
unclutter the interface and allow for viewing more open feeds at once. Amarok
is too buggy on my computer to use so I can't speak to that, but Clementine is
the player I used before Cantata and it does not offer this feature (although
it has many of its own problems with Podcast support, including #2).
I can write a Bash script that will blow your socks off but I am by no means a
developer and hoped this would be trivial to implement. If you were to
implement it I would say that it should be X episodes *unless* X is less than
the number of unplayed episodes. If unplayed episodes *exceeds* X then show
all unplayed episodes past X. In other words, show all unplayed episodes no
matter what, perhaps with a context menu to mark episodes as listened or not.
4. I agree. As long as there is a visual cue that does not require clicking
every feed I don't think it matters what that cue is.
5. Yay!
The only thing I'm unclear on is what happens when I add a new feed. I assume
a new feed is wholly consider unplayed (Cantata is failing to compile so I
can't find out, see below). So will every feed always be considered unplayed
until I play each and every episode? For example, here was the (clunky)
process of adding a new Podcast in Clementine:
1. Disable auto-download (don't forget this because no way to cancel in
Clementine either!)
2. Add feed
3. Re-enable auto-download
4. Shift-click all episodes (which are bold to indicate unplayed) except the
latest, right click, select "Mark as Listened", at which point they are no
longer bold.
5. Right click latest episode to download
In Clementine, without the right click menu, all the old episodes would be bold
forever and the feed would always indicate new episodes.
Here is the error when I try to compile:
Linking CXX static library ../lib/libsupport.a
Generating moc_playlistspage.cpp
Generating moc_audiocddevice.cpp
Generating moc_albumsmodel.cpp
Generating moc_scrobblinglove.cpp
[ 20%] Built target support
Generating moc_synccollectionwidget.cpp
Generating moc_othersettings.cpp
Generating moc_devicepropertieswidget.cpp
Generating moc_preferencesdialog.cpp
Generating moc_albumspage.cpp
Generating moc_wikipediasettings.cpp
Generating moc_onlineservicespage.cpp
Generating moc_musiclibrarymodel.cpp
Generating moc_contextwidget.cpp
Generating moc_taghelperiface.cpp
Generating moc_backdropcreator.cpp
Generating moc_dynamicpage.cpp
Generating moc_musiclibraryproxymodel.cpp
Generating moc_digitallyimportedsettings.cpp
Generating moc_playbacksettings.cpp
Generating moc_streamsearchmodel.cpp
Generating moc_tagreader.cpp
Generating moc_digitallyimported.cpp
Generating moc_cddbselectiondialog.cpp
Generating moc_magnatuneservice.cpp
Generating moc_devicespage.cpp
Generating moc_httpstream.cpp
Generating moc_streamdialog.cpp
Generating moc_actionmodel.cpp
Generating moc_actionitemdelegate.cpp
Generating moc_volumeslider.cpp
Generating moc_onlineservicesmodel.cpp
Generating moc_podcastsettingsdialog.cpp
Generating moc_devicesmodel.cpp
Generating moc_albumscanner.cpp
Generating moc_application_kde.cpp
Generating moc_playlistsproxymodel.cpp
Generating moc_valueslider.cpp
Generating moc_messageoverlay.cpp
Generating moc_lastfmengine.cpp
Generating moc_albumview.cpp
Generating moc_devicepropertiesdialog.cpp
Generating moc_listview.cpp
Generating moc_songview.cpp
Generating moc_filejob.cpp
Generating moc_actiondialog.cpp
Generating moc_dynamicrulesdialog.cpp
Generating moc_metaengine.cpp
Generating moc_networkaccessmanager.cpp
Generating moc_streamsmodel.cpp
Generating moc_dynamicruledialog.cpp
Generating moc_lyricsdialog.cpp
Generating moc_mainwindow.cpp
Generating moc_streamspage.cpp
Generating moc_mountpoints.cpp
Generating moc_trackorganiser.cpp
Generating moc_scrobblingstatus.cpp
Generating moc_coverdialog.cpp
Generating moc_powermanagement.cpp
Generating moc_cddbinterface.cpp
Generating moc_device.cpp
Generating moc_onlinesettings.cpp
Generating moc_httpsocket.cpp
Generating moc_cachesettings.cpp
Generating moc_scrobbler.cpp
Generating moc_httpserver.cpp
Generating moc_playqueueview.cpp
Generating moc_tageditor.cpp
Generating moc_treeview.cpp
Generating moc_multimusicmodel.cpp
Generating moc_ultimatelyricsprovider.cpp
Generating moc_notelabel.cpp
Generating moc_servicestatuslabel.cpp
Generating moc_wikipediaengine.cpp
Generating moc_playlistsmodel.cpp
Generating moc_searchmodel.cpp
Generating moc_transcodingjob.cpp
Generating moc_soundcloudservice.cpp
Generating moc_covers.cpp
Generating moc_streamproviderlistdialog.cpp
Generating moc_currentcover.cpp
Generating moc_streamssettings.cpp
Generating moc_dynamic.cpp
Generating moc_scrobblingsettings.cpp
Generating moc_filenameschemedialog.cpp
Generating moc_mpdstats.cpp
Generating moc_notify.cpp
Generating moc_initialsettingswizard.cpp
Generating moc_stretchheaderview.cpp
Generating moc_coverwidget.cpp
Generating moc_playqueueproxymodel.cpp
Generating moc_dirviewproxymodel.cpp
Generating moc_extractjob.cpp
Generating moc_umsdevice.cpp
Generating moc_syncdialog.cpp
Generating moc_trayitem.cpp
Generating moc_itemview.cpp
Generating moc_magnatunesettingsdialog.cpp
Generating moc_autohidingsplitter.cpp
Generating moc_podcastservice.cpp
Generating moc_actionlabel.cpp
Generating moc_searchpage.cpp
Generating moc_view.cpp
Generating moc_librarypage.cpp
Generating moc_ratingwidget.cpp
Generating moc_genrecombo.cpp
[ 20%] Built target cantata_automoc
Makefile:137: recipe for target 'all' failed
make: *** [all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
Original comment by stupidgo...@gmail.com
on 25 Sep 2014 at 5:37
I've just updated the podcast support;
1. The podcast name (not episodes) should have had the unread count in brackets
at the end. It used to, and this was broken. I have fixed this now (for both
1.5.0 and 1.4.2)
2. You can now mark podcasts as having been played, or not
3. Podcasts are downloaded sequentially - so not all at once.
4. You can cancel the download
As to the compile failier, I'm not sure - there is no error message. Could you
try a Qt-only build? Pass -DENABLE_KDE=OFF to cmake I'll try a KDE build in a
mo, just to see if thats the issue.
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 6:36
Just tried a KDE build - and it was broken. Fixed now.
So, the only features left to do are:
1. Limit number of downloads. Is this necessary now? seeing as they are now
done sequentially?
2. Limit the display to X episodes
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 6:46
Compiled and tried. I must say you are amazing.
1. I suppose it's a matter of convenience. I added a random podcast (Comedy
Bang Bang) which has a total of 328 episodes. With auto-downloading enabled it
started the first one and queued the rest. So it seems I have to select the
other 237 episodes and cancel the downloads then mark them as listened. I
think that limiting the number of downloads for newly added Podcasts or simply
an option to not download anything for new feeds would be very helpful, but if
it would be a pain to implement I guess it's not that big a deal.
2. Perhaps if the display of episodes could be limited then the number of
initial downloads initiated when adding a Podcast could be limited to that
number. Not a great solution, but maybe simpler?
I didn't mention it before, but I see you made a commit to notice when Cantata
is closed and a Podcast is being downloaded. The previous behavior was to
leave a ".partial" file behind and now the behavior seems to be removing all
indications of the download and starting it over manually from the beginning.
Would it be possible to make Cantata resume partial downloads if they are
interrupted?
Original comment by stupidgo...@gmail.com
on 25 Sep 2014 at 7:40
Never mind part of that last bit, I wasn't on the latest commit.
Original comment by stupidgo...@gmail.com
on 25 Sep 2014 at 7:53
1. Limiting the number of downloads should be easy enough to do - I just
haven't gotten round to it yet.
2. I'm still not convinced about hiding things. If the episodes are not
automatically downloaded, what difference does it make if they appear? At least
you know what is available.
Cantata has never resumed the downloads. If any previous .partial was left
over, it would just be removed. I guess it depends on whether the server
supports resuming. It /could/ be done - again, its a matter of time and
priorities.
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 7:56
Configurable download limit is now in trunk - but I have not actually tested
this yet! :-)
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 8:57
2. I agree, this feature has no bearing on anything really. Just something I
would make use of. Don't know how useful it would be to anyone else and it
certainly isn't necessary.
As for resuming, I think I didn't explain very well. The current behavior
seems to be that if I begin a download a ".partial" file is created in
$HOME/Podcasts/PODCAST. If I quit Cantata or a crash occurs that ".partial"
file is left on the file system. When I restart Cantata there is no indication
that the download did not complete and that there is a ".partial" file in
$HOME/Podcasts/PODCAST.
For example, I subscribe to "The Partially Examined Life." I began downloading
two random episodes and closed Cantata. Now these two files exists in
$HOME/Podcasts/The Partially Examined Life Philosophy Podcast:
PEL_ep_096_6-6-14.mp3.partial
PEL_ep_092_3-16-14.mp3.partial
When I start Cantata the files remain and there is no indication in the UI that
these partial downloads exists or that any downloads were interrupted.
Being in $HOME/Podcasts/PODCAST and not in /tmp or not being removed in some
other way means that the files could potentially be there forever.
Resuming/restarting the download or providing some visual indication that the
download was interrupted when Cantata is restarted would solve this, but I
guess it's not an issue that would directly affect many users in a noticeable
way, which is why I didn't mention it before. I'm not a developer (nor am I
you) so I don't know how important such a thing is :)
In any case I'll stop bothering you and thanks for taking the time to work on
this. I really appreciate it!
Original comment by stupidgo...@gmail.com
on 25 Sep 2014 at 8:57
Build Failure!
Building CXX object CMakeFiles/cantata.dir/gui/filesettings.o
[ 52%] Building CXX object CMakeFiles/cantata.dir/gui/interfacesettings.o
In file included from /usr/include/string.h:25:0,
from /usr/include/qt4/QtCore/qbytearray.h:48,
from /usr/include/qt4/QtCore/qstring.h:46,
from /usr/include/qt4/QtCore/QString:1,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/support/configuration.h:27,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/gui/settings.h:27,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/gui/settings.cpp:24:
/usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE
are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^
/home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/gui/settin
gs.cpp: In member function ‘void
Settings::savePodcastAutoDownloadLimit(int)’:
/home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/gui/settin
gs.cpp:1349:13: error: ‘class Configuration’ has no member named
‘remove’
cfg.remove("podcastAutoDownload");
^
CMakeFiles/cantata.dir/build.make:1268: recipe for target
'CMakeFiles/cantata.dir/gui/settings.o' failed
make[2]: *** [CMakeFiles/cantata.dir/gui/settings.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /usr/include/string.h:25:0,
from /usr/include/qt4/QtCore/qbytearray.h:48,
from /usr/include/qt4/QtCore/qvariant.h:46,
from /usr/include/qt4/QtCore/QVariant:1,
from /usr/include/kconfiggroup.h:32,
from /usr/include/kdialog.h:32,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/build/ui_filesettings.h:1,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/gui/filesettings.h:27,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/gui/filesettings.cpp:24:
/usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE
are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^
In file included from /usr/include/string.h:25:0,
from /usr/include/qt4/QtCore/qbytearray.h:48,
from /usr/include/qt4/QtCore/qstring.h:46,
from /usr/include/qt4/QtCore/qobject.h:48,
from /usr/include/qt4/QtCore/qcoreapplication.h:45,
from /usr/include/qt4/QtCore/QCoreApplication:1,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/build/config.h:4,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/gui/preferencesdialog.h:27,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/gui/preferencesdialog.cpp:24:
/usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE
are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^
In file included from /usr/include/string.h:25:0,
from /usr/include/qt4/QtCore/qbytearray.h:48,
from /usr/include/qt4/QtCore/qvariant.h:46,
from /usr/include/qt4/QtCore/QVariant:1,
from /usr/include/kconfiggroup.h:32,
from /usr/include/kdialog.h:32,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/build/ui_interfacesettings.h:1,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/gui/interfacesettings.h:27,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/gui/interfacesettings.cpp:24:
/usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE
are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^
In file included from
/usr/include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/os_defines.h:39:0,
from /usr/include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++config.h:430,
from /usr/include/c++/4.9.1/new:39,
from /usr/include/qt4/QtCore/qiterator.h:50,
from /usr/include/qt4/QtCore/qmap.h:46,
from /usr/include/qt4/QtCore/QMap:1,
from /usr/include/kxmlguiclient.h:24,
from /usr/include/kxmlguiwindow.h:32,
from /usr/include/KDE/KXmlGuiWindow:1,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/gui/mainwindow.h:32,
from /home/odin/code/archlinux/aur/vcs/cantata-kde-svn/src/cantata-kde-svn/gui/mainwindow.cpp:27:
/usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE
are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^
CMakeFiles/Makefile2:63: recipe for target 'CMakeFiles/cantata.dir/all' failed
make[1]: *** [CMakeFiles/cantata.dir/all] Error 2
Makefile:137: recipe for target 'all' failed
make: *** [all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
Original comment by stupidgo...@gmail.com
on 25 Sep 2014 at 9:03
Ah - another KDE build issue. Sorry, currently I build Qt-only. Only when I get
nearer a release do I check KDE builds! :-( Fixed now, anyway.
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 9:08
When Cantata cancels a download, it should remove the .partial file. If it
crashes, then no it would not remove them.
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 9:38
I tried "Latest episode", "Latest 2 episodes" and "Latest 5 episodes" and
everything worked as expected.
Yes, manually canceling the download removes the partial. But if I close
Cantata the partials are not removed. For example, if I am unaware that
Cantata is downloading new episodes and I restart my computer the partials will
remain on the file system and the new episodes will not finish downloading
without manual intervention.
Original comment by stupidgo...@gmail.com
on 25 Sep 2014 at 9:54
When you say close Cantata - are you not prompted to cancel the downloads?
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 9:56
Ah, I see! What I was saying must have been confusing.
When I have the Cantata window visible and select quit it does ask me about
downloads.
When I right click the tray icon and select quit there is no warning.
Original comment by stupidgo...@gmail.com
on 25 Sep 2014 at 10:01
Ah - then that is a bug. There should be a warning, I'll fix this. (Again, I
dont use the tray)
Also, when starting Cantata will now remove any .partial podcast files - this
helps in the case where it crashes.
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 10:09
I've been using the tray this whole time :)
Original comment by stupidgo...@gmail.com
on 25 Sep 2014 at 10:15
I've updated the KDE code now - so that the quit from the tray should prompt.
However, on my current laptop I dont have KDE - so have not actual tested the
compile!
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 10:26
The removal of .partial files works when I start Cantata.
The warning now appears when I quit from the tray.
Is coding really that easy or are you just that good at it?
Original comment by stupidgo...@gmail.com
on 25 Sep 2014 at 10:31
Really - if you look at Cantata's code, you would see that it's not that great!
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 10:35
So - is this feature request now complete? The only thing missing is the limit
to the number of items shown - but I'm not too keen on that.
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 10:36
Yes, it is complete. Thank You!
Original comment by stupidgo...@gmail.com
on 25 Sep 2014 at 10:42
Cool :-)
Well, its late here - and I have work in the morning!
Original comment by craig.p....@gmail.com
on 25 Sep 2014 at 10:43
Original issue reported on code.google.com by
stupidgo...@gmail.com
on 24 Sep 2014 at 8:46