Ticket #3053 (closed enhancement: fixed)

Opened 21 months ago

Last modified 9 months ago

Personal eventing protocol (XEP 0163) support

Reported by: DoomHammer Owned by: DoomHammer
Priority: normal Milestone: 0.12
Component: xmpppy Version:
Severity: normal Keywords:
Cc: OS: All

Description

I would like to see http://www.xmpp.org/extensions/xep-0163.html (XEP-0163: Personal Eventing via Pubsub) support in Gajim. SVN Psi already has it and it is a really nice feature. I could even implement it (along with other related XEPs, like User Mood, User Tune, ...) if only some developer show me how (like, where to find "hooks" in the Gajim source code to hack upon). PEP gives a lot of possibilities, so why shouldn't Gajim have it?

Attachments

pep_source.diff (1.1 kB) - added by Florob 12 months ago.
Send source information (User Tune)

Change History

  Changed 20 months ago by DoomHammer

  • owner changed from asterix to DoomHammer

  Changed 18 months ago by steve-e

  • os set to All

Will you base User Mood, User Tune, Avatars, and similar stuff on pubsub? That is the way it should be done...

Am I right that this will be in 0.12? If yes, you should set the Milestone.

  Changed 18 months ago by roidelapluie

  • milestone set to 0.12

we hope so ;-)

  Changed 18 months ago by asterix

all that is already done over pubsub in PEP branch. We need to add some GUI to allow user to configure some options (who can receive events, who he wants to receive events from, ...)

  Changed 17 months ago by misc

  • summary changed from XEP 0163 support to Personal eventing protocol (XEP 0163) support

  Changed 16 months ago by steve-e

Hey DoomHammer?,

do you think you can give a short outline: what is already working and what has to be done to make this ready for 0.12?

  Changed 16 months ago by DoomHammer

I'll try. Basically there are User Mood, User Activity and User Tune working. Mood and Activity currently have their own window for setting them and it is in account context menu in Personal Events submenu, but they both are to be merged with Status Dialog.

Those features are also advertised in caps, but not in an ellegant way. I currently have no idea how to make proper caps-handling, but I believe I'll somehow manage.

Automatic subscription to others' PEs is also working (that means - if server supports so).

User Mood is working with a little hack - in trunk Gajim there is ability to publish a currently played tune via status message. When this option is enabled in pep branch, a proper PEP is used.

What needs to be done is described in TODO.pep, so I just quote: • configure access model when changing it in the combobox • tab in preferences for PEP • PEP in status change • possible transport of Mood in message • Tune not set to none on connection

So basically under the hood everything, except caps is working good, only GUI needs to be added. Other PEPs aren't even started, so progress is exactly 0% with them.

  Changed 16 months ago by steve-e

Looks promising. If you have any problems or need help, just ask. Imho Avatar over PEP is very usefull. Do you have any plans adding this? See #3326

Just a few notes you might find useful:

  • Status Dialog redesign: See #2895
  • caps-handling: Ask Liorithiel

follow-up: ↓ 25   Changed 16 months ago by DoomHammer

Sure I have. Only last months I had barely time to work on Gajim, so it waits and waits and causes me pain, for I'd like it to be done at last. Avatar is on the list of things to be done. Probably I'll even move it higher than GeoLoc?, but I guess it could be bit difficult.

I really believe I'll find some time in a _NEAR_ future to complete the PEP support.

I'll read about this redesign and I know that I have to ask Liori about caps - only, as i mentioned earlier, time... :(

  Changed 16 months ago by steve-e

  • type changed from defect to enhancement

Changed 12 months ago by Florob

Send source information (User Tune)

  Changed 12 months ago by Florob

I attached a patch that improves Tune Support a bit. It will send the album information received from the audio player as <source/>.

  Changed 12 months ago by asterix

(In [9098]) [Florob] add album to tune pep message. see #3053

  Changed 12 months ago by misc

Since at least User Tune seems to be working, why not merge the branch so we will have more testers and so potentially more bugfixes ? The sooner it will be merged, the less painful it will be to merge if trunk change ?

  Changed 12 months ago by anonymous

As far as I can tell User Mood and User Activity work, too. But while testing I noticed quite some Tracebacks passing by. They didn't seem to cause any problems though, that's why I didn't yet bother to look at them or report them.

So on the one hand it's not really ready for prime time, but it seems functional and getting more eyes to look at it is good.

Just my hurdle opinion.

  Changed 12 months ago by asterix

if you see tb, please report them here so we can fix them (or with a patch if you can ;) )

for the main reason, it's because we can, for the moment, just publish to everyone or not publish info, and get from everyone or not get info. PEP supports better way to subscribe / publish info, and I wanted to add them in the branch before we marge.

  Changed 12 months ago by anonymous

Opening the services dialog leads to this TB. BTW what's the use of that dialog (once it's actually finished that is).

Traceback (most recent call last):
  File "/home/florian/devel/gajim_pep/src/common/xmpp/idlequeue.py", line 132, in process_events
    obj.pollin()
  File "/home/florian/devel/gajim_pep/src/common/xmpp/transports_nb.py", line 361, in pollin
    self._do_receive() 
  File "/home/florian/devel/gajim_pep/src/common/xmpp/transports_nb.py", line 500, in _do_receive
    self.on_receive(received)
  File "/home/florian/devel/gajim_pep/src/common/xmpp/dispatcher_nb.py", line 355, in dispatch
    handler['func'](session,stanza)
  File "/home/florian/devel/gajim_pep/src/common/connection_handlers.py", line 1106, in _IqCB
    form = common.dataforms.ExtendForm(node=form_tag)
  File "/home/florian/devel/gajim_pep/src/common/dataforms.py", line 73, in ExtendForm
    if node.getTag('reported') is not None:
AttributeError: 'NoneType' object has no attribute 'getTag'

  Changed 12 months ago by asterix

PEP branch is now merged to trunk (set use_pep to True in ACE and restart gajim)

To answer your question: this window will beused to configure with more details to which you want to send event, instead of the actual everyone / no one, the same for receiving events.

For the traceback: Could you gajim gajim -v in a console and tell me the XML you get just before it please?

  Changed 12 months ago by anonymous

The XML received just before the TB is:

<iq from='florob@babelmonkeys.de' to='florob@babelmonkeys.de/GajimSVN2' id='101' type='error'>
  <error code='404' type='cancel'>
  <item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
  </error>
  <pubsub xmlns='http://jabber.org/protocol/pubsub#owner'>
  <configure node='config'/>
  </pubsub>
  </iq>

  Changed 12 months ago by asterix

and some stanza before that?

  Changed 12 months ago by anonymous

There is actually a lot of output going by very fast upon opening that tab (actually so much my terminal buffer isn't long enough). I'm attaching a log taken from the XML console, which contains everything between opening the Services windows and the TB.

  Changed 12 months ago by anonymous

Turns out I can't because there are to many links in there... I have put it at http://babelmonkeys.de/tb.log for now.

  Changed 12 months ago by asterix

(In [9138]) fix traceback when we get an error from pep service. see #3053

  Changed 12 months ago by asterix

we should not traceback anymore now, but there is a strange thing in your logs: your server tells there is a conf named "config" and when we request its configuration, it replies "no such node" ...

  Changed 12 months ago by anonymous

Yes the TB is fixed.

The servers (ejabberd as packaged in Debian lenny) behavior seems to be semi-strange at best. The config node is not a pubsub node, but an Ad-Hoc command. As far as I understand XEP-50 this is the correct way to make those known, but obviously it is not available via pubsub, which leads to the error.

Disclaimer: I have no real knowledge about those XEPs so feel free to correct and enlighten me ;)

in reply to: ↑ 9   Changed 11 months ago by steve-e

Replying to DoomHammer:

Sure I have. Only last months I had barely time to work on Gajim, so it waits and waits and causes me pain, for I'd like it to be done at last. Avatar is on the list of things to be done. Probably I'll even move it higher than GeoLoc?, but I guess it could be bit difficult. I really believe I'll find some time in a _NEAR_ future to complete the PEP support. I'll read about this redesign and I know that I have to ask Liori about caps - only, as i mentioned earlier, time... :(

hey DoomHammer?. Do you think you will have some spare time for hacking in near future? It would be cool if you could give us some feedback, because we need to get things done for 0.12. For that we have to clarify, who will work on which ticket.

  Changed 10 months ago by asterix

(In [9331]) ability to configure pubsub nodes. see #3053

  Changed 9 months ago by asterix

  • status changed from new to closed
  • resolution set to fixed

(In [9356]) remove use_pep option, always PEP it to send played song. fixes #3053

Add/Change #3053 (Personal eventing protocol (XEP 0163) support)

Author



Change Properties
<Author field>
Action
as closed
Next status will be 'reopened'
 
Note: See TracTickets for help on using tickets.