forked from sch/schapps
120 lines
5.7 KiB
ReStructuredText
120 lines
5.7 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/>`_, `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
|
|
|
|
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.
|