PubSub Bookmarks

» This is a help guide for XMPP PubSub of Blasta.

PubSub

Blasta manages and posts information on PubSub nodes of your own XMPP account.

Synopsis

The technologies (i.e. standards and specifications) that are being served for this task are Atom Syndication Format (ASF) and Publish-Subscribe.

Atom Syndication Format (RFC 4287)

The Atom Syndication Format or ASF is a standard for syndication which was yielded from RSS. The ASF was approved by the Internet Engineering Task Force (IETF) as RFC 4287 in december 2005.

This standard is an XML-based document format that describes lists of related information known as "feeds". Feeds are composed of a number of items, known as "entries", each with an extensible set of attached metadata. For example, each entry has a title.

The primary use case that Atom addresses is the syndication of content such as journals and news headlines to sites as well as directly to user agents.

Publish-Subscribe (XEP-0060)

Publish-Subscribe or PubSub is an XEP specification for XMPP which was approved by the XMPP Standard Foundation (XSF) as XEP-0060 in november 2002.

This specification defines an XMPP protocol extension for generic publish-subscribe functionality. The protocol enables XMPP entities to create nodes (topics) at a pubsub service and publish information at those nodes; an event notification (with or without payload) is then broadcasted to all entities that have subscribed to the node. Pubsub therefore adheres to the classic Observer design pattern and can serve as the foundation for a wide variety of applications, including news feeds, content syndication, rich presence, geolocation, workflow systems, network management systems, and any other application that requires event notifications.

Atomsub

Atomsub, or Atom Over XMPP, is the combination of PubSub and Atom. Learn more.

Technicalities

The location at which Blasta stores your information is inside node urn:xmpp:bibliography:0 of {% if jabber_id %}{{jabber_id}}{% else %}your@jabber.id{% endif %} which interpretes to xmpp:{% if jabber_id %}{{jabber_id}}{% else %}your@jabber.id{% endif %}?;node=urn:xmpp:bibliography:0 and is where you can find all of your information, even if this Blasta instance be offline.

PubSub

This is an illustrated example of a node item which stores as an Atom entry.

    JID  : {% if jabber_id %}{{jabber_id}}{% else %}your@jabber.id{% endif %}
    Node : urn:xmpp:bibliography:0
    Item : 3d0db4c019a01ebbbab1cf0723ed7ddd
                

The item ID is a an MD5 string which was yielded by a URL which was hashed by the MD5 algorithm, and is used as a representation of a URL ID for referential purposes in the Blasta system.

Atom

This is an illustrated example of an Atom Syndication Format entry which is stored in item 3d0db4c019a01ebbbab1cf0723ed7ddd.

    Title     : The Pirate Bay - The most resilient BitTorrent site
    Summary   : Download music, movies, games, software!
    Category  : brand:the-pirate-bay
    Category  : directory:torrent
    Category  : service:search
    Link      : https://tpb.party/
    Published : {{date_now_iso}}
    Updated   : {{date_now_iso}}
                

This is the data as retrieved by an XMPP IQ Stanza.

    <item xmlns="http://jabber.org/protocol/pubsub" id="3d0db4c019a01ebbbab1cf0723ed7ddd">
        <entry xmlns="http://www.w3.org/2005/Atom">
            <title type="text">The Pirate Bay - The most resilient BitTorrent site</title>
            <summary type="text">Download music, movies, games, software!</summary>
            <category term="brand:the-pirate-bay" />
            <category term="directory:torrent" />
            <category term="service:search" />
            <link href="https://tpb.party/" />
            <published>{{date_now_iso}}</published>
            <updated>{{date_now_iso}}</updated>
        </entry>
    </item>
                

Which be realized in Blasta as follows.

The Pirate Bay - The most resilient BitTorrent site

Download music, movies, games, software!

to brand:the-pirate-bay ​  directory:torrent ​  service:search ​  by Fionn and 57,293 other people ​  at {{date_now_readable}}

Conclusion

This was an illustrative representation of how your data is stored by Blasta as Atom feed entries on Publish-Subscribe node urn:xmpp:bibliography:0 of your XMPP account.

Resources


“Talent hits a target no one else can hit. Genius hits a target no one else can see.” ― Arthur Schopenhauer