Skip to content

New unicity policies for feeds with bad GUIDs#4487

Merged
Alkarex merged 26 commits intoFreshRSS:edgefrom
Alkarex:better-bad-guids
Oct 14, 2024
Merged

New unicity policies for feeds with bad GUIDs#4487
Alkarex merged 26 commits intoFreshRSS:edgefrom
Alkarex:better-bad-guids

Conversation

@Alkarex
Copy link
Member

@Alkarex Alkarex commented Aug 4, 2022

fix #4485
fix #5210
fix #5257
fix #5410
fix #5909
fix #6658

@Alkarex Alkarex added the Feed problem 🗞️ Feeds that have issues while loading/reading in FreshRSS label Aug 4, 2022
@Alkarex Alkarex added this to the 1.20.0 milestone Aug 4, 2022
Copy link
Member

@Frenzie Frenzie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe there's another one we should toss in there as well, like published?

@Alkarex Alkarex modified the milestones: 1.20.0, 1.21.0 Aug 31, 2022
@eht16
Copy link

eht16 commented Sep 10, 2022

I would second the idea to include "published" and/or some aliases of it.

Recently, I stumbled upon https://status.otc-service.com/rss/?mt=Europe%20%28Germany%29 which does not have a "guid" and the links in there are not unique, only the "time" field seems usable to distinguish the posts.

@Alkarex
Copy link
Member Author

Alkarex commented Sep 28, 2024

Let's first make a PR to add a new feed-level option to override the ID logic (e.g. force use of link)

'title_add' => 'Add an RSS feed',
'ttl' => 'Do not automatically refresh more often than',
'unicityPolicy' => array(
'_' => 'Articles unicity',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe something like:

Suggested change
'_' => 'Articles unicity',
'_' => 'Article uniqueness criteria',

Or:

Suggested change
'_' => 'Articles unicity',
'_' => 'Article duplicate matching criteria',

Which is a long way of saying perhaps unicity isn't the most common word.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting ChatGPT's feedback 🤖
image

Indeed not the most common word but not so rare either, is it ? And probably "guessable". I do not really mind, but unicity is slightly more precise here.

It is important to be understandable indeed. On the other hand, this option should not be too tempting to fiddle with :-P

Let's see what our testers say, if any

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Either way I would make it article (singular) unicity. ^_^

@Alkarex
Copy link
Member Author

Alkarex commented Oct 11, 2024

I have observed several examples of feeds with temporary invalid GUIDs (non-unique) due to e.g. temporary duplicated articles.
This leads to premature changes of unicity criteria and unwanted duplicates.

So here is a new tolerance parameter. I will test some more.

$invalidGuidsTolerance (default 0.05) The maximum ratio (rounded) of invalid GUIDs to tolerate before degrading the unicity criteria.
Example for 0.05 (5% rounded): tolerate 0 invalid GUIDs for up to 9 articles, 1 for 10, 2 for 30, 3 for 50, 4 for 70, 5 for 90, 6 for 110, etc.
The default value of 5% rounded was chosen to allow 1 invalid GUID for feeds of 10 articles, which is a frequently observed amount of articles.

@Frenzie
Copy link
Member

Frenzie commented Oct 11, 2024

Temporarily duplicated? Interesting. Sounds good! 👍

@Alkarex
Copy link
Member Author

Alkarex commented Oct 12, 2024

Example right now https://www.academie-sciences.fr/fr/?option=com_obrss&task=feed&id=2:fil-d-actualite-de-l-academie-des-sciences&format=feed

Error on a single entry http://www.academie-sciences.fr/fr/Communiques-de-presse/communique-de-presse-prix-nobel-physiologie-ou-medecine.html out of 30

feed.xml
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/">
	<channel>
		<title>Les derniers articles publiés sur le site de l'Académie des sciences</title>
		<description></description>
		<link>https://www.academie-sciences.fr/</link>
		<lastBuildDate>2024-10-12T09:40:14+02:00</lastBuildDate>
		<generator>FeedCreator 1.8.3 (obRSS 3.4.2)</generator>
		<atom:link href="https://www.academie-sciences.fr/fr/?option=com_obrss&amp;task=feed&amp;id=2:fil-d-actualite-de-l-academie-des-sciences&amp;format=feed" rel="self" type="application/rss+xml" />
		<language>fr-FR</language>
		<item>
			<title>Communiqué de presse | Prix Nobel Physiologie ou médecine</title>
			<link>http://www.academie-sciences.fr/fr/Communiques-de-presse/communique-de-presse-prix-nobel-physiologie-ou-medecine.html</link>
			<description></description>
			<pubDate>2024-10-11T12:06:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Communiques-de-presse/communique-de-presse-prix-nobel-physiologie-ou-medecine.html</guid>
		</item>
		<item>
			<title>Communiqué de presse | Prix Nobel Chimie</title>
			<link>http://www.academie-sciences.fr/fr/Communiques-de-presse/communique-de-presse-prix-nobel-physiologie-ou-medecine.html</link>
			<description></description>
			<pubDate>2024-10-10T12:06:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Communiques-de-presse/communique-de-presse-prix-nobel-physiologie-ou-medecine.html</guid>
		</item>
		<item>
			<title>Affleck Ian</title>
			<link>http://www.academie-sciences.fr/fr/In-memoriam/affleck-ian.html</link>
			<description></description>
			<pubDate>2024-10-04T13:00:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/In-memoriam/affleck-ian.html</guid>
		</item>
		<item>
			<title>Ghislain de Marsily</title>
			<link>http://www.academie-sciences.fr/fr/In-memoriam/ghislain-de-marsily.html</link>
			<description></description>
			<pubDate>2024-04-21T14:47:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/In-memoriam/ghislain-de-marsily.html</guid>
		</item>
		<item>
			<title>Communiqué de presse | Prix Nobel de Physique </title>
			<link>http://www.academie-sciences.fr/fr/Communiques-de-presse/communique-de-presse-prix-nobel-de-physique.html</link>
			<description></description>
			<pubDate>2024-10-10T11:45:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Communiques-de-presse/communique-de-presse-prix-nobel-de-physique.html</guid>
		</item>
		<item>
			<title>Rencontre avec Jocelyne Troccaz - Des automates aux robots chirurgicaux</title>
			<link>http://www.academie-sciences.fr/fr/Colloques-conferences-et-debats/rencontre-avec-jocelyne-troccaz-des-automates-aux-robots-chirurgicaux.html</link>
			<description></description>
			<pubDate>2024-11-05T13:06:00+01:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Colloques-conferences-et-debats/rencontre-avec-jocelyne-troccaz-des-automates-aux-robots-chirurgicaux.html</guid>
		</item>
		<item>
			<title>Rencontre avec Bérengère Dubrulle  - Les mystères de la turbulence - Cycle Rencontre à l'Académie des sciences</title>
			<link>http://www.academie-sciences.fr/fr/Seances-publiques/rencontre-avec-berengere-dubrulle-les-mysteres-de-la-turbulence-cycle-rencontre-a-l-academie-des-sciences.html</link>
			<description></description>
			<pubDate>2024-10-29T10:40:00+01:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Seances-publiques/rencontre-avec-berengere-dubrulle-les-mysteres-de-la-turbulence-cycle-rencontre-a-l-academie-des-sciences.html</guid>
		</item>
		<item>
			<title>Une Babel des sciences ? Traductions et sciences ouvertes </title>
			<link>http://www.academie-sciences.fr/fr/Colloques-conferences-et-debats/une-babel-des-sciences-traductions-et-sciences-ouvertes.html</link>
			<description></description>
			<pubDate>2024-10-02T14:34:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Colloques-conferences-et-debats/une-babel-des-sciences-traductions-et-sciences-ouvertes.html</guid>
		</item>
		<item>
			<title>Michael Hall, lauréat de la Grande médaille de l’Académie des sciences</title>
			<link>http://www.academie-sciences.fr/fr/Actualites-scientifiques/seance-2024-de-remise-de-la-grande-medaille-de-l-academie-des-sciences.html</link>
			<description></description>
			<pubDate>2024-09-17T12:06:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Actualites-scientifiques/seance-2024-de-remise-de-la-grande-medaille-de-l-academie-des-sciences.html</guid>
		</item>
		<item>
			<title>La Médaille d'Or du CNRS remise à Edith Heard </title>
			<link>http://www.academie-sciences.fr/fr/Communiques-de-presse/la-medaille-d-or-du-cnrs-remise-a-edith-heard.html</link>
			<description></description>
			<pubDate>2024-10-02T16:44:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Communiques-de-presse/la-medaille-d-or-du-cnrs-remise-a-edith-heard.html</guid>
		</item>
		<item>
			<title>Section Biologie humaine et sciences médicales</title>
			<link>http://www.academie-sciences.fr/fr/Listes-par-section-scientifique/section-biologie-humaine-et-sciences-medicales.html</link>
			<description></description>
			<pubDate>2015-01-12T12:54:51+01:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Listes-par-section-scientifique/section-biologie-humaine-et-sciences-medicales.html</guid>
		</item>
		<item>
			<title>Marc Fontecave, lauréat de l'ENI Energy Transition Award 2024</title>
			<link>http://www.academie-sciences.fr/fr/Membres-a-la-une/marc-fontecave-laureat-de-l-energy-transition-award-2024.html</link>
			<description></description>
			<pubDate>2024-09-19T12:18:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Membres-a-la-une/marc-fontecave-laureat-de-l-energy-transition-award-2024.html</guid>
		</item>
		<item>
			<title>Séance de remise de la Grande médaille de l’Académie des sciences 2022 à Terence Tao</title>
			<link>http://www.academie-sciences.fr/fr/Colloques-conferences-et-debats/ceremonie-grande-medaille-2022-terence-tao.html</link>
			<description></description>
			<pubDate>2023-03-21T13:06:00+01:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Colloques-conferences-et-debats/ceremonie-grande-medaille-2022-terence-tao.html</guid>
		</item>
		<item>
			<title>Appel à candidature : Grand Prix Lamonica de neurologie 2024</title>
			<link>http://www.academie-sciences.fr/fr/Appel-a-candidature/prix-lamonica-neurologie.html</link>
			<description></description>
			<pubDate>2024-07-19T08:00:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Appel-a-candidature/prix-lamonica-neurologie.html</guid>
		</item>
		<item>
			<title>Appel à candidature : Grand prix Sicard – Académie des sciences 2024</title>
			<link>http://www.academie-sciences.fr/fr/Appel-a-candidature/appel-a-candidature-grand-prix-sicard-academie-des-sciences-2024.html</link>
			<description></description>
			<pubDate>2024-07-29T09:47:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Appel-a-candidature/appel-a-candidature-grand-prix-sicard-academie-des-sciences-2024.html</guid>
		</item>
		<item>
			<title>Michèle Vergne, lauréate de la médaille Weyl-Wigner</title>
			<link>http://www.academie-sciences.fr/fr/Membres-a-la-une/michele-vergne-laureate-de-la-medaille-weyl-wigner.html</link>
			<description></description>
			<pubDate>2024-08-20T12:18:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Membres-a-la-une/michele-vergne-laureate-de-la-medaille-weyl-wigner.html</guid>
		</item>
		<item>
			<title>Pierre Tiollais</title>
			<link>http://www.academie-sciences.fr/fr/In-memoriam/hommage-a-pierre-tiollais.html</link>
			<description></description>
			<pubDate>2024-08-05T12:06:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/In-memoriam/hommage-a-pierre-tiollais.html</guid>
		</item>
		<item>
			<title>Section Biologie intégrative</title>
			<link>http://www.academie-sciences.fr/fr/Listes-par-section-scientifique/section-biologie-integrative.html</link>
			<description></description>
			<pubDate>2015-01-12T12:54:51+01:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Listes-par-section-scientifique/section-biologie-integrative.html</guid>
		</item>
		<item>
			<title>Campagne d'appels à candidature</title>
			<link>http://www.academie-sciences.fr/fr/Prix-et-medailles/campagne-d-appels-a-candidatures.html</link>
			<description></description>
			<pubDate>2014-07-03T14:34:15+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Prix-et-medailles/campagne-d-appels-a-candidatures.html</guid>
		</item>
		<item>
			<title>Mini-organes et embryons précoces in vitro : Quels enjeux ?</title>
			<link>http://www.academie-sciences.fr/fr/Colloques-conferences-et-debats/mini-organes-et-embryons-precoces-in-vitro-quels-enjeux.html</link>
			<description></description>
			<pubDate>2024-11-12T13:06:00+01:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Colloques-conferences-et-debats/mini-organes-et-embryons-precoces-in-vitro-quels-enjeux.html</guid>
		</item>
		<item>
			<title>Appel à candidature : prix Irène Joliot-Curie 2024</title>
			<link>http://www.academie-sciences.fr/fr/Appel-a-candidature/appel-a-candidature-prix-irene-joliot-curie.html</link>
			<description></description>
			<pubDate>2024-07-19T08:47:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Appel-a-candidature/appel-a-candidature-prix-irene-joliot-curie.html</guid>
		</item>
		<item>
			<title>Appel à candidature : Grand Prix Lamonica de cardiologie 2024</title>
			<link>http://www.academie-sciences.fr/fr/Appel-a-candidature/prix-lamonica-cardiologie.html</link>
			<description></description>
			<pubDate>2024-07-19T08:00:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Appel-a-candidature/prix-lamonica-cardiologie.html</guid>
		</item>
		<item>
			<title>Comité des Scientifiques pour l'Ukraine (CSU)</title>
			<link>http://www.academie-sciences.fr/fr/Comites-thematiques/comite-scientifiques-ukraine.html</link>
			<description></description>
			<pubDate>2022-04-01T09:30:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Comites-thematiques/comite-scientifiques-ukraine.html</guid>
		</item>
		<item>
			<title>Stéphane Mallat, IEEE Fourier Award for Signal Processing</title>
			<link>http://www.academie-sciences.fr/fr/Membres-a-la-une/stephane-mallat-ieee-fourier-award-for-signal-processing.html</link>
			<description></description>
			<pubDate>2024-04-29T12:00:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Membres-a-la-une/stephane-mallat-ieee-fourier-award-for-signal-processing.html</guid>
		</item>
		<item>
			<title>Lydéric Bocquet, lauréat de la médaille de l’innovation du CNRS 2024</title>
			<link>http://www.academie-sciences.fr/fr/Membres-a-la-une/lyderic-bocquet-laureat-de-la-medaille-de-l-innovation-du-cnrs-2024.html</link>
			<description></description>
			<pubDate>2024-07-09T12:18:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Membres-a-la-une/lyderic-bocquet-laureat-de-la-medaille-de-l-innovation-du-cnrs-2024.html</guid>
		</item>
		<item>
			<title>L’infiniment petit, avenir de la transition énergétique - Lydéric Bocquet - L'HUMANITÉ MAGAZINE</title>
			<link>http://www.academie-sciences.fr/fr/Articles-en-partenariat/l-infiniment-petit-avenir-de-la-transition-energetique-lyderic-bocquet-l-humanite-magazine.html</link>
			<description></description>
			<pubDate>2024-07-04T07:10:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Articles-en-partenariat/l-infiniment-petit-avenir-de-la-transition-energetique-lyderic-bocquet-l-humanite-magazine.html</guid>
		</item>
		<item>
			<title>Communiqué de presse | Dimanche, la vigilance républicaine s’impose</title>
			<link>http://www.academie-sciences.fr/fr/Communiques-de-presse/communique-de-presse-dimanche-la-vigilance-republicaine-s-impose.html</link>
			<description></description>
			<pubDate>2024-07-03T10:25:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Communiques-de-presse/communique-de-presse-dimanche-la-vigilance-republicaine-s-impose.html</guid>
		</item>
		<item>
			<title>Patrick Flandrin, lauréat du prix de l'éducation Carl Friedrich Gauss 2023</title>
			<link>http://www.academie-sciences.fr/fr/Membres-a-la-une/patrick-flandrin-laureat-du-prix-de-l-education-carl-friedrich-gauss-2023.html</link>
			<description></description>
			<pubDate>2024-04-29T12:00:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Membres-a-la-une/patrick-flandrin-laureat-du-prix-de-l-education-carl-friedrich-gauss-2023.html</guid>
		</item>
		<item>
			<title>Un poisson pour comprendre les cellules souches du cerveau - Laure Bally-Cuif - L'HUMANITÉ MAGAZINE</title>
			<link>http://www.academie-sciences.fr/fr/Articles-en-partenariat/un-poisson-pour-comprendre-les-cellules-souches-du-cerveau-laure-bally-cuif-l-humanite-magazine.html</link>
			<description></description>
			<pubDate>2024-06-06T07:10:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Articles-en-partenariat/un-poisson-pour-comprendre-les-cellules-souches-du-cerveau-laure-bally-cuif-l-humanite-magazine.html</guid>
		</item>
		<item>
			<title>Patrick Couvreur, lauréat de la &quot;Biomaterialia Golden Medal » et le « Controlled Release Society Founder Award » 2024</title>
			<link>http://www.academie-sciences.fr/fr/Membres-a-la-une/patrick-couvreur-laureat-de-la-biomaterialia-golden-medal-2024.html</link>
			<description></description>
			<pubDate>2024-05-28T12:00:00+02:00</pubDate>
			<guid isPermaLink="false">http://www.academie-sciences.fr/fr/Membres-a-la-une/patrick-couvreur-laureat-de-la-biomaterialia-golden-medal-2024.html</guid>
		</item>
	</channel>
</rss>

@Alkarex Alkarex merged commit 256dcc2 into FreshRSS:edge Oct 14, 2024
@Alkarex Alkarex deleted the better-bad-guids branch October 14, 2024 07:34
@Alkarex
Copy link
Member Author

Alkarex commented Oct 14, 2024

Another example from https://www.php.net/feed.atom
5 invalid GUIDs out of 741 (why!?) entries

<entry xmlns="http://www.w3.org/2005/Atom" xml:base="entries/2021-12-17-1.xml">
  <title>PHP 8.1.1 Released!</title>
  <id>https://www.php.net/archive/2021.php#2021-12-17-1</id>
  <published>2021-12-17T17:31:25+01:00</published>
  <updated>2021-12-17T17:31:25+01:00</updated>
  <link href="https://www.php.net/index.php#id2021-12-17-1" rel="alternate" type="text/html"/>
  <link href="https://www.php.net/archive/2021.php#2021-12-17-1" rel="via" type="text/html"/>
  <category term="releases" label="New PHP release"/>
  <category term="frontpage" label="PHP.net frontpage news"/>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml"><p>The PHP development team announces the immediate availability of PHP 8.1.1. This is a bug fix release.</p>

<p>All PHP 8.1 users are encouraged to upgrade to this version.</p>

<p>For source downloads of PHP 8.1.1 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>,
Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>.
The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.1">ChangeLog</a>.
</p>    </div>
  </content>
</entry>
  <entry xmlns="http://www.w3.org/2005/Atom" xml:base="entries/2021-12-16-2.xml">
  <title>PHP 8.0.14 Released!</title>
  <id>https://www.php.net/archive/2021.php#2021-12-17-1</id>
  <published>2021-12-16T23:33:54+00:00</published>
  <updated>2021-12-16T23:33:54+00:00</updated>
  <link href="https://www.php.net/index.php#id2021-12-16-2" rel="alternate" type="text/html"/>
  <link href="https://www.php.net/archive/2021.php#2021-12-16-2" rel="via" type="text/html"/>
  <category term="releases" label="New PHP release"/>
  <category term="frontpage" label="PHP.net frontpage news"/>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml"><p>The PHP development team announces the immediate availability of PHP 8.0.14. This is a bug fix release.</p>

<p>All PHP 8.0 users are encouraged to upgrade to this version.</p>

<p>For source downloads of PHP 8.0.14 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>,
Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>.
The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.14">ChangeLog</a>.
</p>    </div>
  </content>
</entry>

@Frenzie
Copy link
Member

Frenzie commented Oct 14, 2024

Strange, I wonder how that happened. The 8.0.14 is actually https://www.php.net/archive/2021.php#2021-12-16-2. A human copy/paste mistake?

Edit: looks like I'm wrong(ish) :-) The ID is 2021-12-17-1 so the link/id in the feed is correct, but in the href it gives 2021-12-16-2.

<a id="2021-12-17-1" href="https://www.php.net/archive/2021.php#2021-12-16-2" rel="bookmark" class="bookmark">PHP 8.0.14 Released!</a>

Alkarex added a commit to Alkarex/FreshRSS that referenced this pull request Oct 15, 2024
Alkarex added a commit that referenced this pull request Oct 15, 2024
* Fix add feed with MariaDB / MySQL
fix #6897
Regression from #4487

* Type fix
'_' => 'Article unicity criteria', // TODO
'forced' => '<span title="Block the unicity criteria, even when the feed has duplicate articles">forced</span>', // TODO
'help' => 'Relevant for invalid feeds.<br />⚠️ Changing the policy will create duplicates.', // TODO
'id' => 'Standard ID (default)', // TODO
Copy link
Contributor

@math-GH math-GH Dec 7, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Alkarex
I need some understanding for Standard ID:
Is it the GUID (Global Unique ID)?

Copy link
Member Author

@Alkarex Alkarex Dec 7, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, except that it is not a GUID but a unique ID within a given feed, and varies depending on the version of RSS / Atom.

See:

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would ID (default) also be a good String?
It is difficult to translate Standard and default in the same String because both could be translated to something like Standard ID (Standardeinstellung). Too much Standard in 1 String :D

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I think this is fine enough

Sh4kE added a commit to Sh4kE/freshrss-helm-chart that referenced this pull request Feb 24, 2025
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [freshrss](https://github.com/FreshRSS/FreshRSS) | minor | `1.24.3` -> `1.26.0` |

---

### Release Notes

<details>
<summary>FreshRSS/FreshRSS (freshrss)</summary>

### [`v1.26.0`](https://github.com/FreshRSS/FreshRSS/blob/HEAD/CHANGELOG.md#2025-02-23-FreshRSS-1260)

[Compare Source](FreshRSS/FreshRSS@1.25.0...1.26.0)

-   Features
    -   Add order-by options to sort articles by received date (existing, default), publication date, title, link, random [#&#8203;7149](FreshRSS/FreshRSS#7149)
    -   Allow searching in all feeds, also feeds only visible at category level with `&get=A`, and also those archived with `&get=Z` [#&#8203;7144](FreshRSS/FreshRSS#7144)
        -   UI accessible from user-query view
    -   Add search operator `intext:` [#&#8203;7228](FreshRSS/FreshRSS#7228)
    -   New shortcuts for adding user labels to articles [#&#8203;7274](FreshRSS/FreshRSS#7274)
    -   New *About* page with system information [#&#8203;7161](FreshRSS/FreshRSS#7161)
-   Bug fixing
    -   Fix regression denying access to app manifest [#&#8203;7158](FreshRSS/FreshRSS#7158)
    -   Fix unwanted feed description updates [#&#8203;7269](FreshRSS/FreshRSS#7269)
    -   Ensure no PHP buffer for SQLite download (some setups would first put the file in memory) [#&#8203;7230](FreshRSS/FreshRSS#7230)
    -   Fix XML encoding regression in HTML+XPath mode [#&#8203;7345](FreshRSS/FreshRSS#7345)
    -   Improve cURL proxy options and fix some constants [#&#8203;7231](FreshRSS/FreshRSS#7231)
    -   Fix UI of global view unread articles counter [#&#8203;7247](FreshRSS/FreshRSS#7247)
    -   Hide base theme in carrousel [#&#8203;7234](FreshRSS/FreshRSS#7234)
-   Deployment
    -   Reduce superfluous Docker builds [#&#8203;7137](FreshRSS/FreshRSS#7137)
    -   Docker default image (Debian 12 Bookworm) updated to PHP 8.2.26 and Apache 2.4.62
    -   Docker alternative image (Alpine 3.21) updated to PHP 8.3.16
-   UI
    -   Add footer icons to reader view [#&#8203;7133](FreshRSS/FreshRSS#7133)
    -   Remove local reference to font *Open Sans* to avoid bugs with some local versions [#&#8203;7215](FreshRSS/FreshRSS#7215)
    -   Improve stats page layout [#&#8203;7243](FreshRSS/FreshRSS#7243)
    -   Smaller *mark as read* button in mobile view [#&#8203;5220](FreshRSS/FreshRSS#5220)
    -   Add CSS class to various types of notifications to allow custom styling [#&#8203;7287](FreshRSS/FreshRSS#7287)
    -   Various UI and style improvements: [#&#8203;7162](FreshRSS/FreshRSS#7162), [#&#8203;7268](FreshRSS/FreshRSS#7268)
        Security
    -   Better authorization label for OIDC in the UI [#&#8203;7264](FreshRSS/FreshRSS#7264)
    -   Allow comments in `force-https.txt` [#&#8203;7259](FreshRSS/FreshRSS#7259)
-   I18n:
    -   Improve German [#&#8203;7177](FreshRSS/FreshRSS#7177), [#&#8203;7275](FreshRSS/FreshRSS#7275), [#&#8203;7278](FreshRSS/FreshRSS#7278)
    -   Improve Japanese [#&#8203;7187](FreshRSS/FreshRSS#7187), [#&#8203;7195](FreshRSS/FreshRSS#7195), [#&#8203;7332](FreshRSS/FreshRSS#7332)
-   Misc.
    -   Improve PHP code [#&#8203;7191](FreshRSS/FreshRSS#7191), [#&#8203;7204](FreshRSS/FreshRSS#7204)
        -   Upgrade to PHPStan 2 [#&#8203;7131](FreshRSS/FreshRSS#7131), [#&#8203;7164](FreshRSS/FreshRSS#7164), [#&#8203;7224](FreshRSS/FreshRSS#7224),
            [#&#8203;7270](FreshRSS/FreshRSS#7270), [#&#8203;7281](FreshRSS/FreshRSS#7281), [#&#8203;7282](FreshRSS/FreshRSS#7282)
    -   Update to CssXPath 1.3.0 (no change) [#&#8203;7211](FreshRSS/FreshRSS#7211)
    -   Update dev dependencies [#&#8203;7165](FreshRSS/FreshRSS#7165), [#&#8203;7166](FreshRSS/FreshRSS#7166), [#&#8203;7167](FreshRSS/FreshRSS#7167),
        [#&#8203;7279](FreshRSS/FreshRSS#7279), [#&#8203;7280](FreshRSS/FreshRSS#7280), [#&#8203;7283](FreshRSS/FreshRSS#7283),
        [#&#8203;7284](FreshRSS/FreshRSS#7284), [#&#8203;7285](FreshRSS/FreshRSS#7285), [#&#8203;7347](FreshRSS/FreshRSS#7347)
    -   Update GitHub Actions to Ubuntu 24.04 [#&#8203;7207](FreshRSS/FreshRSS#7207)

### [`v1.25.0`](https://github.com/FreshRSS/FreshRSS/blob/HEAD/CHANGELOG.md#2024-12-23-FreshRSS-1250)

[Compare Source](FreshRSS/FreshRSS@1.24.3...1.25.0)

-   Features
    -   Add support for [regex search (regular expressions)](https://freshrss.github.io/FreshRSS/en/users/10\_filter.html#regex) [#&#8203;6706](FreshRSS/FreshRSS#6706), [#&#8203;6926](FreshRSS/FreshRSS#6926)
        -   ⚠️ Advanced regex syntax for searches depends on the database used (SQLite, PostgreSQL, MariaDB, MySQL),
            but FreshRSS filter actions such as auto-mark-as-read and auto-favourite always use [PHP PCRE2 syntax](https://php.net/regexp.introduction).
    -   Allow dynamic search operator in user queries, like `search:UserQueryA date:P1d` [#&#8203;6851](FreshRSS/FreshRSS#6851)
    -   New feed mode *HTML+XPath+JSON dot notation* (JSON in HTML) [#&#8203;6888](FreshRSS/FreshRSS#6888)
    -   Better HTTP compliance with support for HTTP response headers `Cache-Control: max-age` and `Expires` [#&#8203;6812](FreshRSS/FreshRSS#6812), [FreshRSS/simplepie#26](FreshRSS/simplepie#26)
    -   Support custom HTTP request headers per feed (e.g. for `Authorization`) [#&#8203;6820](FreshRSS/FreshRSS#6820)
    -   New unicity policies and heuristic for feeds with bad article IDs [#&#8203;4487](FreshRSS/FreshRSS#4487), [#&#8203;6900](FreshRSS/FreshRSS#6900)
    -   Fallback to GUID if article link is empty [#&#8203;7051](FreshRSS/FreshRSS#7051)
    -   New option to automatically mark new articles as read if an identical title already exists in the same category [#&#8203;6922](FreshRSS/FreshRSS#6922)
    -   New reading view option to display unread articles + favourites [#&#8203;7088](FreshRSS/FreshRSS#7088)
        -   And corresponding new filter state `&state=96` (no UI button yet)
    -   Add ability to remove content from articles with CSS selectors, also when not using full content [#&#8203;6786](FreshRSS/FreshRSS#6786), [#&#8203;6807](FreshRSS/FreshRSS#6807)
    -   Update `phpgt/cssxpath` library with improved CSS selectors [#&#8203;6618](FreshRSS/FreshRSS#6618)
        -   Support for `:last-child`, `:first-of-type`, `:last-of-type`, `^=`, `|=`
    -   New condition option to selectively retrieve full content of articles
        [#&#8203;33fd07f6f26310d4806077cc87bcdf9b8b940e35](FreshRSS/FreshRSS@33fd07f), [#&#8203;7082](FreshRSS/FreshRSS#7082)
    -   Allow parentheses in quoted search [#&#8203;7055](FreshRSS/FreshRSS#7055)
    -   New UI feature to download a user’ SQLite database or a database SQLite export (to be produced by CLI) [#&#8203;6931](FreshRSS/FreshRSS#6931)
    -   New button to delete errored feeds from a category [#&#8203;7030](FreshRSS/FreshRSS#7030)
    -   Better import of Inoreader user labels [#&#8203;6791](FreshRSS/FreshRSS#6791)
    -   Rebuild feed favicon on cache clear [#&#8203;6961](FreshRSS/FreshRSS#6961)
    -   New sharing with Bluesky [#&#8203;7116](FreshRSS/FreshRSS#7116)
    -   New sharing with Telegram [#&#8203;6838](FreshRSS/FreshRSS#6838)
-   Bug fixing
    -   Fix searches with a parenthesis before an operator like `("a b")` or `(!c)` [#&#8203;6818](FreshRSS/FreshRSS#6818)
    -   Fix auto-read tags [#&#8203;6790](FreshRSS/FreshRSS#6790)
    -   Fix CSS selector for removing elements [#&#8203;7037](FreshRSS/FreshRSS#7037), [#&#8203;7073](FreshRSS/FreshRSS#7073),
        [#&#8203;7081](FreshRSS/FreshRSS#7081), [#&#8203;7091](FreshRSS/FreshRSS#7091), [#&#8203;7083](FreshRSS/FreshRSS#7083)
    -   Fix redirection error after creating a new user [#&#8203;6995](FreshRSS/FreshRSS#6995)
    -   Fix favicon error in case of wrong URL [#&#8203;6899](FreshRSS/FreshRSS#6899)
    -   Use cURL to fetch extensions list (allows e.g. IPv6) [#&#8203;6767](FreshRSS/FreshRSS#6767)
    -   Fix XML encoding in cURL options [#&#8203;6821](FreshRSS/FreshRSS#6821)
    -   Fix initial UI scroll for some browsers [#&#8203;7059](FreshRSS/FreshRSS#7059)
    -   Fix menu for article tags in some cases [#&#8203;6990](FreshRSS/FreshRSS#6990)
    -   Fix share menu shortcut [#&#8203;6825](FreshRSS/FreshRSS#6825)
    -   Fix HTML regex pattern during install for compatibility with `v` mode [#&#8203;7009](FreshRSS/FreshRSS#7009)
    -   More robust creation of user data folder [#&#8203;7000](FreshRSS/FreshRSS#7000)
-   API
    -   Fix API for categories and labels containing a `+` [#&#8203;7033](FreshRSS/FreshRSS#7033)
        -   Compatibility with FocusReader
    -   Supported by [Capy Reader](https://github.com/jocmp/capyreader) (Android, open source) [capyreader#492](jocmp/capyreader#492)
    -   Improved UI for API [#&#8203;7048](FreshRSS/FreshRSS#7048)
    -   Allow adding multiple feeds to a category via API [#&#8203;7017](FreshRSS/FreshRSS#7017)
    -   API support edit multiple tags [#&#8203;7060](FreshRSS/FreshRSS#7060)
    -   API return all categories also those without any feed [#&#8203;7020](FreshRSS/FreshRSS#7020)
-   Compatibility
    -   Require PHP 8.1+ (drop PHP 7.4) [#&#8203;6711](FreshRSS/FreshRSS#6711)
    -   Improved support of PHP 8.4+ [#&#8203;6618](FreshRSS/FreshRSS#6618), [phpgt/CssXPath#227](phpgt/CssXPath#227),
        [#&#8203;6781](FreshRSS/FreshRSS#6781), [#&#8203;4374](FreshRSS/FreshRSS#4374)
    -   Require PostgreSQL 10+ (drop PostgreSQL 9.5) [#&#8203;6705](FreshRSS/FreshRSS#6705)
    -   Require MariaDB 10.0.5+ (drop MariaDB 5.5) [#&#8203;6706](FreshRSS/FreshRSS#6706)
    -   Require MySQL 8+ (drop MySQL 5.5.3) [#&#8203;6706](FreshRSS/FreshRSS#6706)
-   Deployment
    -   Docker: dev image `freshrss/freshrss:oldest` updated to Alpine 3.16 with PHP 8.1.22 and Apache 2.4.59 [#&#8203;6711](FreshRSS/FreshRSS#6711)
    -   Docker alternative image updated to Alpine 3.21 with PHP 8.3.14 and Apache 2.4.62 [#&#8203;5383](FreshRSS/FreshRSS#5383)
    -   Update Dockerfiles to newer key-value format [#&#8203;6819](FreshRSS/FreshRSS#6819)
    -   Docker minor improvement of entrypoint [#&#8203;6827](FreshRSS/FreshRSS#6827)
-   SimplePie
    -   Refactor [our embedding](lib/README.md) of SimplePie [#&#8203;4374](FreshRSS/FreshRSS#4374)
        -   Our fork is maintained in its [own repository](https://github.com/FreshRSS/simplepie/tree/freshrss).
    -   Remove HTTP `Referer` [#&#8203;6822](FreshRSS/FreshRSS#6822), [FreshRSS/simplepie#27](FreshRSS/simplepie#27)
        -   If some sites require it, add `Referer: https://example.net/` to the custom HTTP headers of the feed [#&#8203;6820](FreshRSS/FreshRSS#6820)
    -   Upstream fixes [simplepie#878](simplepie/simplepie#878), [simplepie#883](simplepie/simplepie#883)
    -   Sync upstream [#&#8203;6840](FreshRSS/FreshRSS#6840), [#&#8203;7067](FreshRSS/FreshRSS#7067)
-   Security
    -   Apache protect more non-public folders and files [#&#8203;6881](FreshRSS/FreshRSS#6881), [#&#8203;6893](FreshRSS/FreshRSS#6893), [#&#8203;7008](FreshRSS/FreshRSS#7008)
    -   Add privacy settings on extension list retrieval [#&#8203;4603](FreshRSS/FreshRSS#4603), [#&#8203;7132](FreshRSS/FreshRSS#7132)
    -   Fix login in unsafe mode when using a password with special XML characters [#&#8203;6797](FreshRSS/FreshRSS#6797)
    -   Fix login in e.g. Brave browser by avoiding synchronous XHR [#&#8203;7023](FreshRSS/FreshRSS#7023)
    -   Fix invalid login message [#&#8203;7066](FreshRSS/FreshRSS#7066)
    -   Modernise `windows.open noopener` (to avoid flash of white page in dark mode) [#&#8203;7077](FreshRSS/FreshRSS#7077), [#&#8203;7089](FreshRSS/FreshRSS#7089)
-   UI
    -   Searchable *My Labels* field [#&#8203;6753](FreshRSS/FreshRSS#6753)
    -   Add subscription management button to reading view [#&#8203;6946](FreshRSS/FreshRSS#6946)
    -   New option for showing label menu in article row [#&#8203;6984](FreshRSS/FreshRSS#6984)
    -   Move to next unread label on mark as read [#&#8203;6886](FreshRSS/FreshRSS#6886)
    -   Improved article footer for small / mobile screens [#&#8203;7031](FreshRSS/FreshRSS#7031)
    -   Improve Web accessibility: fix `aria-hidden` bug, and use HTML5 `hidden` [#&#8203;6910](FreshRSS/FreshRSS#6910)
    -   Default styles for `<pre>` and `<code>` [#&#8203;6770](FreshRSS/FreshRSS#6770)
    -   Refactor the sharing menu to use a `<template>` instead of duplicated HTML code [#&#8203;6751](FreshRSS/FreshRSS#6751), [#&#8203;7113](FreshRSS/FreshRSS#7113)
    -   Refactor the label menu to use a `<template>` [#&#8203;6864](FreshRSS/FreshRSS#6864)
    -   Rework UI for authors [#&#8203;7054](FreshRSS/FreshRSS#7054)
        -   Avoid Unicode escape of authors in HTML UI [#&#8203;7056](FreshRSS/FreshRSS#7056)
    -   Improved subscription management page [#&#8203;6816](FreshRSS/FreshRSS#6816)
    -   Improve user query management page [#&#8203;7062](FreshRSS/FreshRSS#7062)
    -   Restore JavaScript form validation compatibility with Web browsers using older engines (SeaMonkey) [#&#8203;6777](FreshRSS/FreshRSS#6777)
    -   Reorganise some options [#&#8203;6920](FreshRSS/FreshRSS#6920)
    -   New shortcut `?` to show shortcut page and help [#&#8203;6981](FreshRSS/FreshRSS#6981)
    -   Use of consistent colours in statistics [#&#8203;7090](FreshRSS/FreshRSS#7090)
    -   Various UI and style improvements [#&#8203;6959](FreshRSS/FreshRSS#6959)
-   Extensions
    -   New extension hook `simplepie_after_init` [#&#8203;7007](FreshRSS/FreshRSS#7007)
-   I18n
    -   Add Finnish [#&#8203;6954](FreshRSS/FreshRSS#6954)
    -   Improve English [#&#8203;7049](FreshRSS/FreshRSS#7049), [#&#8203;7053](FreshRSS/FreshRSS#7053)
    -   Improve German [#&#8203;6847](FreshRSS/FreshRSS#6847), [#&#8203;7068](FreshRSS/FreshRSS#7068), [#&#8203;7128](FreshRSS/FreshRSS#7128)
    -   Improve Italian [#&#8203;6872](FreshRSS/FreshRSS#6872), [#&#8203;7069](FreshRSS/FreshRSS#7069), [#&#8203;7086](FreshRSS/FreshRSS#7086)
    -   Improve Spanish [#&#8203;6894](FreshRSS/FreshRSS#6894), [#&#8203;6908](FreshRSS/FreshRSS#6908)
    -   Improve Turkish [#&#8203;6960](FreshRSS/FreshRSS#6960)
-   Misc.
    -   Better cache name for JSON feeds [#&#8203;6768](FreshRSS/FreshRSS#6768)
    -   Fix inversed encoding logic in `Minz_Request::paramArray()` [#&#8203;6800](FreshRSS/FreshRSS#6800)
    -   Pass PHPStan `booleansInConditions` [#&#8203;6793](FreshRSS/FreshRSS#6793)
    -   Rename PHPStan configuration file to `phpstan.dist.neon` to allow custom configuration in `phpstan.neon` [#&#8203;6892](FreshRSS/FreshRSS#6892)
    -   Code improvements [#&#8203;6800](FreshRSS/FreshRSS#6800), [#&#8203;6809](FreshRSS/FreshRSS#6809), [#&#8203;6983](FreshRSS/FreshRSS#6983)
    -   Makefile improvements [#&#8203;6913](FreshRSS/FreshRSS#6913)
    -   Fix PHPCS `ControlSignature` [#&#8203;6896](FreshRSS/FreshRSS#6896)
    -   Update *PHPMailer* [#&#8203;6968](FreshRSS/FreshRSS#6968), [#&#8203;7046](FreshRSS/FreshRSS#7046)
    -   Code updates to PHP 8.1 syntax [#&#8203;6748](FreshRSS/FreshRSS#6748)
    -   Update dev dependencies [#&#8203;6780](FreshRSS/FreshRSS#6780), [#&#8203;6964](FreshRSS/FreshRSS#6964), , [#&#8203;6965](FreshRSS/FreshRSS#6965),
        [#&#8203;6966](FreshRSS/FreshRSS#6966), [#&#8203;6967](FreshRSS/FreshRSS#6967), [#&#8203;6970](FreshRSS/FreshRSS#6970),
        [#&#8203;7042](FreshRSS/FreshRSS#7042), [#&#8203;7043](FreshRSS/FreshRSS#7043), [#&#8203;7044](FreshRSS/FreshRSS#7044),
        [#&#8203;7045](FreshRSS/FreshRSS#7045), [#&#8203;7047](FreshRSS/FreshRSS#7047), [#&#8203;7052](FreshRSS/FreshRSS#7052)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45MC4zIiwidXBkYXRlZEluVmVyIjoiMzkuMTc2LjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: https://gitea.sh4ke.rocks/lickler/freshrss/pulls/29
Co-authored-by: Michael Wittig <michael.wittig@posteo.de>
Co-committed-by: Michael Wittig <michael.wittig@posteo.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feed problem 🗞️ Feeds that have issues while loading/reading in FreshRSS

Projects

None yet

4 participants