304 lines
13 KiB
HTML
304 lines
13 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="color-scheme" content="dark light" />
|
|
<title>Blasta / pubsub</title>
|
|
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
|
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
|
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
|
</head>
|
|
<body>
|
|
<div id="container">
|
|
<div id="header" class="row">
|
|
<h1>
|
|
<img src="/graphic/blasta.svg"/>
|
|
|
|
<a href="/">Blasta</a> / <a href="/help">help</a> / <a href="/help/about">about</a> / <a href="/help/about/xmpp">xmpp</a> / pubsub
|
|
</h1>
|
|
<dl id="navigation">
|
|
<dd>
|
|
<img src="/graphic/blasta.svg"/>
|
|
</dd>
|
|
{% if jabber_id %}
|
|
<dd>
|
|
<a href="/save">Add</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/jid">Public</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/private">Private</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/read">Read</a>
|
|
</dd>
|
|
{% endif %}
|
|
<dd>
|
|
<a href="/search{% if jabber_id %}/jid/{{jabber_id}}{% endif %}">Search</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/popular">Popular</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/recent">Recent</a>
|
|
</dd>
|
|
<dd>
|
|
{% if jabber_id %}
|
|
<a href="/disconnect">Disconnect</a>
|
|
{% else %}
|
|
<a href="/connect">Connect</a>
|
|
{% endif %}
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div id="main" class="row">
|
|
<div id="content">
|
|
<h2>
|
|
<img alt="💡" src="/graphic/xmpp.svg" width="18" height="18"/>
|
|
|
|
PubSub bookmarks
|
|
</h2>
|
|
<p>
|
|
» This is a help guide for XMPP PubSub of Blasta.
|
|
</p>
|
|
<h3>
|
|
PubSub
|
|
</h3>
|
|
<p>
|
|
Blasta manages and posts information on PubSub nodes of your
|
|
own XMPP account.
|
|
</p>
|
|
<h4>
|
|
Synopsis
|
|
</h4>
|
|
<p>
|
|
The technologies (i.e. standards and specifications) that
|
|
are being served for this task are Atom Syndication Format
|
|
(ASF) and Publish-Subscribe.
|
|
</p>
|
|
|
|
<h4>
|
|
Atom Syndication Format (RFC 4287)
|
|
</h4>
|
|
<p>
|
|
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 <a href="https://www.rfc-editor.org/rfc/rfc4287">
|
|
RFC 4287</a> in december 2005.
|
|
</p>
|
|
<p>
|
|
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.
|
|
</p>
|
|
<p>
|
|
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.
|
|
</p>
|
|
<h4>
|
|
Publish-Subscribe (XEP-0060)
|
|
</h4>
|
|
<p>
|
|
Publish-Subscribe or PubSub is an XEP specification for
|
|
XMPP which was approved by the XMPP Standard Foundation (XSF)
|
|
as <a href="https://xmpp.org/extensions/xep-0060.html">
|
|
XEP-0060</a> in november 2002.
|
|
</p>
|
|
<p>
|
|
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.
|
|
</p>
|
|
<h4>
|
|
Atomsub
|
|
</h4>
|
|
<p>
|
|
Atomsub, or Atom Over XMPP, is the combination of PubSub and
|
|
Atom. <a href="/help/about/xmpp/atomsub">Learn more</a>.
|
|
</p>
|
|
<h4>
|
|
Technicalities
|
|
</h4>
|
|
<p>
|
|
The location at which Blasta stores your information is inside
|
|
node <code>urn:xmpp:bibliography:0</code> of
|
|
<code>{% if jabber_id %}{{jabber_id}}{% else %}your@jabber.id{% endif %}</code>
|
|
which interpretes to <a href="
|
|
xmpp:{% if jabber_id %}{{jabber_id}}{% else %}your@jabber.id{% endif %}?;node=urn:xmpp:bibliography:0">
|
|
xmpp:{% if jabber_id %}{{jabber_id}}{% else %}your@jabber.id{% endif %}?;node=urn:xmpp:bibliography:0</a>
|
|
and is where you can find all of your information, even if
|
|
this Blasta instance be offline.
|
|
</p>
|
|
<h4>
|
|
PubSub
|
|
</h4>
|
|
<p>
|
|
This is an illustrated example of a node item which stores
|
|
as an Atom entry.
|
|
</p>
|
|
<pre>
|
|
JID : {% if jabber_id %}{{jabber_id}}{% else %}your@jabber.id{% endif %}
|
|
Node : urn:xmpp:bibliography:0
|
|
Item : 3d0db4c019a01ebbbab1cf0723ed7ddd
|
|
</pre>
|
|
<p>
|
|
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.
|
|
</p>
|
|
<h4>
|
|
Atom
|
|
</h4>
|
|
<p>
|
|
This is an illustrated example of an Atom Syndication Format
|
|
entry which is stored in item
|
|
<code>3d0db4c019a01ebbbab1cf0723ed7ddd</code>.
|
|
</p>
|
|
<pre>
|
|
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}}
|
|
</pre>
|
|
<p>
|
|
This is the data as retrieved by an XMPP IQ Stanza.
|
|
</p>
|
|
<pre>
|
|
<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>
|
|
</pre>
|
|
<p>
|
|
Which be realized in Blasta as follows.
|
|
</p>
|
|
<h4>
|
|
<a href="https://tpb.party/">
|
|
The Pirate Bay - The most resilient BitTorrent site
|
|
</a>
|
|
</h4>
|
|
<p class="summary">Download music, movies, games, software!</p>
|
|
<div class="details">
|
|
to
|
|
<a href="/?tags=brand:the-pirate-bay">
|
|
brand:the-pirate-bay
|
|
</a>
|
|
​ 
|
|
<a href="/?tags=directory:torrent">
|
|
directory:torrent
|
|
</a>
|
|
​ 
|
|
<a href="/?tags=service:search">
|
|
service:search
|
|
</a>
|
|
​ 
|
|
by
|
|
<a href="/jid/fionn@jabber.i2p">Fionn</a>
|
|
…
|
|
<a href="/url/3d0db4c019a01ebbbab1cf0723ed7ddd">
|
|
<span class="instances-degree-fourth">and 57,293 other people</span>
|
|
</a>
|
|
​ 
|
|
at
|
|
<span class="date">{{date_now_readable}}</span>
|
|
</div>
|
|
<h4>
|
|
Conclusion
|
|
</h4>
|
|
<p>
|
|
This was an illustrative representation of how your data is
|
|
stored by Blasta as Atom feed entries on Publish-Subscribe
|
|
node <code>urn:xmpp:bibliography:0</code> of your XMPP
|
|
account.
|
|
</p>
|
|
<h4>
|
|
Resources
|
|
</h4>
|
|
<ul>
|
|
<li>
|
|
<a href="https://wiki.xmpp.org/web/PubSub_message_types">
|
|
PubSub message types
|
|
</a>
|
|
​ 
|
|
(wiki.xmpp.org)
|
|
</li>
|
|
<li>
|
|
<a href="https://wiki.xmpp.org/web/Tech_pages/PubSub">
|
|
Tech pages/PubSub
|
|
</a>
|
|
​ 
|
|
(wiki.xmpp.org)
|
|
</li>
|
|
</ul>
|
|
<br/>
|
|
<p class="quote bottom"
|
|
title="Arthur Schopenhauer speaks about Bob Wyman, Jérôme Poisson, Joe Hildebrand, Peter Saint-Andre, and Timothée Jaussoin.">
|
|
“Talent hits a target no one else can hit.
|
|
Genius hits a target no one else can see.”
|
|
― Arthur Schopenhauer
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div id="footer" class="row">
|
|
<dl>
|
|
<dd>
|
|
<img src="/graphic/blasta.svg" alt="logo"/>
|
|
<a href="/">blasta</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/help/about">about</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/help/about/xmpp">xmpp</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/help/about/xmpp/pubsub">pubsub</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="{{journal}}">journal</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/help">help</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/help/policy">policy</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/help/feeds">rss</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/contact">contact</a>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|