forked from sch/Rivista
113 lines
4.7 KiB
Markdown
113 lines
4.7 KiB
Markdown
# 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.
|
|
|
|
## Preview
|
|
|
|
[<img alt="berlin-xmpp-meetup" src="screenshot/berlin-xmpp-meetup.png" width="200px"/>](screenshot/berlin-xmpp-meetup.png)
|
|
[<img alt="let-s-talk-about-xmpp-tricks-with-conversations-author-daniel-gultsch-OqjaQh" src="screenshot/let-s-talk-about-xmpp-tricks-with-conversations-author-daniel-gultsch-OqjaQh.png" width="200px"/>](screenshot/let-s-talk-about-xmpp-tricks-with-conversations-author-daniel-gultsch-OqjaQh.png)
|
|
[<img alt="59d860ab-d7c8-477c-bb4b-86924485cbbb" src="screenshot/59d860ab-d7c8-477c-bb4b-86924485cbbb.png" width="200px"/>](screenshot/59d860ab-d7c8-477c-bb4b-86924485cbbb.png)
|
|
[<img alt="selection" src="screenshot/selection.png" width="200px"/>](screenshot/selection.png)
|
|
|
|
|
|
## Requirements
|
|
|
|
* Python >= 3.5
|
|
* fastapi
|
|
* feedgenerator
|
|
* lxml
|
|
* slixmpp
|
|
* tomllib
|
|
* uvicorn
|
|
|
|
## Installation
|
|
|
|
### Download
|
|
|
|
Extract the source package to a directory that you have permission to run
|
|
software.
|
|
|
|
```shell
|
|
$ git clone https://git.xmpp-it.net/sch/PubSubToAtom
|
|
$ cd PubSubToAtom/
|
|
```
|
|
|
|
### Configure
|
|
|
|
Add account credentials to file `configuration.toml`.
|
|
|
|
### Start
|
|
|
|
Execute PubSubToAtom with one of the following commands:
|
|
|
|
```shell
|
|
$ python -m uvicorn pubsub_to_atom:app --reload
|
|
$ python -m uvicorn pubsub_to_atom:app --reload --host 127.0.0.1 --port 8000
|
|
$ uvicorn pubsub_to_atom:app --host 127.0.0.1 --port 8000
|
|
$ 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 PubSub
|
|
|
|
Suppose you have the following nodes and items.
|
|
|
|
|PubSub |Node |Item |
|
|
|--- |--- |--- |
|
|
|blog.jmp.chat |urn:xmpp:microblog:0|launch-2023 |
|
|
|edhelas%40movim.eu|urn:xmpp:microblog:0|working-on-launching-the-movim-network-qPBzwc |
|
|
|goffi%40goffi.org |urn:xmpp:microblog:0|libervia-v0-8-la-cecilia-BdQ4 |
|
|
|news.movim.eu |Phoronix | |
|
|
|pubsub.movim.eu |berlin-xmpp-meetup |7363a41d-1146-40b3-ac0f-8ee2559591a3 |
|
|
|pubsub.movim.eu |berlin-xmpp-meetup |let-s-talk-about-the-xsf-and-possibly-other-things-6A8eV4|
|
|
|
|
#### To view node items
|
|
|
|
```
|
|
http://127.0.0.1:8000/atom?pubsub=edhelas%40movim.eu&node=urn%3Axmpp%3Amicroblog%3A0
|
|
http://127.0.0.1:8000/atom?pubsub=news.movim.eu&node=Phoronix
|
|
http://127.0.0.1:8000/atom?pubsub=pubsub.movim.eu&node=berlin-xmpp-meetup
|
|
```
|
|
|
|
#### To view a node item
|
|
|
|
```
|
|
http://127.0.0.1:8000/atom?pubsub=blog.jmp.chat&node=urn%3Axmpp%3Amicroblog%3A0&item=launch-2023
|
|
http://127.0.0.1:8000/atom?pubsub=edhelas%40movim.eu&node=urn%3Axmpp%3Amicroblog%3A0&item=working-on-launching-the-movim-network-qPBzwc
|
|
http://127.0.0.1:8000/atom?pubsub=goffi%40goffi.org&node=urn%3Axmpp%3Amicroblog%3A0&item=libervia-v0-8-la-cecilia-BdQ4
|
|
http://127.0.0.1:8000/atom?pubsub=pubsub.movim.eu&node=berlin-xmpp-meetup&item=7363a41d-1146-40b3-ac0f-8ee2559591a3
|
|
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](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.
|