Re: Review Request: [GSoC] Amarok integration with gpodder.net (GPodder stuff)
On Mon, Oct 17, 2011 at 22:58, Lucas Lira Gomes x8luca...@gmail.com wrote: Hi Stefan, we can do this way, but I think it isn't efficient. We only want to know where we stopped, so there is no need to make more than one episode action. Unless something like play history is a to-do for Amarok (Bart should know ^^). It is, we already keep playback position markers automatically to start playing where amarok stopped before. Full history is not really required, unless it is used for chaptering of podcast episodes. This could enhance the podcast listening experience on Amarok. ___ Amarok-devel mailing list Amarok-devel@kde.org https://mail.kde.org/mailman/listinfo/amarok-devel
Re: Review Request: [GSoC] Amarok integration with gpodder.net (GPodder stuff)
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hello, we can do this way, but I think it isn't efficient. We only want to know where we stopped, so there is no need to make more than one episode action. Unless something like play history is a to-do for Amarok (Bart should know ^^). It is, we already keep playback position markers automatically to start playing where amarok stopped before. Full history is not really required, unless it is used for chaptering of podcast episodes. This could enhance the podcast listening experience on Amarok. so probably at first we don't want to send Playlist Actions also for skips (I will explain in a few Minutes what this could be good for). Still we need to change the existing implementation. Without sending skips and only wanting to know where we stopped, only 1 EpisodeAction for Play should be uploaded to the Server (and not one every Minute or half Minute). This Episode Action should probably be sent when the user clicks pause or stop and doesn't resume listening in e.g. 1 minute. Of course we know the gpodder.net service can be unreliable from time to time, but I also think the case where a user stops listening a Podcast, shuts down Amarok his computer (and gpodder.net didn't work and the episode action couldn't be sent in time) and then wants to continue listening the Podcast on his mobile is not soo common. Why it makes sense to upload (and it isn't that inefficient, keeping some data structures in memory and uploading them as a bunch if nothing [related to this episode or podcast in general] happened for 1 Minute doesn't cost much more then uploading a single action) also skips? Atm this Data is only used (and visible) internally in gpodder.net for Podcast Producers. But Bart made a good point, (crowd-sourcing) chaptering of podcast episodes would be a cool feature for gpodder.net. Stefan -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk6dR0QACgkQlZvAMV/NgGIjbgCeOUl/+ws7LiZSbXn8LQOK7RtW M08AoK1xYMcQg2fLY144aDZZhVgjMbK2 =vkJp -END PGP SIGNATURE- ___ Amarok-devel mailing list Amarok-devel@kde.org https://mail.kde.org/mailman/listinfo/amarok-devel
Re: Review Request: [GSoC] Amarok integration with gpodder.net (GPodder stuff)
Hi Stefan, Fixed some Stuff (use of #DEFINES instead of constants creation of own nam), but found some serious Problems: Good, but you can't use The::networkAccessManager() as the nam or KDE will keep asking if you authorize amarok to login in gpodder-net. So, the solution is to use or own nam ^^. It uploads an EpisodeAction::PLAY every minute, which is not correct. Play should only be sent once to the Webservice, when I stop/pause/seek (not sure about seek, @stefankoegl can you clarify?) and not every minute. Please change this asap, cause if more users start using the gpodder service in Amarok the gpodder Server will receive too many requests. I'm trying to put the status sync to work only when the user stop/pause amarok. The problem is that if the user closes Amarok, then we have no guarantee that the status data will be received by the server. Any failure will make us loose our status data and since the server is a bit unresponsive this problem may happen frequently. So we must create, at least, something similar to the actual send-by-minute approach or the GPodder Service may not work correctly. Also after restarting amarok and starting a podcast episode again from the start, the time in the EpisodeActions seem to be counted from the last point where I stopped it and not from the beginning (also try to find a way to set the start always to 00:00, it is always 00:01). And what the problem in counting time from the last point where we stopped? I use this info to set an auto-bookmark in the seek bar, so the user can know where he stopped to listen. Also, every time I set the start point to 00:00, then gpodder.net doesn't save the last point where I stopped. Regards, Lucas Lira Gomes. On 15 October 2011 19:20, Stefan Derkits ste...@derkits.at wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Lucas, tried the PodcastProvider now that it is in Master. Fixed some Stuff (use of #DEFINES instead of constants creation of own nam), but found some serious Problems: It uploads an EpisodeAction::PLAY every minute, which is not correct. Play should only be sent once to the Webservice, when I stop/pause/seek (not sure about seek, @stefankoegl can you clarify?) and not every minute. Please change this asap, cause if more users start using the gpodder service in Amarok the gpodder Server will receive too many requests. Also after restarting amarok and starting a podcast episode again from the start, the time in the EpisodeActions seem to be counted from the last point where I stopped it and not from the beginning (also try to find a way to set the start always to 00:00, it is always 00:01). Stefan -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk6aByMACgkQlZvAMV/NgGLjcgCgkIAsUvT9IXWvp0b0qO8lnT2u P14AoJmnL4cDmuTKTMFGleIpzapj1B29 =Kux6 -END PGP SIGNATURE- ___ Amarok-devel mailing list Amarok-devel@kde.org https://mail.kde.org/mailman/listinfo/amarok-devel
Re: Review Request: [GSoC] Amarok integration with gpodder.net (GPodder stuff)
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hello, Good, but you can't use The::networkAccessManager() as the nam or KDE will keep asking if you authorize amarok to login in gpodder-net. So, the solution is to use or own nam ^^. We have to find a solution for this, a own nam is not the correct solution imho. Will check where this authorization comes from and what can be done to avoid it. I'm trying to put the status sync to work only when the user stop/pause amarok. The problem is that if the user closes Amarok, then we have no guarantee that the status data will be received by the server. Any failure will make us loose our status data and since the server is a bit unresponsive this problem may happen frequently. So we must create, at least, something similar to the actual send-by-minute approach or the GPodder Service may not work correctly. Yes, closing Amarok is of course sth that needs consideration, sending a Status Update every Minute is still not the correct thing to do, imagine just 100 Amarok User listening to Podcast at the same Time, would make (at least) 100 Requests/Minute, just from these 100 Users. So our problem is: We need to make sure that the last Request to upload an Episode Action was received by gpodder.net. Anyone has an Idea how to do this, can we do this in Amarok or do I need to implement Support for that in the Library. And what the problem in counting time from the last point where we stopped? I use this info to set an auto-bookmark in the seek bar, so the user can know where he stopped to listen. Also, every time I set the start point to 00:00, then gpodder.net doesn't save the last point where I stopped. Yes, I saw that it was saved, but if I start the Podcast Episode again at 00:00:00 and listen till 00:05:00 it shouldn't show 00:15:00 to 00:20:00 just because I listened before till 00:15:00. Stefan -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk6b8KIACgkQlZvAMV/NgGIqpgCfczhZPWJGJ/VPNp2w0AwIyTxr JvUAoIBToGOcd2pa0O9G17B6LDLGzbpf =adoI -END PGP SIGNATURE- ___ Amarok-devel mailing list Amarok-devel@kde.org https://mail.kde.org/mailman/listinfo/amarok-devel
Re: Review Request: [GSoC] Amarok integration with gpodder.net (GPodder stuff)
On Sun, Oct 16, 2011 at 23:25, Lucas Lira Gomes x8luca...@gmail.com wrote: Hi Stefan, Fixed some Stuff (use of #DEFINES instead of constants creation of own nam), but found some serious Problems: Good, but you can't use The::networkAccessManager() as the nam or KDE will keep asking if you authorize amarok to login in gpodder-net. So, the solution is to use or own nam ^^. It uploads an EpisodeAction::PLAY every minute, which is not correct. Play should only be sent once to the Webservice, when I stop/pause/seek (not sure about seek, @stefankoegl can you clarify?) and not every minute. Please change this asap, cause if more users start using the gpodder service in Amarok the gpodder Server will receive too many requests. I'm trying to put the status sync to work only when the user stop/pause amarok. The problem is that if the user closes Amarok, then we have no guarantee that the status data will be received by the server. Any failure will make us loose our status data and since the server is a bit unresponsive this problem may happen frequently. So we must create, at least, something similar to the actual send-by-minute approach or the GPodder Service may not work correctly. You should use PodcastProvider::completePodcastDownloads(). It is called before amarok shuts down. Currently used by SqlPodcastProvider only. Make sure to have a timeout on the gpodder operation though. Don't want to delay shutdown because the service is unavailable. Another option is to wait with uploading the PLAY action until next startup. Also after restarting amarok and starting a podcast episode again from the start, the time in the EpisodeActions seem to be counted from the last point where I stopped it and not from the beginning (also try to find a way to set the start always to 00:00, it is always 00:01). And what the problem in counting time from the last point where we stopped? I use this info to set an auto-bookmark in the seek bar, so the user can know where he stopped to listen. Also, every time I set the start point to 00:00, then gpodder.net doesn't save the last point where I stopped. Regards, Lucas Lira Gomes. On 15 October 2011 19:20, Stefan Derkits ste...@derkits.at wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Lucas, tried the PodcastProvider now that it is in Master. Fixed some Stuff (use of #DEFINES instead of constants creation of own nam), but found some serious Problems: It uploads an EpisodeAction::PLAY every minute, which is not correct. Play should only be sent once to the Webservice, when I stop/pause/seek (not sure about seek, @stefankoegl can you clarify?) and not every minute. Please change this asap, cause if more users start using the gpodder service in Amarok the gpodder Server will receive too many requests. Also after restarting amarok and starting a podcast episode again from the start, the time in the EpisodeActions seem to be counted from the last point where I stopped it and not from the beginning (also try to find a way to set the start always to 00:00, it is always 00:01). Stefan -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk6aByMACgkQlZvAMV/NgGLjcgCgkIAsUvT9IXWvp0b0qO8lnT2u P14AoJmnL4cDmuTKTMFGleIpzapj1B29 =Kux6 -END PGP SIGNATURE- ___ Amarok-devel mailing list Amarok-devel@kde.org https://mail.kde.org/mailman/listinfo/amarok-devel
Re: Review Request: [GSoC] Amarok integration with gpodder.net (GPodder stuff)
Hi, On 10/16/2011 12:20 AM, Stefan Derkits wrote: It uploads an EpisodeAction::PLAY every minute, which is not correct. Play should only be sent once to the Webservice, when I stop/pause/seek (not sure about seek, @stefankoegl can you clarify?) and not every minute. The play-actions are intended to record one interval that has been played by the user at once. I'll illustrate this with an example. * User starts playing from the beginning create action 1 with start 00:00 * User plays to 05:00 then seeks to 10:00 set position to 05:00 in actions 1 and send it create action 2 with start 10:00 * User plays to 15:00 and stops playback set position to 15:00 in action 2 and send it gPodder also skips actions if the time plays (difference between stop and start) is below some threshold (maybe 5 sec), but you are free to ignore such optimizations or invent your own (if they fit into the overall concept). Repeating the same interval periodically doesn't make much sense. The server will not try to merge these actions and they will clutter the user's history view. -- Stefan ___ Amarok-devel mailing list Amarok-devel@kde.org https://mail.kde.org/mailman/listinfo/amarok-devel
Re: Review Request: [GSoC] Amarok integration with gpodder.net (GPodder stuff)
Hi, On 10/17/2011 11:08 AM, Stefan Derkits wrote: So our problem is: We need to make sure that the last Request to upload an Episode Action was received by gpodder.net. Anyone has an Idea how to do this, can we do this in Amarok or do I need to implement Support for that in the Library. I can't judge if this will work for Amarok but I'll briefly describe how gPodder handles this. All actions are cached before sending them to the webservice in a batch. Accumulated actions are sent if no new actions appear for a certain time (1 minute) or right before gPodder terminates. This caching reduces load on the service (by sending in batches) and ensures that no actions are lost (eg when there is some maintenance on the site). If some actions can't be sent during shutdown, gPodder tries again at startup and keeps them in the cache until they have been successfully uploaded. -- Stefan ___ Amarok-devel mailing list Amarok-devel@kde.org https://mail.kde.org/mailman/listinfo/amarok-devel
Re: Review Request: [GSoC] Amarok integration with gpodder.net (GPodder stuff)
Hi Stefan, we can do this way, but I think it isn't efficient. We only want to know where we stopped, so there is no need to make more than one episode action. Unless something like play history is a to-do for Amarok (Bart should know ^^). Regards, Lucas Lira Gomes. On 17 October 2011 17:31, Stefan Kögl ste...@skoegl.net wrote: Hi, On 10/16/2011 12:20 AM, Stefan Derkits wrote: It uploads an EpisodeAction::PLAY every minute, which is not correct. Play should only be sent once to the Webservice, when I stop/pause/seek (not sure about seek, @stefankoegl can you clarify?) and not every minute. The play-actions are intended to record one interval that has been played by the user at once. I'll illustrate this with an example. * User starts playing from the beginning create action 1 with start 00:00 * User plays to 05:00 then seeks to 10:00 set position to 05:00 in actions 1 and send it create action 2 with start 10:00 * User plays to 15:00 and stops playback set position to 15:00 in action 2 and send it gPodder also skips actions if the time plays (difference between stop and start) is below some threshold (maybe 5 sec), but you are free to ignore such optimizations or invent your own (if they fit into the overall concept). Repeating the same interval periodically doesn't make much sense. The server will not try to merge these actions and they will clutter the user's history view. -- Stefan ___ Amarok-devel mailing list Amarok-devel@kde.org https://mail.kde.org/mailman/listinfo/amarok-devel
Re: Review Request: [GSoC] Amarok integration with gpodder.net (GPodder stuff)
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Lucas, tried the PodcastProvider now that it is in Master. Fixed some Stuff (use of #DEFINES instead of constants creation of own nam), but found some serious Problems: It uploads an EpisodeAction::PLAY every minute, which is not correct. Play should only be sent once to the Webservice, when I stop/pause/seek (not sure about seek, @stefankoegl can you clarify?) and not every minute. Please change this asap, cause if more users start using the gpodder service in Amarok the gpodder Server will receive too many requests. Also after restarting amarok and starting a podcast episode again from the start, the time in the EpisodeActions seem to be counted from the last point where I stopped it and not from the beginning (also try to find a way to set the start always to 00:00, it is always 00:01). Stefan -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk6aByMACgkQlZvAMV/NgGLjcgCgkIAsUvT9IXWvp0b0qO8lnT2u P14AoJmnL4cDmuTKTMFGleIpzapj1B29 =Kux6 -END PGP SIGNATURE- ___ Amarok-devel mailing list Amarok-devel@kde.org https://mail.kde.org/mailman/listinfo/amarok-devel
Re: Review Request: [GSoC] Amarok integration with gpodder.net (GPodder stuff)
--- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/102844/#review7309 --- Ship it! Testing and fixing code style. Will commit later. - Bart Cerneels On Oct. 13, 2011, 9:25 p.m., Lucas Gomes wrote: --- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/102844/ --- (Updated Oct. 13, 2011, 9:25 p.m.) Review request for Amarok, Stefan Derkits and Bart Cerneels. Description --- The attached diff is the work done during this summer to integrate gpodder.net web service with Amarok. Notice that this diff have only GPodder service related stuff and that you need to apply this patch http://git.reviewboard.kde.org/r/102846/ before anything. Added features: Podcast subscription synchronisation. Podcast status synchronisation. Browse through podcasts suggested by gpodder.net. Browse through gpodder.net top recommended podcasts. Diffs - ChangeLog 14422b1 src/core-impl/podcasts/gpodder/GpodderPodcastMeta.h PRE-CREATION src/core-impl/podcasts/gpodder/GpodderPodcastMeta.cpp PRE-CREATION src/core-impl/podcasts/gpodder/GpodderProvider.h PRE-CREATION src/core-impl/podcasts/gpodder/GpodderProvider.cpp PRE-CREATION src/services/gpodder/CMakeLists.txt 97f14b3 src/services/gpodder/GpodderConfigWidget.ui PRE-CREATION src/services/gpodder/GpodderService.h fac508a src/services/gpodder/GpodderService.cpp e0cb02f src/services/gpodder/GpodderServiceConfig.h PRE-CREATION src/services/gpodder/GpodderServiceConfig.cpp PRE-CREATION src/services/gpodder/GpodderServiceModel.h 1fbc90d src/services/gpodder/GpodderServiceModel.cpp d899456 src/services/gpodder/GpodderServiceSettings.h PRE-CREATION src/services/gpodder/GpodderServiceSettings.cpp PRE-CREATION src/services/gpodder/GpodderTreeItem.h 5698d5b src/services/gpodder/GpodderTreeItem.cpp bfa216e src/services/gpodder/amarok_service_gpodder_config.desktop PRE-CREATION Diff: http://git.reviewboard.kde.org/r/102844/diff/diff Testing --- This patch is the result of git diff for the range of several commits prior to HEAD, rebased on current master, and should build. Everything is working as expected and there aren't any known issues. Thanks, Lucas Gomes ___ Amarok-devel mailing list Amarok-devel@kde.org https://mail.kde.org/mailman/listinfo/amarok-devel