Commit Graph

3411 Commits

Author SHA1 Message Date
Alexandre Alapetite
0c33d27139 Secure serving of user files from extensions (#7495)
* Secure serving of user files from extensions
fix https://github.com/FreshRSS/FreshRSS/issues/4930

* More fixes

* Typo
2025-04-07 08:47:42 +02:00
Alexandre Alapetite
d3d9acca9f Web scraping forbid security headers in cURL (#7496)
Prevent using `Remote-User`, `X-WebAuth-User` during Web scraping.
2025-04-07 08:33:13 +02:00
Alexandre Alapetite
d858053a7c Use HTTP POST for logout (#7489)
* Use HTTP POST for logout
To avoid potential CSRF risks

* Fixed button font issue

* Minor whitespace
2025-04-05 23:15:37 +02:00
Alexandre Alapetite
78dfb44060 Pass phpstan-strict-rules 2.0.4 (#7488)
New check for Boolean in while conditions
Replace https://github.com/FreshRSS/FreshRSS/pull/7481
2025-04-02 00:46:28 +02:00
Alexandre Alapetite
3336631a84 Catch extension exceptions in override (#7475)
* Catch extension exceptions in override
https://github.com/FreshRSS/Extensions/pull/300#issuecomment-2768578464

* Fix error message
2025-04-01 17:55:20 +02:00
Alexandre Alapetite
dbdadbb410 Make update URL readonly (#7477)
The security risks look higher than the minor convinience
Modify https://github.com/FreshRSS/FreshRSS/pull/1024
2025-04-01 17:54:52 +02:00
maTh
1f624bc5e2 Referrer-Policy: same-origin (#6303)
* Referrer-Policy: same-origin

* same-origin for our own images

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-04-01 12:23:56 +02:00
𝗛𝗼𝗹𝗶
4c6bd24eec Improve Turkish Language (#7442)
* Improve Turkish Language

* fix

* Update gen.php

* Update app/i18n/tr/gen.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update sub.php

* edit

* edit

* make fix-all

* Mark lines as ignored

* Typo

* Update sub.php

---------

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-04-01 11:30:09 +02:00
Alexandre Alapetite
d81dbc44b8 Fix escaping of tag search (#7468)
* Fix escaping of tag search
fix https://github.com/FreshRSS/FreshRSS/issues/7466

* Minor clarity
2025-04-01 09:39:16 +02:00
Alexandre Alapetite
d0b9611319 Update bcrypt.js from 2.4.4 to 3.0.2 (#7449)
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 > p/scripts/vendor/bcrypt.js`
2025-03-25 10:19:51 +01:00
Alexandre Alapetite
9114b9a06a Support multiple JSON fragments in HTML+XPath+JSON mode (#7369)
* Support multiple JSON fragments in HTML+XPath+JSON mode
fix https://github.com/FreshRSS/FreshRSS/discussions/7352#discussioncomment-12295475
E.g. HTML with one `<script type="application/ld+json">...</script>` per item.

* Better help messages
2025-03-24 14:08:43 +01:00
Glyn Normington
b0a3ae1e7a Clarify MINZ usage (#7426)
* Clarify MINZ usage

MINZ (archived, read-only) is not a dependency
of FreshRSS, which would be very concerning.

Instead, FreshRSS copied MINZ and has evolved
it since then under the same license.

Ref: https://github.com/FreshRSS/FreshRSS/discussions/7425

* Move credits to README

* Delete credits from web UI

* Additional changes

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-03-24 14:04:10 +01:00
Machou
f49e5cc7fe fr update (#7432)
* Update admin.php

* Update conf.php
2025-03-14 23:45:28 +01:00
maTh
7de384bf9c Mark as read button: config for the size (#7314)
* settings

* i18n: mark_read_button

* big, small, none

* fix

* Fixes

* make fix-all

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-03-13 23:10:48 +01:00
Alexandre Alapetite
a7361a3e7c Implement JSON string concatenation with & operator (#7414)
Inspired by [JSONata syntax](https://docs.jsonata.org/expressions).
fix https://github.com/FreshRSS/FreshRSS/issues/6565
2025-03-13 22:40:41 +01:00
Bryan Butler
802fc89ca6 Fix issue #7383: Finish Translation issue requiring character escape out. (#7423)
Escape out "klo" ("at") characters found in format_date_hour for Finnish/Suomi
translation. Specifically to resolve issue #7383
2025-03-12 22:35:49 +01:00
Alexandre Alapetite
d80171ebfd Back-compatibility cURL 7.51 (#7409)
* Back-compatibility cURL 7.51
fix https://github.com/FreshRSS/FreshRSS/issues/7381
And add cURL version to system info.
Do not require a specific version of cURL for now, but maybe later.

* Fix CI

* make fix-all

* Add TODOs

* Add ssl_version

* Update app/i18n/it/index.php

Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>

---------

Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>
2025-03-08 11:49:05 +01:00
Jackson Culbreth
fdc564dd9e Added api password indicator text (#7340)
* Added api password indicator text

* make fix-all

* i18n

* i18n: it

Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>
2025-03-07 23:34:56 +01:00
Bryan Butler
3ec0bdab38 Fix issue where $keepMax is defaulted to const when non-zero value is compared. (#7416)
Fix issue where $keepMax is defaulted to const when non-zero value is compared.

Fix an issue where $keepMax var is set to ARCHIVING_RETENTION_COUNT_LIMIT
when a user sets "Archiving" -> "Maximum number of articles to keep per
feed" to a non-zero value for a given category.

[EXAMPLE]:
User sets value to 50 (int), This matches the !== comparison and
thus is overridden by ARCHIVING_RETENTION_COUNT_LIMIT.
2025-03-07 23:29:27 +01:00
Rui Melo
ecb7a836ec Add Portuguese from Portugal Language (#7329)
* Good day to deal with people in high places; particularly lonely stewardesses.

* You're currently going through a difficult transition period called "Life."

* You're at the end of the road again.

* Fixes

* Add references to  pt-pt

* Fix order

* Config typos

* Update conf.php

* Fix whitespace

* Update app/i18n/pt-pt/sub.php

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-03-06 17:30:16 +01:00
berumuron
40cdeb8687 fix: Update the user's last activity on login action (#7406) 2025-03-05 22:36:41 +01:00
Alexandre Alapetite
ecdb63c335 Fix regression cURL HTTP headers (#7403)
* Fix regression cURL HTTP headers
fix https://github.com/FreshRSS/FreshRSS/issues/6712#issuecomment-2697961491
We would sometimes wrongly override the default HTTP headers of SimplePie
https://github.com/FreshRSS/simplepie/pull/33
https://github.com/simplepie/simplepie/pull/912

* Sync SimplePie
https://github.com/FreshRSS/simplepie/pull/33
2025-03-05 16:45:06 +01:00
Alexandre Alapetite
79387e144b i18n do not translate XPath code (#7404)
Spotted in https://mapstodon.space/@jorgesanz/114109696863582740
2025-03-05 16:34:20 +01:00
Annika Backstrom
f40acd78cb Use case-insensitive sort for categories (#7402)
Changes proposed in this pull request:

- Use `strnatcasecmp()` inside `listSortedCategories()`

How to test the feature manually:

1. Create categories `A`, `b`, and `C`
2. Observe that categories are sorted case-insensitively on the feed index and Subscription Management pages
2025-03-05 14:40:26 +01:00
Alexandre Alapetite
03aec8b54e Fix dynamic OPML (#7394)
Regression from https://github.com/FreshRSS/FreshRSS/pull/7155
Fix https://github.com/FreshRSS/FreshRSS/issues/7385
2025-03-03 23:05:39 +01:00
FromTheMoon
78ca659ecc Update Hungarian translation (#7391)
* Update Hungarian translation

* make fix-all

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-03-03 16:43:13 +01:00
Alexandre Alapetite
5f6ef05ffc Fix bigint timestamps on 32-bit (#7375)
* Fix bigint timestamps on 32-bit
fix https://github.com/FreshRSS/FreshRSS/issues/7374
SQL requests for BIGINT fields may return a string on 32-bit systems instead of an integer

* Calculations may also be string
2025-02-26 17:01:25 +01:00
Alexandre Alapetite
f7b4a1e742 PHPStan more checkImplicitMixed (#7339)
* PHPStan more checkImplicitMixed

* Draft Entry.php

* Finish Entry.php

* Finish FeedDAO.php and Themes.php
2025-02-23 17:08:17 +01:00
Zihao Diao
b0b75dd635 fix: properly set the priority field of feeds when adding new feed. (#7354)
Signed-off-by: Zihao Diao <hi@ericdiao.com>
2025-02-23 16:35:17 +01:00
Alexandre Alapetite
a518ecb39e Fix regression XPath XML encoding (#7345)
* Fix regression XPath XML encoding
fix https://github.com/FreshRSS/FreshRSS/discussions/7325
The categories (tags) were not correctly XML-escaped due to being an array
https://github.com/FreshRSS/FreshRSS/pull/5305/files#r1964316119

* Improve typing
2025-02-20 22:12:10 +01:00
hkcomori
8bed431b3b i18n: Japanese (#7332) 2025-02-17 23:40:21 +01:00
maTh
a697ca54ad Shortcuts for adding labels (#7274)
* add shortcut in config

* open my labels menu with shortcut

* the first 9 items are selectable + input field

* i18n

* Update app/i18n/nl/conf.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* index.menu.mylabels

* order fixed

---------

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2025-02-03 08:47:25 +01:00
maTh
1e8ef4bb72 Improve notifications: notificationName (#7287)
* notificationID

* 3 first examples

* fix

* notificationID -> notificationName

* Update lib/Minz/Request.php

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

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-02-02 19:15:03 +01:00
maTh
5e2b79d87b Lieblingsartikel -> Favoritenartikel (#7278) 2025-02-01 22:36:19 +01:00
maTh
b912657b25 Über -> info (#7275) 2025-01-31 18:14:59 +01:00
Alexandre Alapetite
e749490693 Pass PHPStan checkBenevolentUnionTypes (#7270) 2025-01-31 13:59:51 +01:00
maTh
f72f5e9523 Improve notification banner (#7268)
* a -> button

* i18n: Close

* a.close -> .close

* themes

* Apply suggestions from code review

Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update app/i18n/fr/gen.php

---------

Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-01-31 13:58:57 +01:00
Alexandre Alapetite
d1eb85e374 Fix unwanted feed description updates (#7269)
fix https://github.com/FreshRSS/FreshRSS/discussions/7265
2025-01-29 22:32:03 +01:00
Alexandre Alapetite
bb7236e263 Better authorization label for OIDC (#7264)
* Better authorization label for OIDC
Reword description of HTTP login method to include OIDC
fix https://github.com/FreshRSS/FreshRSS/issues/7254#issuecomment-2615838151
And remove several duplicated i18n entries.
And add to documentation https://www.authelia.com/integration/openid-connect/freshrss/

* Update app/i18n/it/admin.php

Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>

* Update app/i18n/nl/admin.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

---------

Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2025-01-28 15:33:17 +01:00
Alexandre Alapetite
d6c2daee51 Add search operator intext: (#7228)
* Add search operator intext:
fix https://github.com/FreshRSS/FreshRSS/issues/6188
https://github.com/FreshRSS/FreshRSS/discussions/7220

* Add example to doc
2025-01-25 09:16:13 +01:00
Alexandre Alapetite
22b74b0a57 Improve cURL proxy options (#7231)
3 is now used for CURLPROXY_HTTPS2
f07612cd9a/include/curl/curl.h (L789)
Related to https://github.com/FreshRSS/FreshRSS/issues/7209
2025-01-25 09:14:08 +01:00
maTh
afb6f788fa Improve stats page layout (#7243)
* New stats box layout

* repartition: table overview improved with links and icons

* Show selected feed name in title

* i18n string: overview

* fix

* fix

* fix

* delete unused stat in frss

* Update app/i18n/fr/admin.php

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-01-21 23:45:22 +01:00
Alexandre Alapetite
825ccf5556 Hide base theme (#7234) 2025-01-21 23:31:40 +01:00
Alexandre Alapetite
2cc5621860 Ensure no PHP buffer for SQLite download (#7230)
* Ensure no PHP buffer for SQLite download
fix https://github.com/FreshRSS/FreshRSS/pull/6931#issuecomment-2567037406

* No warning if any case
2025-01-16 14:18:34 +01:00
Alexandre Alapetite
a8ef1c3c10 Fix stats for MySQL (#7212)
fix https://github.com/FreshRSS/FreshRSS/issues/7210
MySQL returns decimal for some columns, which get converted to string instead of integer in PHP
2025-01-11 15:33:57 +01:00
Alexandre Alapetite
f9cb6d3520 HTML escape system info
regression from https://github.com/FreshRSS/FreshRSS/pull/7161
Some of the echo'ed information could have some special characters such as `<&>`, in particular `HTTP_USER_AGENT`
2025-01-10 08:54:06 +01:00
Alexandre Alapetite
7a79717e10 Fix sqlite_version (#7205)
* Fix sqlite_version
for https://github.com/FreshRSS/FreshRSS/pull/7161

* Fix PostgreSQL
2025-01-10 08:47:52 +01:00
maTh
82b1d999dc New: About page with env information (#7161)
* infobox

* i18n

* CSS improved

* themes

* Update app/views/index/about.phtml

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

* Update app/views/index/about.phtml

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

* Environment information => System information

* Issue templates: Env info -> System info

* i18n: IT

Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>

* i18n: DE

* Update app/i18n/it/index.php

Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>

* added: php_uname()

* i18n: fr

* Add database version

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>
2025-01-10 08:31:44 +01:00
Alexandre Alapetite
5368f38753 Reduce undeeded use of elvis operator ?: (#7204) 2025-01-10 08:13:09 +01:00
Alexandre Alapetite
3280ec617f Fix continuous mode (#7200)
fix https://github.com/FreshRSS/FreshRSS/issues/7199
2025-01-08 15:10:39 +01:00