schapps/posts/slixfeed-syndication-news-bot.rst
2024-09-25 11:38:43 +03:00

122 lines
5.8 KiB
ReStructuredText

.. title: Slixfeed News Bot
.. slug: slixfeed-news-bot
.. date: 2024-05-23 16:27:48 UTC
.. tags: atom, bot, chat, feed, feedparser, jabber, news, python, rdf, rss, slixfeed, slixmpp, syndication, xmpp
.. category: news
.. link: slixfeed-news-bot
.. description: Slixfeed is a news aggregation bot for the XMPP communication network which aims to be easy to use and fully-featured. It provides a convenient access to Blog and News sites.
.. type: text
Greetings to one and all and welcome to the official news resource of Slixfeed!
I am delighted to make this initial public announcement of Slixfeed.
`Slixfeed <https://gitgud.io/sjehuda/slixfeed>`_ is a news aggregation software which currently functions only as a chat bot and is primarily intended for the XMPP network.
Slixfeed is still in testing phases and is not yet ready for production, albeit it performs well.
Slixfeed has not yet been audited for security!
Design
======
Slixfeed utilizes `Slixmpp <https://slixmpp.readthedocs.io/>`_ to communicate with the XMPP network, and `feedparser <https://feedparser.readthedocs.io/>`_ to parse syndication feeds.
The fashion by which Slixfeed is designed is to serve multiple people at the same time.
The purpose of Slixfeed is to be able to simultaneously serve hundreds and even thousands of people from a single instance, which would make anyone a news publisher, if one so desires.
Features
========
Some features are exclusive to XMPP [#exclusive]_.
#. Communicate with chats and groupchats;
#. Display audio, picture and video attachments inline;
#. Export and import feeds using standard OPML file;
#. Filter news items by "allow" and "deny" rules;
#. Publish items to PubSub nodes [#atom-over-xmpp]_;
#. Redirect to proxy back-ends [#proxies]_;
#. Rich and interactive visual interface using Ad-Hoc Commands;
#. Scan automatically for syndication feeds of given URL;
#. Schedule update cycle and send updates upon availability [#availability]_.
Interfaces
==========
Slixfeed offers a couple of interfaces.
The premier interface is the chat, from which commands are sent and news are received.
The additional interface which makes use of `Data Forms <https://xmpp.org/extensions/xep-0004.html>`_ and `Ad-Hoc Commands <https://xmpp.org/extensions/xep-0050.html>`_ offers a visual interface to control and interact with Slixfeed.
The visual interface is currently best accessible with `Cheogram <https://cheogram.com/>`_ and `monocles chat <https://monocles.chat/>`_; both are available free of charge on the `F-Droid <https://f-droid.org/>`_ software repository.
Other XMPP clients which support the visual interface are `Converse <https://conversejs.org/>`_, `Gajim <https://gajim.org/>`_, `Movim <https://movim.eu/>`_, `Poezio <https://poez.io/>`_, `Profanity <https://profanity-im.github.io/>`_, `Psi <https://psi-im.org/>`_ and `Psi+ <https://psi-plus.com/>`_.
Preview
=======
Screenshots of Cheogram and monocles chat interacting with Slixfeed [#divested]_.
.. image:: ../../images/chat_add_url.png
:target: ../../images/chat_add_url.png
:height: 234px
:width: 108px
:alt: monocles chat: Chat Interface
:loading: lazy
.. image:: ../../images/adhoc_commands.png
:target: ../../images/adhoc_commands.png
:height: 234px
:width: 108px
:alt: monocles chat: Rich Interface
:loading: lazy
.. image:: ../../images/adhoc_settings.png
:target: ../../images/adhoc_settings.png
:height: 234px
:width: 108px
:alt: Cheogram: Settings Form
:loading: lazy
.. image:: ../../images/adhoc_add_url.png
:target: ../../images/adhoc_add_url.png
:height: 234px
:width: 108px
:alt: Cheogram: Subscription Form
:loading: lazy
Both, Ad-Hoc Command and Chat, interfaces are included.
Resources
=========
- For help, and support questions, please join our `groupchat <xmpp:slixfeed@chat.woodpeckersnest.space?join>`_.
- Source code is available at `GitGud <https://gitgud.io/sjehuda/slixfeed>`_.
Conclusion
==========
Slixfeed was made due to necessity and it has been intended to be hosted and utilized by as many people as possible.
Slixfeed was meant to be only a chat bot which sends only text, yet communications with `edhelas <https://edhelas.movim.eu/>`_, mirux, `roughnecks <https://blog.woodpeckersnest.space/>`_, `singpolyma <https://singpolyma.net/>`_ and Thorsten have led this project to have an extensive set of features.
The Slixfeed project was started a year and eleven months ago, and its continuation and completion thereof were feasible thanks to Laura Lapina.
I would also want to thank to Simone "roughnecks" Canaletti for hosting the Slixfeed site, in addition to testing Slixfeed and instructing the current development of Slixfeed.
Consequent development news will be published soon.
I hope Slixfeed would be useful to you.
.. line-block:: Kind regards,
Schimon
----
.. [#exclusive] Rich interface and `PubSub <https://xmpp.org/extensions/xep-0060.html>`_ are exclusive to XMPP.
.. [#atom-over-xmpp] Slixfeed implements the instructions of `Pubsub Social Feed <https://xmpp.org/extensions/xep-0472.html>`_ of Timothée Jaussoin; for more information, read the `Atom Over XMPP <https://datatracker.ietf.org/meeting/66/materials/slides-66-atompub-1.pdf>`_ directive from Peter Saint-Andre.
.. [#proxies] The selection of proxy back-ends can be extended from ``proxies.toml``, and is not limited to Invidious, Librarian, Nitter, ProxiTok, and Quetre.
.. [#availability] As long as your status is not Available (i.e. Away, Busy, DND or Offline), the bot will not send updates to you.
.. [#divested] Due to the prevalent tendency of corporations, using their operating systems, to sabotage free and open platforms, it is definitely and distinctly recommended to install `DivestOS <https://divestos.org/>`_ as your mobile phone operating system for an uninterruptable, secure and ideal mobile experience.