Rivista/README.md

106 lines
4 KiB
Markdown
Raw Normal View History

2024-07-08 23:26:18 +02:00
# XMPP PubSub To Atom
2024-07-08 10:57:51 +02:00
2024-07-08 23:26:18 +02:00
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
* uvicorn
2024-07-08 23:26:18 +02:00
## Installation
### Download
2024-07-08 23:26:18 +02:00
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:
2024-07-08 23:26:18 +02:00
```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
2024-07-08 23:26:18 +02:00
$ 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.
2024-07-08 23:26:18 +02:00
### Viewing PubSub
2024-07-08 23:26:18 +02:00
Suppose you have the following nodes and items.
2024-07-08 23:26:18 +02:00
|PubSub |Node |Item |
|--- |--- |--- |
|blog.jmp.chat |urn:xmpp:microblog:0|launch-2023 |
|edhelas@movim.eu|urn:xmpp:microblog:0|working-on-launching-the-movim-network-qPBzwc |
|goffi@goffi.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|
2024-07-08 23:26:18 +02:00
#### To view node items
2024-07-08 23:26:18 +02:00
```
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
```
2024-07-08 23:26:18 +02:00
#### To view a node item
2024-07-08 23:26:18 +02:00
```
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
```
2024-07-08 23:26:18 +02:00
## Author
Schimon Jehudah Zackary
## License
CSS and XSLT stylesheets are licensed under the license MIT.
JS scripts are licensed under the license MIT.
2024-07-08 23:26:18 +02:00
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.
2024-07-08 23:26:18 +02:00
* [AtomToPubsub](https://github.com/edhelas/atomtopubsub) - A little client that parses Atom + RSS feeds and send them on XMPP Pubsub Nodes.