Re: Review Request: [GSoC] Amarok integration with gpodder.net (GPodder stuff)

2011-10-18 Thread Bart Cerneels
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)

2011-10-18 Thread Stefan Derkits
-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)

2011-10-17 Thread Lucas Lira Gomes
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)

2011-10-17 Thread Stefan Derkits
-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)

2011-10-17 Thread Bart Cerneels
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)

2011-10-17 Thread Stefan Kögl
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)

2011-10-17 Thread Stefan Kögl
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)

2011-10-17 Thread Lucas Lira Gomes
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)

2011-10-15 Thread Stefan Derkits
-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)

2011-10-14 Thread Bart Cerneels

---
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