SleekPubsub is an XMPP Publish-Subscribe implementation that aims to be a creative and flexible solution to your publish-subscribe needs. SleekPubsub implements a XEP-0060 interface, an HTTP RESTful interface, a XEP-0050 (Ad Hoc Commands) interface, and a bot/chat interface. Credits ------- Author: Nathan Fritz jid: xmpp:fritzy@netflint.net Contributors: Michael Garvin Unusual Features ---------------- - many node types -- start by overriding leaf and create your own behavior - <body xmlns='jabber:client' /> payloads can optionally create chat IM without pubsub payload. - subscribe to the component and it can automatically subscribe you to a node - subscribe to a node and the full jid that you subscribe to can be the source of all of your updates, rather than the bare component jid RESTful Interface ----------------- All HTTP calls are protected with http-auth which is configured in the ini [rest] section So far: GET /default/ get the default config in json POST /node/[node] create or reconfigure node w/ config via json GET /node/[node] retrieve config in json DELETE /node/[node] remove a node GET /subscribe/[node]?jid=[jid] subscribe a jid to node GET /unsubscribe/[node]?jid=[jid]&subid=[subscription id] unsubscribe a jid from a node POST /publish/[node] publish to a node via xml body GET /affiliation/[node] get node affiliations POST /affiliations/[node] update node affiliations **NOTE: POSTS needs to be content-type of text/json or text/xml Usage: publish_subscribe.py [options] ------------------------------------- Options: -h, --help show this help message and exit --daemon run as daemon -q, --quiet set logging to ERROR -d, --debug set logging to DEBUG -v, --verbose set logging to COMM -c CONFIGFILE, --config=CONFIGFILE set config file to use Requirements ------------ SleekXMPP github master (will tag a release soon) Python 3.x (will make 2.6 compatible soon) Quickstart ---------- See INSTALL file Gotchas ------- - The sqlite3 db will not work if you switch between python2.6 and 3.x