[Standards] Tags and Pubsub subscriptions in XEP-0048 (Bookmarks)

edhelas edhelas at movim.eu
Wed Apr 30 17:55:13 UTC 2014


Here is some logs of the Bookmarks implementation in different clients :

Gajim use the Private storage XEP:

> <iq xmlns="jabber:client" type="set" id="91">
>   <query xmlns="jabber:iq:private">
>     <storage xmlns="storage:bookmarks">
>       <conference minimize="0" jid="movim at conference.movim.eu" 
> autojoin="1" name="Créer un salon de discussion">
>         <nick>edhelas</nick>
>         <print_status>in_and_out</print_status>
>       </conference>
>       <conference minimize="0" jid="jdev at conference.jabber.org" 
> autojoin="0" name="Jdev">
>         <nick>edhelas</nick>
>         <print_status>in_and_out</print_status>
>       </conference>
>     </storage>
>   </query>
> </iq>

Pidgin just save the MUC list locally

Here is th HipChat implementation, they use separate items (with no ID) 
but they respect the XEP.

> <iq xmlns="jabber:client" 
> to="55403_711064 at chat.hipchat.com/moxliTJqXp" type="result" 
> id="qwm20i">  
>   <pubsub xmlns="http://jabber.org/protocol/pubsub">  
>     <items xmlns="storage:bookmarks">  
>       <item>  
>         <storage>  
>           <conference jid="55403_activity_stream at conf.hipchat.com" 
> name="Activity Stream">  
>             <nick>Timothée Jaussoin</nick>  
>           </conference>  
>         </storage>  
>       </item>  
>       <item>  
>         <storage>  
>           <conference jid="55403_company_updates at conf.hipchat.com" 
> name="Company Updates">  
>             <nick>Timothée Jaussoin</nick>  
>           </conference>  
>         </storage>  
>       </item>  
> 
>     </items>  
>   </pubsub>  
> </iq>  

I'm quite surprise to see that the "best" implementation of the 
Bookmarks feature is into a proprietary software that use its own XMPP 
server to work.

Finally here is the Movim implementation :

> <iq xmlns="jabber:client" id="NdrHpi" 
> from="edhelas at movim.eu/moxljkZBQ3" xml:lang="fr" type="set">  
>   <pubsub xmlns="http://jabber.org/protocol/pubsub">  
>     <publish node="storage:bookmarks">  
>       <item id="current">  
>         <storage xmlns="storage:bookmarks">  
>           <subscription xmlns="urn:xmpp:pubsub:subscription:0" 
> server="comics.mov.im" node="BouletCorp" subid="">  
>             <title/>  
>           </subscription>  
>           <subscription xmlns="urn:xmpp:pubsub:subscription:0" 
> server="comics.mov.im" node="CerealesLapin" subid="">  
>             <title/>  
>           </subscription>  
>           <conference name="Discussions" autojoin="0" 
> jid="discussions at conference.movim.eu">  
>             <nick/>  
>           </conference>  
>           <conference name="Spectrum" autojoin="0" 
> jid="spectrum at conference.spectrum.im">  
>             <nick/>  
>           </conference>  
>         </storage>  
>       </item>  
>     </publish>  
>   </pubsub>  
> </iq>  

Regards,

Timothée Jaussoin aka edhelas

On mer., avril 30, 2014 at 5:43 , Lance Stout <lancestout at gmail.com> 
wrote:
>>>  My proposal is quite simple. Take the "subscription" tag used in 
>>> the XEP-0330 (
>>>  http://xmpp.org/extensions/xep-0330.html
>>>  ) to store the informations of the subscribed node and put them in 
>>> Bookmark items.
> 
> The only hesitation that I have here is that this is going to create 
> some nasty surprises due to how
> bookmarks work with private XML storage. Ie, you have to fetch, edit, 
> and save the entire XML blob
> any time you want to make a change. Which is generally fine, but 
> bookmarks are old and there is a lot
> of existing code that assumes you are only storing MUC bookmarks 
> (since no one ever actually used the
> URL bookmark feature). So if you happen to use the wrong client 
> somewhere, all of your subscription
> bookmarks could disappear because they didn't know about 
> subscriptions.
> 
> 
> That's certainly wrong behaviour for clients, but such behaviour does 
> exist in the wild.
> 
> 
> The safest route is to use what you already have defined in XEP-0330. 
> However, I'll note that PEP services
> have not done well in allowing multiple items to be published to a 
> single node like this requires.
> 
> XEP-0330 could be changed to save the full set of subscriptions in a 
> single item to work around that, though
> I'd really prefer the multi-item PEP nodes.
> 
> 
> As a last resort, saving the full set in a new private XML storage 
> element would work.
> 
> 
>>>  Furthermore it would be great to add some tags on the Bookmark 
>>> items to organize and filter them.
> 
> +1 for this idea. However, it does carry the same consideration as 
> above that older clients could cause you to lose this information.
> 
> 
> 
> 
> —Lance
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.jabber.org/pipermail/standards/attachments/20140430/9dacf604/attachment.html>


More information about the Standards mailing list