# XMPP PubSub To Atom A little client that parses XMPP Pubsub Nodes and sends them as Atom Syndication Format or OPML over HTTP. ## About XMPP PubSub To Atom ("XPTA") is a simple Python script that parses XMPP Pubsub Nodes and sends them as Atom Syndication Format or OPML over HTTP. XPTA generates Atom syndication feeds ([RFC 4287](https://www.rfc-editor.org/rfc/rfc4287)) from XMPP PubSub nodes ([XEP-0060](http://xmpp.org/extensions/xep-0060.html)). This software was inspired from Tigase and was motivated by Movim. ## Requirements * Python >= 3.5 * fastapi * feedgenerator * lxml * slixmpp * tomllib ## Installation Extract the source package to a directory that you have permission to run software. Execute with one of the followings: ```shell $ uvicorn pubsub_to_atom:app --host 127.0.0.1 --port 8000 $ python -m uvicorn pubsub_to_atom:app --reload $ fastapi dev pubsub_to_atom.py ``` ## Usage It is possible to view a complete node and even a single item, which means, that it is possible to save bandwidth and it further means that a considered and carefully earnest use of this software would saves system overhead, which includes CPU, I/O and RAM usage. ### Viewing node items |PubSub |Node | |--- |--- | |xmpp:pubsub.movim.eu|berlin-xmpp-meetup| URL: http://127.0.0.1:8000/atom?pubsub=pubsub.movim.eu&node=berlin-xmpp-meetup ### Viewing a node item |PubSub |Node |Item | |--- |--- |--- | |xmpp:pubsub.movim.eu|berlin-xmpp-meetup|let-s-talk-about-the-xsf-and-possibly-other-things-6A8eV4| URL: http://127.0.0.1:8000/atom?pubsub=pubsub.movim.eu&node=berlin-xmpp-meetup&item=let-s-talk-about-the-xsf-and-possibly-other-things-6A8eV4 ## Author Schimon Jehudah Zackary ## License CSS and XSLT stylesheets are licensed under the license MIT. JS scripts are licensed under the license MIT. Python code is licensed under the license AGPL-3.0 only. ## Acknowledgement Special thanks to "d3x" and "cchianel" from IRC channel #python on irc.libera.chat ## Similar Projects * [AtomEntry](https://github.com/tigase/sureim/blob/master/site/src/main/java/tigase/sure/web/site/client/pubsub/AtomEntry.java) and [PubSubPublishViewImpl.java](https://github.com/tigase/sureim/blob/master/site/src/main/java/tigase/sure/web/site/client/pubsub/PubSubPublishViewImpl.java)- Convert XMPP Pubsub Nodes to Atom Syndication Format and convey them over HTTP. * [AtomToPubsub](https://github.com/edhelas/atomtopubsub) - A little client that parses Atom + RSS feeds and send them on XMPP Pubsub Nodes.