6982 Commits

Author SHA1 Message Date
Alexandre Alapetite
f65e6b1cf8 Release 1.28.1 1.28.1 2026-01-25 19:08:04 +01:00
Alexandre Alapetite
421c0df4e0 Changelog, credits 2026-01-25 14:31:28 +01:00
Alexandre Alapetite
ac0bf3c170 Fix shortcut next unread article (#8466)
fix https://github.com/FreshRSS/FreshRSS/issues/8426
regression from https://github.com/FreshRSS/FreshRSS/pull/8057
2026-01-25 13:57:20 +01:00
Martín González Gómez
2b53203e88 Update Spanish translation (#8464)
* Update Spanish translation

* make fix-all

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-25 00:25:05 +01:00
junkfood
9942a40c59 Update the support status of ReadYou in readme (#7729)
* Update README.md

* Update, i18n:fr

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-24 18:20:14 +01:00
rupak
85f14f92fd Message for closed registration (#8462)
* Add closed msg field

i18n

fix

* Display based on registration type

* Save as FreshRSS_Context::systemConf()->closed_registration_message instead

* Improve messages

* Revert unrelated changes

* make fix-all

* Minor whitespace

* Simplify logic

* Fix invalid use of empty() and sympler syntax

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-24 15:31:43 +01:00
Eve Coull
cb3ea90490 Mark Capy Reader podcast support as true (#8444)
* Update README.md

Capy Reader has added podcast support under their Experimental section of the General settings. As such, I'm setting it as supported in the app table, along with a link to its GitHub discussion showing how to enable it.

- Changed Capy Reader podcast support to True, with link to GitHub discussion

* Readme.fr

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-24 15:29:13 +01:00
Alexandre Alapetite
3097abfab6 MariaDB restrict USE INDEX (#8460)
fix https://github.com/FreshRSS/FreshRSS/issues/8455
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8211
2026-01-24 15:06:59 +01:00
Alexandre Alapetite
bb579956cb Bump PHPStan (#8453)
~22% faster analysis since 2.1.34+.
https://github.com/phpstan/phpstan/releases/tag/2.1.34

Before / after:

```console
$ rm -fr /tmp/phpstan/
$ time composer run-script phpstan
> phpstan analyse --memory-limit 512M .
Note: Using configuration file /home/alex/GitHub/FreshRSS/phpstan.dist.neon.

real    1m2.924s
user    4m54.812s
sys     0m16.494s

$ rm -fr /tmp/phpstan/
$ time composer run-script phpstan
> phpstan analyse --memory-limit 512M .
Note: Using configuration file /home/alex/GitHub/FreshRSS/phpstan.dist.neon.

real    0m49.215s
user    3m40.906s
sys     0m18.413s
```
2026-01-21 21:44:37 +01:00
Tsung-Han Yu
84604e0c64 fix validator url update (#8436)
Closes https://github.com/FreshRSS/FreshRSS/issues/8435

Changes proposed in this pull request:
- update validator links to use the same open-url handler with prefix + encoding
- ensure the validator link reflects the current #url field value before opening
- keep existing open-url behavior for other links unchanged

How to test the feature manually:
1. Open feed edit (or add feed) form.
2. Change the feed URL in the URL field.
3. Click “Check the validity of the feed” and verify it opens the validator with the updated URL.
2026-01-20 20:00:39 +01:00
Alexandre Alapetite
63379a6fc2 Fix custom session.cookie-lifetime (#8446)
fix https://github.com/FreshRSS/FreshRSS/issues/8430
Fix case when `session.cookie-lifetime` is not using the default value of 0 in PHP ini.

Co-authored-by: rioky <rioky@users.noreply.github.com>
2026-01-18 20:41:39 +01:00
Alexandre Alapetite
ff7ce7b21d Bump SimplePie (#8445)
https://github.com/simplepie/simplepie/pull/957
2026-01-18 15:37:10 +01:00
Thomas Hufschmidt
2cbb5f8db1 Update documentation in regards to CSP warnings (#8439)
* Add a reference to the check where the warning is triggered

Note:
This is the place where the admin sees the browser pointing to.
Adding this information here allows the admin to find the matching
documentation entry.

* Update Content-Security-Policy section of english ServerConfig documentation

Note:
This fixes some minor formating/typping issues and adds some clarity to
the fact that this warning is also triggered on correctly configured
hosts, simply due to the nature of how correctness of CSP rules are checked.

* Move CSP infor source-code comment into console.info

Note:
Improve visibility of why this is happening.

* Point towards static website documentation instead of git

This URL should also remain more fixed even accross new branches/releases.

Co-authored-by: Inverle <inverle@proton.me>

* Minor fixes

* Remove overwrite part

---------

Co-authored-by: Inverle <inverle@proton.me>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-17 22:28:56 +01:00
Alexandre Alapetite
db16450b93 Bump SimplePie (#8443)
* https://github.com/FreshRSS/simplepie/pull/68
* https://github.com/FreshRSS/simplepie/pull/69

fix https://github.com/FreshRSS/FreshRSS/issues/8441
2026-01-17 12:09:04 +01:00
Alexandre Alapetite
307b527279 Changelog 2026-01-14 23:33:00 +01:00
Alexandre Alapetite
d7656b098b Changelog 2026-01-14 23:32:23 +01:00
Alexandre Alapetite
09aa9adb31 Fix RSS and OPML access by token (#8434)
Regression from https://github.com/FreshRSS/FreshRSS/pull/8165
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8371
2026-01-14 23:10:29 +01:00
Alexandre Alapetite
7573fee4f0 Fix MySQL transliterator_transliterate fallback (#8427)
The string syntax of `strtr()` cannot handle mutibytes characters, so need to be rewritten using an array map approach.
Extend the fallback replacements to include the Windows/ISO charsets of the latin languages for which we have a translation
2026-01-10 23:38:00 +01:00
Rob Loach
a5bbd679d9 Fix space between 'By:' and the author name (#8422)
* Fix space between 'By:' and the author name

* Use a different approach than sprintf()

* Revert "Use a different approach than sprintf()"

This reverts commit 3ede55f000.

* Apply a space between By: and the author name

* Apply suggestion from @Alkarex

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-10 20:50:35 +01:00
Alexandre Alapetite
b0a5f063ab Fix tags ILIKE (#8425)
fix https://github.com/FreshRSS/FreshRSS/issues/8424
Regression from https://github.com/FreshRSS/FreshRSS/issues/8329
2026-01-10 19:14:26 +01:00
Alexandre Alapetite
6b46e70f5a Changelog 2026-01-08 20:04:36 +01:00
Ciro Mota
131f4f8e63 Credits pt-BR
https://github.com/FreshRSS/FreshRSS/pull/8411
2026-01-07 22:12:48 +01:00
S. Neuhaus
43d0ab23ee Add S. Neuhaus to CREDITS.md (#8412)
https://github.com/FreshRSS/FreshRSS/pull/8402
2026-01-07 13:39:19 +01:00
Ciro Mota
0a4dc87f0f feat(i18n): Added missing translations and fix others (#8411)
* feat(i18n): Added missing translations and fix others

* feat(i18n): Fix #8401 proposed

* IGNORE

* make fix-all

* feat(i18n): Fix missing TODO

* make fix-all

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-07 09:01:19 +01:00
Frans de Jonge
ff3d1e8009 [i18n] Add "." at the end of "You have the PDO driver for SQLite" to improve uniformity (#8409)
See <https://github.com/FreshRSS/FreshRSS/pull/8403#discussion_r2662753028>.
2026-01-06 08:17:41 +01:00
Inverle
a044120ecf Update Polish translation (#8408) 2026-01-05 22:06:47 +01:00
netsho
b8656e1df1 Document mounting own CA on FreshRSS container (#8406)
closes https://github.com/FreshRSS/FreshRSS/issues/8405

- Add documentation on how to trust own CA that issued self-signed certificate as authentik signing key
- Add example in Docker Example

How to test the feature manually:

1. Create your own CA
2. Issue a certificate
3. Use the issued certificate as a signing-key in authentik when configuring FreshRSS provider
4. Add created CA on host's CA store by running `update-ca-certificates`
5. Mount the `/etc/ssl/certs/ca-certificates.crt` file on FreshRSS container
6. Start the container
7. Navigate to FreshRSS in the browser
8. Authentik login form should be displayed and work as normal.
2026-01-05 22:06:09 +01:00
Frans de Jonge
8cac68a394 Update Dutch translation (#8403)
* Dutch translation

Fixes #8401 for Dutch, plus a few other things.

* todo

* more todo

* more todo

* pdo

* more todo

* gen.php todo

* index.php todo

* update readme
2026-01-05 22:03:52 +01:00
S. Neuhaus
66a3272cfe Fix german translation (#8402)
* fix german translation issues

* Update translation for 'unread' in German

* Update translation for 'unread' in German

* add TODO items in German translation

* make fix-all

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-05 22:02:09 +01:00
Alexandre Alapetite
0202c29301 Remove wrong deprecation (#8399)
This OPML method is the one used when exporting a single feed as OPML. Not deprecated.
2026-01-04 20:40:55 +01:00
Inverle
4739bcc62e Allow styling entries by category in User CSS (#8397)
* Allow styling entries by category in User CSS

Since we have `data-feed`, it is useful to have `data-category` too.

Example of usage to hide titles in all entries that belong to a specific category ID:
```css
[data-category="6"] {
	.title { display: none !important }
	.summary {
		position: relative;
		bottom: 2rem;
	}
}
```

* Add `data-link` to entries in `reader.phtml`
2026-01-04 12:03:59 +01:00
Michael Meier
ed632bb5c4 Add myself to the credits file (#8398)
See https://github.com/FreshRSS/FreshRSS/pull/8376
2026-01-04 12:02:30 +01:00
Alexandre Alapetite
02131a83ac Changelog 2026-01-03 22:51:36 +01:00
Bartłomiej Dmitruk
0119c3e0ea Fix typos in CREDITS.md and configureController.php (#8396)
- contirbutions → contributions
- runable → runnable
2026-01-03 18:44:24 +01:00
Michael Meier
b07ec816b0 Switch to using CURLOPT_ACCEPT_ENCODING instead of the deprecated CURLOPT_ENCODING (#8376)
* Replace deprecated CURLOPT_ENCODING

The CURLOPT_ENCODING setting has been deprecated in favor of
CURLOPT_ACCEPT_ENCODING.

Signed-off-by: Michael Meier <mmeier1986@gmail.com>

* 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 <mmeier1986@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-03 18:43:15 +01:00
Bartłomiej Dmitruk
26c1102567 Merge commit from fork
* Fix Path Traversal vulnerability in UserDAO methods

* Add tests and changelog for UserDAO path traversal fix

* make fix-all

* Fix PHPStan

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-03 18:09:44 +01:00
Alexandre Alapetite
15814cfd35 Add remote user in Apache logs, also for API (#8392)
* API: add remote user in Apache logs
fix https://github.com/FreshRSS/FreshRSS/discussions/8385

Example:
```
2026-01-01T18:38:28.645486326Z 0.0.0.0 - alex [01/Jan/2026:19:38:28 +0100] "GET /api/greader.php/reader/api/0/subscription/list?output=json HTTP/1.1" 200 9798 "-" "curl/8.14.1"
```

* Fallback mod_rewrite

* Log remote user with same priority as FreshRSS_http_Util::httpAuthUser()
2026-01-03 17:48:33 +01:00
Alexandre Alapetite
2527033057 Fix unwanted expansion of user queries in some cases (#8395)
fix https://github.com/FreshRSS/FreshRSS/issues/8378
2026-01-03 16:52:33 +01:00
Alexandre Alapetite
f0769d6e55 Changelog 2026-01-02 15:45:27 +01:00
dependabot[bot]
8aae2f6365 Bump markdownlint-cli from 0.46.0 to 0.47.0 (#8388)
Bumps [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) from 0.46.0 to 0.47.0.
- [Release notes](https://github.com/igorshubovych/markdownlint-cli/releases)
- [Commits](https://github.com/igorshubovych/markdownlint-cli/compare/v0.46.0...v0.47.0)

---
updated-dependencies:
- dependency-name: markdownlint-cli
  dependency-version: 0.47.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01 20:12:02 +01:00
dependabot[bot]
eb1ebf1b6f Bump the eslint group across 1 directory with 3 updates (#8393)
Bumps the eslint group with 2 updates in the / directory: [eslint](https://github.com/eslint/eslint) and [globals](https://github.com/sindresorhus/globals).


Updates `eslint` from 9.39.1 to 9.39.2
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.39.1...v9.39.2)

Updates `@eslint/js` from 9.39.1 to 9.39.2
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/commits/v9.39.2/packages/js)

Updates `globals` from 16.5.0 to 17.0.0
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v16.5.0...v17.0.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: "@eslint/js"
  dependency-version: 9.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: globals
  dependency-version: 17.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01 19:50:35 +01:00
dependabot[bot]
cc1457ea2c Bump ruby/setup-ruby from 1.268.0 to 1.278.0 (#8390)
* Bump ruby/setup-ruby from 1.268.0 to 1.278.0

Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.268.0 to 1.278.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)
- [Commits](8aeb6ff803...4c24fa5ec0)

---
updated-dependencies:
- dependency-name: ruby/setup-ruby
  dependency-version: 1.278.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Remove comment with link to release tag

Not worth updating every time dependabot makes a commit

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Inverle <inverle@proton.me>
2026-01-01 19:48:18 +01:00
dependabot[bot]
f91f582698 Bump stylelint-order from 7.0.0 to 7.0.1 in the stylelint group (#8387)
Bumps the stylelint group with 1 update: [stylelint-order](https://github.com/hudochenkov/stylelint-order).


Updates `stylelint-order` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/hudochenkov/stylelint-order/releases)
- [Changelog](https://github.com/hudochenkov/stylelint-order/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hudochenkov/stylelint-order/compare/7.0.0...7.0.1)

---
updated-dependencies:
- dependency-name: stylelint-order
  dependency-version: 7.0.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: stylelint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01 19:47:16 +01:00
dependabot[bot]
99078d503b Bump phpstan/phpstan-phpunit from 2.0.10 to 2.0.11 (#8389)
Bumps [phpstan/phpstan-phpunit](https://github.com/phpstan/phpstan-phpunit) from 2.0.10 to 2.0.11.
- [Release notes](https://github.com/phpstan/phpstan-phpunit/releases)
- [Commits](https://github.com/phpstan/phpstan-phpunit/compare/2.0.10...2.0.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01 19:46:57 +01:00
dependabot[bot]
353025719e Bump actions/cache from 4 to 5 (#8391)
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01 19:46:22 +01:00
Rob Loach
1e5ab5d7b7 changelog: Add entry for updated .gitignore (#8380)
* changelog: Add entry for updated .gitignore

Adds an entry for https://github.com/FreshRSS/FreshRSS/pull/8372

* Fix Markdown

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-12-31 20:45:48 +01:00
Rob Loach
0754b4a53a gitignore: Ignore all the installed extensions (#8372)
Have the `extensions/.gitignore` ignore all installed extensions so that they don't show up in `git status`
2025-12-31 11:51:02 +01:00
Inverle
19bdfc0267 Fix refreshing feeds with token while anonymous refresh is disabled (#8371)
Closes https://github.com/FreshRSS/FreshRSS/issues/8369
Regression from https://github.com/FreshRSS/FreshRSS/pull/8165
2025-12-30 23:41:09 +01:00
Alexandre Alapetite
579f945af7 Fix encoding of filter actions for labels (#8368)
fix https://github.com/FreshRSS/FreshRSS/issues/8367
Forgotten from https://github.com/FreshRSS/FreshRSS/pull/8324
2025-12-29 15:29:46 +01:00
Alexandre Alapetite
7c0370b4ea Do not include hidden feeds when counting unread articles in categories (#8357)
fix https://github.com/FreshRSS/FreshRSS/issues/8347
2025-12-27 16:26:02 +01:00