<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/app/Utils, branch 1.27.1</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.27.1</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.27.1'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2025-08-30T14:28:37+00:00</updated>
<entry>
<title>Include port number for HTTP Retry-After (#7875)</title>
<updated>2025-08-30T14:28:37+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-08-30T14:28:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=2b02ca59c6af1cfe087ec7e6ea9773cffd48fd50'/>
<id>urn:sha1:2b02ca59c6af1cfe087ec7e6ea9773cffd48fd50</id>
<content type='text'>
fix https://github.com/FreshRSS/FreshRSS/issues/7870 (partially)
</content>
</entry>
<entry>
<title>Implement support for HTTP 429 Too Many Requests (#7760)</title>
<updated>2025-07-31T07:17:42+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-07-31T07:17:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=7a0c423357818b19eb431775452b1357bc7fd3eb'/>
<id>urn:sha1:7a0c423357818b19eb431775452b1357bc7fd3eb</id>
<content type='text'>
* Implement support for HTTP 429 Too Many Requests
Will obey the corresponding HTTP `Retry-After` header at domain level.

* Implement 503 Service Unavailable

* Sanitize Retry-After

* Reduce default value when Retry-After is absent
And make configuration parameter

* Retry-After also for favicons</content>
</entry>
<entry>
<title>Update bcrypt.js from 2.4.4 to 3.0.2 (#7449)</title>
<updated>2025-03-25T09:19:51+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-03-25T09:19:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=d0b961131939800a119801bfce7411ad2e429e9e'/>
<id>urn:sha1:d0b961131939800a119801bfce7411ad2e429e9e</id>
<content type='text'>
https://github.com/dcodeIO/bcrypt.js/releases/tag/v3.0.0
Can be updated to the latest version with:
`curl -L https://unpkg.com/bcryptjs/umd/index.js &gt; p/scripts/vendor/bcrypt.js`</content>
</entry>
<entry>
<title>Implement JSON string concatenation with &amp; operator (#7414)</title>
<updated>2025-03-13T21:40:41+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-03-13T21:40:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=a7361a3e7cd335c8932deba88fe60e8f673c2d40'/>
<id>urn:sha1:a7361a3e7cd335c8932deba88fe60e8f673c2d40</id>
<content type='text'>
Inspired by [JSONata syntax](https://docs.jsonata.org/expressions).
fix https://github.com/FreshRSS/FreshRSS/issues/6565</content>
</entry>
<entry>
<title>PHPStan 2.0 (#7131)</title>
<updated>2024-12-27T11:12:49+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-12-27T11:12:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=b1d24fbdb7d1cc948c946295035dad6df550fb7e'/>
<id>urn:sha1:b1d24fbdb7d1cc948c946295035dad6df550fb7e</id>
<content type='text'>
* PHPStan 2.0
fix https://github.com/FreshRSS/FreshRSS/issues/6989
https://github.com/phpstan/phpstan/releases/tag/2.0.0
https://github.com/phpstan/phpstan/blob/2.0.x/UPGRADING.md

* More

* More

* Done

* fix i18n CLI

* Restore a PHPStan Next test
For work towards PHPStan Level 10

* 4 more on Level 10

* fix getTagsForEntry

* API at Level 10

* More Level 10

* Finish Minz at Level 10

* Finish CLI at Level 10

* Finish Controllers at Level 10

* More Level 10

* More

* Pass bleedingEdge

* Clean PHPStan options and add TODOs

* Level 10 for main config

* More

* Consitency array vs. list

* Sanitize themes get_infos

* Simplify TagDAO-&gt;getTagsForEntries()

* Finish reportAnyTypeWideningInVarTag

* Prepare checkBenevolentUnionTypes and checkImplicitMixed

* Fixes

* Refix

* Another fix

* Casing of __METHOD__ constant</content>
</entry>
<entry>
<title>Upgrade code to php 8.1 (#6748)</title>
<updated>2024-11-28T16:11:04+00:00</updated>
<author>
<name>Luc SANCHEZ</name>
<email>4697568+ColonelMoutarde@users.noreply.github.com</email>
</author>
<published>2024-11-28T16:11:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=15745d42b779ad14efde2932ab116f45eee39246'/>
<id>urn:sha1:15745d42b779ad14efde2932ab116f45eee39246</id>
<content type='text'>
* revert
Fix code indentation
Fix code

Upgrade code to php 8.1

* fix remarques

* code review

* code review

* code review

* Apply suggestions from code review

* code review

* Fixes

* Many remainging updates of array syntax

* Lost case 'reading-list'

* Uneeded PHPDoc

---------

Co-authored-by: Luc Sanchez &lt;l.sanchez-prestataire@alptis.fr&gt;
Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>Upgrade to PHP 8.1 (#6711)</title>
<updated>2024-09-06T07:06:46+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-09-06T07:06:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=a81656c3ed5b8fe0f31794a4fbe0d1a907fca8e8'/>
<id>urn:sha1:a81656c3ed5b8fe0f31794a4fbe0d1a907fca8e8</id>
<content type='text'>
* Upgrade to PHP 8.1
As discussed in https://github.com/FreshRSS/FreshRSS/discussions/5474

https://www.php.net/releases/8.0/en.php
https://www.php.net/releases/8.1/en.php

Upgrade to available native type declarations
https://php.net/language.types.declarations

Upgrade to https://phpunit.de/announcements/phpunit-10.html which requires PHP 8.1+ (good timing, as version 9 was not maintained anymore)

Upgrade `:oldest` Docker dev image to oldest Alpine version supporting PHP 8.1: Alpine 3.16, which includes PHP 8.1.22.

* Include 6736
https://github.com/FreshRSS/FreshRSS/pull/6736</content>
</entry>
<entry>
<title>JSON Dot Notation allow string conversion (#6631)</title>
<updated>2024-07-17T22:35:13+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-07-17T22:35:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=f21a164c055a5e88b430fa86dce14fc31bfd1afb'/>
<id>urn:sha1:f21a164c055a5e88b430fa86dce14fc31bfd1afb</id>
<content type='text'>
Allow fetching a string from string-friendly types.
Fix https://github.com/FreshRSS/FreshRSS/discussions/6626</content>
</entry>
<entry>
<title>Fix JSON Dot direct array (#6476)</title>
<updated>2024-05-22T21:21:16+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-05-22T21:21:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=c0e87f6a5c9b07cdde82e4c1876e19b8bf98d543'/>
<id>urn:sha1:c0e87f6a5c9b07cdde82e4c1876e19b8bf98d543</id>
<content type='text'>
* Fix JSON Dot direct array
Allow consuming a JSON array in which entries are top level
https://github.com/FreshRSS/FreshRSS/issues/6474

* Allow $ as root</content>
</entry>
<entry>
<title>Refactoring: Rename dotpath into dotnotation (#6369)</title>
<updated>2024-04-25T06:28:42+00:00</updated>
<author>
<name>maTh</name>
<email>1645099+math-GH@users.noreply.github.com</email>
</author>
<published>2024-04-25T06:28:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=154a36700c80191121afec00b026daba5ff97dc8'/>
<id>urn:sha1:154a36700c80191121afec00b026daba5ff97dc8</id>
<content type='text'>
* KIND_JSON_DOTPATH -&gt; KIND_JSON_DOTNOTATION

* TYPE_JSON_DOTPATH =&gt; TYPE_JSON_DOTNOTATION

* json_dotpath =&gt; json_dotnotation

* dotPathsForStandardJsonFeed =&gt; dotNotationForStandardJsonFeed

* TYPE_JSON_DOTNOTATION = 'JSON+DotPath' =&gt; 'JSON+DotNotation'

* documentation: OPML.md

* convertJsonToRss()

* $dotpaths =&gt; $dotnotations

* FreshRSS_Feed_Exception

* comment

* Compatibility TYPE_JSON_DOTPATH

---------

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
</feed>
