<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/cli, branch custom</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=custom</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=custom'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2026-01-03T17:43:15+00:00</updated>
<entry>
<title>Switch to using CURLOPT_ACCEPT_ENCODING instead of the deprecated CURLOPT_ENCODING (#8376)</title>
<updated>2026-01-03T17:43:15+00:00</updated>
<author>
<name>Michael Meier</name>
<email>mmeier1986@googlemail.com</email>
</author>
<published>2026-01-03T17:43:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=b07ec816b023c911f76c4149d00a2ffbdcab1d16'/>
<id>urn:sha1:b07ec816b023c911f76c4149d00a2ffbdcab1d16</id>
<content type='text'>
* Replace deprecated CURLOPT_ENCODING

The CURLOPT_ENCODING setting has been deprecated in favor of
CURLOPT_ACCEPT_ENCODING.

Signed-off-by: Michael Meier &lt;mmeier1986@gmail.com&gt;

* Sync with our SimplePie fork PR
https://github.com/FreshRSS/simplepie/pull/67
https://github.com/simplepie/simplepie/pull/960
https://github.com/simplepie/simplepie/pull/962

* Our SimplePie PR merged

---------

Signed-off-by: Michael Meier &lt;mmeier1986@gmail.com&gt;
Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>Improve configuration checks (#8334)</title>
<updated>2025-12-21T18:26:08+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-21T18:26:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=1a3912f25a27c8d78aacbbee98f6056f4ad47f1a'/>
<id>urn:sha1:1a3912f25a27c8d78aacbbee98f6056f4ad47f1a</id>
<content type='text'>
Add a distinction between recommended and required extensions.
Add check for recommended php-intl extension as follow-up of https://github.com/FreshRSS/FreshRSS/pull/8329#issuecomment-3677686581
Improve related checks such as ZIP.
Reduce duplicated translations and tests.</content>
</entry>
<entry>
<title>Improve Docker + compatibility Arch (#8299)</title>
<updated>2025-12-12T21:07:19+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-12T21:07:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=b66d4ade4160b0f13efa4fb48a6c27884ad81804'/>
<id>urn:sha1:b66d4ade4160b0f13efa4fb48a6c27884ad81804</id>
<content type='text'>
* Better comments in our Docker images
* Make `cli/access-permissions.sh` compatible with other Apache groups such as `http` for Linux Arch
* Better `/Docker/entrypoint.sh` supporting various Apache configuration paths (and slightly faster).
* Add test image for Linux Arch (not sure we will keep it)

See
* https://github.com/FreshRSS/FreshRSS/pull/8279#issuecomment-3620674818
</content>
</entry>
<entry>
<title>Scaling of user statistics (#8277)</title>
<updated>2025-12-04T18:11:31+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-04T18:11:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=78e40c6fe3afe7f815ef9d32646610e2d5436ba3'/>
<id>urn:sha1:78e40c6fe3afe7f815ef9d32646610e2d5436ba3</id>
<content type='text'>
Fix https://github.com/FreshRSS/FreshRSS/issues/8268
To better support user management on FreshRSS instance with many users.

SQL speed improved. On a reduced test with 5 users, including some large accounts (PostgreSQL on a very tiny and slow server), improving from ~2.3s to ~1.8s, which gives ~20% speed improvement.

Then tested with 1000 users, with only the default feed (on my old desktop computer):

```sh
for i in {1..1000}; do ./cli/create-user.php --user=freshrss$i --password=freshrss; done
app/actualize_script.php
cli/access-permissions.sh
```

SQLite:

```console
$ time cli/user-info.php | wc -l
1001

real    0m1.366s
user    0m0.908s
sys     0m0.475s
```

PostgreSQL:

```console
$ time cli/user-info.php | wc -l
1001

real    0m28.498s
user    0m12.137s
sys     0m2.217s
```

MariaDB:

```console
# time ./cli/user-info.php | wc -l
1001

real    0m49.485s
user    0m1.276s
sys     0m2.258s
```

Yes, SQLite is much faster - not a surprise for such use-cases, where the TCP connection is not re-used.

I have added some CLI options to disable some statistics:

```sh
cli/user-info.php --no-db-size --no-db-counts
```

For the Web UI, I have disabled detailed user statistics if it takes too long, and retrieve missing user statistics asynchronously via JavaScript. Lazy loading of the user details based on IntersectionObserver, with maximum 10 requests in parallel.
Web UI tested on 1000 users as well. Checked with SeaMonkey.
</content>
</entry>
<entry>
<title>Add new translate action: `move`, `make i18n-move-key` (#8214)</title>
<updated>2025-11-16T17:44:07+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-11-16T17:44:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=b9abe706902c666d85cf60eb828a72c4f3062297'/>
<id>urn:sha1:b9abe706902c666d85cf60eb828a72c4f3062297</id>
<content type='text'>
So that renaming something like `conf.shortcut.toggle_sidebar` to `conf.shortcut.toggle_aside` can be done easily even after already having added `conf.shortcut.toggle_sidebar` and translated it in multiple languages.

Example of usage:
```console
./cli/manipulate.translation.php -a move -k conf.shortcut.toggle_sidebar -n conf.shortcut.toggle_aside
```
```console
make i18n-move-key key="conf.shortcut.toggle_sidebar" new-key="conf.shortcut.toggle_aside"
```

The key will be moved and all values/states will be kept.</content>
</entry>
<entry>
<title>Housekeeping lib_rss.php (#8193)</title>
<updated>2025-11-11T07:17:12+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-11-11T07:17:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=a18c35046daee15e7ac5f85db290d54541a03e3c'/>
<id>urn:sha1:a18c35046daee15e7ac5f85db290d54541a03e3c</id>
<content type='text'>
* Housekeeping lib_rss.php
`lib_rss.php` had become much too large, especially after https://github.com/FreshRSS/FreshRSS/pull/7924
Moved most functions to other places.
Mostly no change of code otherwise (see comments).

* Extension: composer run-script phpstan-third-party</content>
</entry>
<entry>
<title>fix: repair cli/health.php for OIDC installations (#8040)</title>
<updated>2025-10-25T09:59:09+00:00</updated>
<author>
<name>GreyChame1eon</name>
<email>102537218+GreyChame1eon@users.noreply.github.com</email>
</author>
<published>2025-10-25T09:59:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=715a027abdebab724031070e0a251a6587768527'/>
<id>urn:sha1:715a027abdebab724031070e0a251a6587768527</id>
<content type='text'>
* fix: repair cli/health.php for OIDC installations

Connected with #8039
This changes will restore healthcheck process both for classic and OIDC logins

* Finalise fixes

---------

Co-authored-by: alexx_b &lt;alexx_b@mir-lin1.mir.int&gt;
Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>Bump phpstan/phpstan from 2.1.29 to 2.1.31 (#8156)</title>
<updated>2025-10-25T09:21:28+00:00</updated>
<author>
<name>dependabot[bot]</name>
<email>49699333+dependabot[bot]@users.noreply.github.com</email>
</author>
<published>2025-10-25T09:21:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=f1c91c84ddee0a9f3ef6d0775f630822c184963f'/>
<id>urn:sha1:f1c91c84ddee0a9f3ef6d0775f630822c184963f</id>
<content type='text'>
* Bump phpstan/phpstan from 2.1.29 to 2.1.31

Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan-phar-composer-source) from 2.1.29 to 2.1.31.
- [Commits](https://github.com/phpstan/phpstan-phar-composer-source/commits)

---
updated-dependencies:
- dependency-name: phpstan/phpstan
  dependency-version: 2.1.31
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] &lt;support@github.com&gt;

* Fixes

---------

Signed-off-by: dependabot[bot] &lt;support@github.com&gt;
Co-authored-by: dependabot[bot] &lt;49699333+dependabot[bot]@users.noreply.github.com&gt;
Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>Change regional language codes (#8065)</title>
<updated>2025-10-06T19:09:01+00:00</updated>
<author>
<name>Alexis Degrugillier</name>
<email>aledeg@users.noreply.github.com</email>
</author>
<published>2025-10-06T19:09:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=b6f4276c6cc2e5a53f0a4afb1536960427fa995e'/>
<id>urn:sha1:b6f4276c6cc2e5a53f0a4afb1536960427fa995e</id>
<content type='text'>
* Change regional language codes

According to `ISO-639-1` and `ISO-3166-1 alpha-2` recommendations, regional
languages must be written with the language code in lowercase and the region
in uppercase. For instance, we should have `en-US` instead of `en-us`.

Folders have been updated to reflect those recommendations and regional
language codes have been updated in the translation files.

* Update README files

* Fix configuration for typos

* Revert language order in documentation

* Remove unnecessary code

* Change language configuration getter

* Fix phpstan error

* Fix typo

* Add types

* escape regex

* Move language logic to avoid magic or deprecated methods

* Minor fix on regex</content>
</entry>
<entry>
<title>Replace translation status flags with text section (#7842)</title>
<updated>2025-10-02T21:00:16+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-10-02T21:00:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=be49726ebb700aca030004d367c029082cfc6427'/>
<id>urn:sha1:be49726ebb700aca030004d367c029082cfc6427</id>
<content type='text'>
* Replace translation status flags with text section

* make fix-all

* Update README.md

Co-authored-by: maTh &lt;1645099+math-GH@users.noreply.github.com&gt;

* Improve with suggestions

* Improve with further suggestions

* fix headers

* BCP 47
https://developer.mozilla.org/en-US/docs/Glossary/BCP_47_language_tag

* en-US: `TODO` -&gt; `IGNORE`

* i18n: fr

* i18n: fr

* i18n: fr

* Links

---------

Co-authored-by: maTh &lt;1645099+math-GH@users.noreply.github.com&gt;
Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
</feed>
