lwindolf / liferea

Liferea (Linux Feed Reader), a news reader for GTK/GNOME
https://lzone.de/liferea
GNU General Public License v2.0
817 stars 130 forks source link

Liferea does not read links of Blasta #1377

Open sjehuda opened 1 month ago

sjehuda commented 1 month ago

Good day!

Either the Blasta feed is malformed or Liferea might have an issue.

Template https://git.xmpp-it.net/sch/Blasta/src/branch/main/template/browse.atom

Please notice the non-standard type attribute type="x-scheme-handler/xmpp".

This is the resulted feed:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="stylesheet/stylesheet.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <generator uri="https://git.xmpp-it.net/sch/Blasta" version="0.1">Blasta</generator>
    <icon>/graphic/blasta.svg</icon>
    <link href="[http://localhost:8000/recent?mode=feed](http://localhost:8000/recent?mode=feed"
          rel="self"
          type="text/html" />
    <link href="[http://localhost:8000/recent](http://localhost:8000/recent)"
          rel="alternate"
          type="text/html" />
    <link href="xmpp:blasta@herman.i2p?pubsub;action=subscribe;node=recent"
          rel="alternate"
          type="x-scheme-handler/xmpp" />
    <logo>/graphic/blasta.svg</logo>
    <subtitle type="text">Recent bookmarks</subtitle>
    <title type="text">Blasta / recent</title>
    <updated>2024-08-25T11:59:53.362768</updated>

            <entry>
                <author>
                    <name>kelly@movim.eu</name>
                    <uri>/jid/kelly@movim.eu</uri>
                    <uri>xmpp:kelly@movim.eu</uri>
                    <xmpp>kelly@movim.eu</xmpp>
                </author>
                <id>e53fc841ea7d5b6ee2d7db502e45c6de</id>
                <link href="https://tigase.org/"
                      rel="alternate" />
                <link href="xmpp:blasta@herman.i2p?pubsub;action=subscribe;node=hash:e53fc841ea7d5b6ee2d7db502e45c6de"
                      rel="alternate"
                      type="x-scheme-handler/xmpp" />
                <link href="[/url/e53fc841ea7d5b6ee2d7db502e45c6de](http://localhost:8000/url/e53fc841ea7d5b6ee2d7db502e45c6de)"
                      rel="related"
                      type="text/html" />
                <published>2024-08-25T11:59:53.362768</published>
                <summary type="text">Open Source Communication Software</summary>
                <title>Tigase - Instant Communication Presence, Messaging, IoT</title>
                <updated>2024-08-25T11:59:53.362768</updated>

                        <category term="brand:beagle im" />

                        <category term="brand:halcyon" />

                        <category term="brand:jaxmpp" />

                        <category term="brand:martin" />

                        <category term="brand:parrot im" />

            </entry>

            <entry>
                <author>
                    <name>romy@movim.eu</name>
                    <uri>/jid/romy@movim.eu</uri>
                    <uri>xmpp:romy@movim.eu</uri>
                    <xmpp>romy@movim.eu</xmpp>
                </author>
                <id>cf7c912ccc56d85b3b175a92c93f7408</id>
                <link href="https://github.com/paulfariello/aparte"
                      rel="alternate" />
                <link href="xmpp:blasta@herman.i2p?pubsub;action=subscribe;node=hash:cf7c912ccc56d85b3b175a92c93f7408"
                      rel="alternate"
                      type="x-scheme-handler/xmpp" />
                <link href="[/url/cf7c912ccc56d85b3b175a92c93f7408](http://localhost:8000/url/cf7c912ccc56d85b3b175a92c93f7408)"
                      rel="related"
                      type="text/html" />
                <published>2024-08-25T11:54:13.989617</published>
                <summary type="text">Simple XMPP console client written in Rust and inspired by Profanity.</summary>
                <title>paulfariello/aparte: Free console XMPP client</title>
                <updated>2024-08-25T11:54:13.989617</updated>

                        <category term="code:rust" />

                        <category term="code:scheme" />

                        <category term="interface:console" />

                        <category term="license:mpl2" />

                        <category term="niche:chat" />

            </entry>

            <entry>
                <author>
                    <name>sara@movim.eu</name>
                    <uri>/jid/sara@movim.eu</uri>
                    <uri>xmpp:sara@movim.eu</uri>
                    <xmpp>sara@movim.eu</xmpp>
                </author>
                <id>b31ba1429ce9e21162efbaee5b6072b3</id>
                <link href="https://pulkomandy.tk/projects/renga"
                      rel="alternate" />
                <link href="xmpp:blasta@herman.i2p?pubsub;action=subscribe;node=hash:b31ba1429ce9e21162efbaee5b6072b3"
                      rel="alternate"
                      type="x-scheme-handler/xmpp" />
                <link href="[/url/b31ba1429ce9e21162efbaee5b6072b3](http://localhost:8000/url/b31ba1429ce9e21162efbaee5b6072b3)"
                      rel="related"
                      type="text/html" />
                <published>2024-08-25T10:03:45.051936</published>
                <summary type="text">Renga is an instant messaging client for ​Haiku, using the XMPP protocol.</summary>
                <title>Renga</title>
                <updated>2024-08-25T10:03:45.051936</updated>

                        <category term="code:cpp" />

                        <category term="interface:graphical" />

                        <category term="niche:chat" />

                        <category term="protocol:xmpp" />

                        <category term="software:renga" />

            </entry>

            <entry>
                <author>
                    <name>marco@libervia.org</name>
                    <uri>/jid/marco@libervia.org</uri>
                    <uri>xmpp:marco@libervia.org</uri>
                    <xmpp>marco@libervia.org</xmpp>
                </author>
                <id>f77c4f4ff918c5280bb38320cf93a4b1</id>
                <link href="https://xmpp.org/extensions/xep-0472.html"
                      rel="alternate" />
                <link href="xmpp:blasta@herman.i2p?pubsub;action=subscribe;node=hash:f77c4f4ff918c5280bb38320cf93a4b1"
                      rel="alternate"
                      type="x-scheme-handler/xmpp" />
                <link href="[/url/f77c4f4ff918c5280bb38320cf93a4b1](http://localhost:8000/url/f77c4f4ff918c5280bb38320cf93a4b1)"
                      rel="related"
                      type="text/html" />
                <published>2024-08-25T07:04:03.869488</published>
                <summary type="text">This specification defines a way of publishing social content over XMPP.</summary>
                <title>XEP-0472: Pubsub Social Feed</title>
                <updated>2024-08-25T07:04:03.869488</updated>

                        <category term="brand:pubsub" />

                        <category term="xep:0060" />

                        <category term="xep:0472" />

            </entry>

            <entry>
                <author>
                    <name>pepe@libervia.org</name>
                    <uri>/jid/pepe@libervia.org</uri>
                    <uri>xmpp:pepe@libervia.org</uri>
                    <xmpp>pepe@libervia.org</xmpp>
                </author>
                <id>7e5a928817270638c3fce923890d26a7</id>
                <link href="https://xmpp.org/extensions/xep-0277.html"
                      rel="alternate" />
                <link href="xmpp:blasta@herman.i2p?pubsub;action=subscribe;node=hash:7e5a928817270638c3fce923890d26a7"
                      rel="alternate"
                      type="x-scheme-handler/xmpp" />
                <link href="[/url/7e5a928817270638c3fce923890d26a7](http://localhost:8000/url/7e5a928817270638c3fce923890d26a7)"
                      rel="related"
                      type="text/html" />
                <published>2024-08-25T07:02:55.881777</published>
                <summary type="text">This specification defines a method for microblogging over XMPP.</summary>
                <title>XEP-0277: Microblogging over XMPP</title>
                <updated>2024-08-25T07:02:55.881777</updated>

                        <category term="brand:pubsub" />

                        <category term="publishing" />

                        <category term="xep:0060" />

                        <category term="xep:0277" />

            </entry>

            <entry>
                <author>
                    <name>pepe@libervia.org</name>
                    <uri>/jid/pepe@libervia.org</uri>
                    <uri>xmpp:pepe@libervia.org</uri>
                    <xmpp>pepe@libervia.org</xmpp>
                </author>
                <id>d2e558287d9c5460cc83ce34b326ff15</id>
                <link href="https://codeberg.org/moxxy/moxxy"
                      rel="alternate" />
                <link href="xmpp:blasta@herman.i2p?pubsub;action=subscribe;node=hash:d2e558287d9c5460cc83ce34b326ff15"
                      rel="alternate"
                      type="x-scheme-handler/xmpp" />
                <link href="[/url/d2e558287d9c5460cc83ce34b326ff15](http://localhost:8000/url/d2e558287d9c5460cc83ce34b326ff15)"
                      rel="related"
                      type="text/html" />
                <published>2024-08-25T06:49:35.115461</published>
                <summary type="text">An experimental XMPP client that tries to be as easy, modern and beautiful as possible.</summary>
                <title>moxxy/moxxy: An experiment in building a better XMPP client. This time using Flutter.</title>
                <updated>2024-08-25T06:49:35.115461</updated>

                        <category term="software:moxxy" />

            </entry>

            <entry>
                <author>
                    <name>katra@ret.party</name>
                    <uri>/jid/katra@ret.party</uri>
                    <uri>xmpp:katra@ret.party</uri>
                    <xmpp>katra@ret.party</xmpp>
                </author>
                <id>1a8dedafe121fe284d5673bcb5fe21ea</id>
                <link href="https://codeberg.org/poezio/biboumi"
                      rel="alternate" />
                <link href="xmpp:blasta@herman.i2p?pubsub;action=subscribe;node=hash:1a8dedafe121fe284d5673bcb5fe21ea"
                      rel="alternate"
                      type="x-scheme-handler/xmpp" />
                <link href="[/url/1a8dedafe121fe284d5673bcb5fe21ea](http://localhost:8000/url/1a8dedafe121fe284d5673bcb5fe21ea)"
                      rel="related"
                      type="text/html" />
                <published>2024-08-24T22:10:09.421350</published>
                <summary type="text">Biboumi is an XMPP gateway that connects to IRC servers and translates between the two protocols. It can be used to access IRC channels using any XMPP client as if these channels were XMPP MUCs.</summary>
                <title>biboumi: XMPP to IRC gateway</title>
                <updated>2024-08-24T22:10:09.421350</updated>

                        <category term="software:biboumi" />

            </entry>

            <entry>
                <author>
                    <name>kalton@mullins.ro</name>
                    <uri>/jid/kalton@mullins.ro</uri>
                    <uri>xmpp:kalton@mullins.ro</uri>
                    <xmpp>kalton@mullins.ro</xmpp>
                </author>
                <id>8160ba326a770b71da9643ba6772015b</id>
                <link href="https://codeberg.org/poezio/poezio"
                      rel="alternate" />
                <link href="xmpp:blasta@herman.i2p?pubsub;action=subscribe;node=hash:8160ba326a770b71da9643ba6772015b"
                      rel="alternate"
                      type="x-scheme-handler/xmpp" />
                <link href="[/url/8160ba326a770b71da9643ba6772015b](http://localhost:8000/url/8160ba326a770b71da9643ba6772015b)"
                      rel="related"
                      type="text/html" />
                <published>2024-08-24T22:08:08.762637</published>
                <summary type="text">Poezio is a console Jabber/XMPP client. The initial goal was to provide a way of connecting easily to XMPP without the need for an account, exactly like IRC clients. Poezio&#39;s commands are also designed to be close, if possible, to the ones commonly used in IRC clients (weechat, irssi, etc).</summary>
                <title>poezio/poezio: Poezio is a free software console XMPP client</title>
                <updated>2024-08-24T22:08:08.762637</updated>

                        <category term="software:poezio" />

            </entry>

            <entry>
                <author>
                    <name>relko@eraw.de</name>
                    <uri>/jid/relko@eraw.de</uri>
                    <uri>xmpp:relko@eraw.de</uri>
                    <xmpp>relko@eraw.de</xmpp>
                </author>
                <id>1f07622d29ed712eda1df0620ee33650</id>
                <link href="http://strophe.im/libstrophe/"
                      rel="alternate" />
                <link href="xmpp:blasta@herman.i2p?pubsub;action=subscribe;node=hash:1f07622d29ed712eda1df0620ee33650"
                      rel="alternate"
                      type="x-scheme-handler/xmpp" />
                <link href="[/url/1f07622d29ed712eda1df0620ee33650](http://localhost:8000/url/1f07622d29ed712eda1df0620ee33650)"
                      rel="related"
                      type="text/html" />
                <published>2024-08-24T21:56:15.355303</published>
                <summary type="text">libstrophe is a minimal XMPP library written in C. It has almost no external dependencies, only an XML parsing library (expat or libxml are both supported). It is designed for both POSIX and Windows systems.</summary>
                <title>libstrophe - An XMPP library for C</title>
                <updated>2024-08-24T21:56:15.355303</updated>

                        <category term="code:c" />

                        <category term="interface:library" />

                        <category term="protocol:xmpp" />

                        <category term="software:libstrophe" />

            </entry>

            <entry>
                <author>
                    <name>slixfeed@movim.eu</name>
                    <uri>/jid/slixfeed@movim.eu</uri>
                    <uri>xmpp:slixfeed@movim.eu</uri>
                    <xmpp>slixfeed@movim.eu</xmpp>
                </author>
                <id>e496db3fc4e25855d7d9e91df857aa33</id>
                <link href="http://mcabber.com/"
                      rel="alternate" />
                <link href="xmpp:blasta@herman.i2p?pubsub;action=subscribe;node=hash:e496db3fc4e25855d7d9e91df857aa33"
                      rel="alternate"
                      type="x-scheme-handler/xmpp" />
                <link href="[/url/e496db3fc4e25855d7d9e91df857aa33](http://localhost:8000/url/e496db3fc4e25855d7d9e91df857aa33)"
                      rel="related"
                      type="text/html" />
                <published>2024-08-24T21:53:07.012636</published>
                <summary type="text">mcabber is a small XMPP (Jabber) console client.
mcabber includes features such as SASL/SSL/TLS support, MUC (Multi-User Chat) support, history logging, command completion, OpenPGP encryption, OTR (Off-the-Record Messaging) support, dynamic modules and external action triggers.
Please read the manual page (manpage link below) for more information.</summary>
                <title>MCabber Homepage</title>
                <updated>2024-08-24T21:53:07.012636</updated>

                        <category term="code:c" />

                        <category term="encryption:otr" />

                        <category term="interface:console" />

                        <category term="license:gpl" />

                        <category term="niche:chat" />

            </entry>

</feed>

P.S. Liferea is featured at https://git.xmpp-it.net/sch/Blasta/src/branch/main/template/syndication.xhtml#L416

lwindolf commented 2 days ago

Thanks for reporting this. The current implementation supports only 1 alternate link and does only use one if multiple are found. The DB schema is also limited to having only one link.

Therefore while it is easy to parse more links, it is hard to store and render them properly. This is a complex border use case I do not plan to support.

I must admit I'm not very familiar with XMPP use case / Blasta. In the scope of Liferea what could you do with all the links if they would be rendered?

sjehuda commented 2 days ago

Blasta is a new system.

https://video.xmpp-it.net/w/cfozoUeVLFbBFMCCSCJ1Dn

On Wed, 25 Sep 2024 15:21:17 -0700 Lars Windolf @.***> wrote:

I must admit I'm not very familiar with XMPP use case / Blasta. In the scope of Liferea what could you do with all the links if they would be rendered?

As I have mentioned, that alternate link is not standard.

I was thinking that each client would use the one that it is familiar with.

For instance, Rivista XJP would use the XMPP link to suggest people to read the content via XMPP.

https://schapps.woodpeckersnest.eu/rivista/