aboutsummaryrefslogtreecommitdiff
path: root/app
AgeCommit message (Collapse)Author
2026-01-24Message for closed registration (#8462)Gravatar rupak
* 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-24MariaDB restrict USE INDEX (#8460)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8455 Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8211
2026-01-20fix validator url update (#8436)Gravatar Tsung-Han Yu
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-14Fix RSS and OPML access by token (#8434)Gravatar Alexandre Alapetite
Regression from https://github.com/FreshRSS/FreshRSS/pull/8165 Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8371
2026-01-10Fix MySQL transliterator_transliterate fallback (#8427)Gravatar Alexandre Alapetite
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-10Fix space between 'By:' and the author name (#8422)Gravatar Rob Loach
* Fix space between 'By:' and the author name * Use a different approach than sprintf() * Revert "Use a different approach than sprintf()" This reverts commit 3ede55f000bb7ef5ed7c1d6ffd060139801838b7. * 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-10Fix tags ILIKE (#8425)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8424 Regression from https://github.com/FreshRSS/FreshRSS/issues/8329
2026-01-07feat(i18n): Added missing translations and fix others (#8411)Gravatar Ciro Mota
* 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-06[i18n] Add "." at the end of "You have the PDO driver for SQLite" to improve ↵Gravatar Frans de Jonge
uniformity (#8409) See <https://github.com/FreshRSS/FreshRSS/pull/8403#discussion_r2662753028>.
2026-01-05Update Polish translation (#8408)Gravatar Inverle
2026-01-05Update Dutch translation (#8403)Gravatar Frans de Jonge
* 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-05Fix german translation (#8402)Gravatar S. Neuhaus
* 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-04Remove wrong deprecation (#8399)Gravatar Alexandre Alapetite
This OPML method is the one used when exporting a single feed as OPML. Not deprecated.
2026-01-04Allow styling entries by category in User CSS (#8397)Gravatar Inverle
* 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-03Fix typos in CREDITS.md and configureController.php (#8396)Gravatar Bartłomiej Dmitruk
- contirbutions → contributions - runable → runnable
2026-01-03Switch to using CURLOPT_ACCEPT_ENCODING instead of the deprecated ↵Gravatar Michael Meier
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-03Merge commit from forkGravatar Bartłomiej Dmitruk
* 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-03Fix unwanted expansion of user queries in some cases (#8395)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8378
2025-12-30Fix refreshing feeds with token while anonymous refresh is disabled (#8371)Gravatar Inverle
Closes https://github.com/FreshRSS/FreshRSS/issues/8369 Regression from https://github.com/FreshRSS/FreshRSS/pull/8165
2025-12-29Fix encoding of filter actions for labels (#8368)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8367 Forgotten from https://github.com/FreshRSS/FreshRSS/pull/8324
2025-12-27Do not include hidden feeds when counting unread articles in categories (#8357)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8347
2025-12-26Speed: disable labels count for Ajax requests (#8352)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8342
2025-12-25DB: auto-add lastUserModified column also during markRead (#8346)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8345
2025-12-24Handle fetch of text/plain as <pre> (#8340)Gravatar Alexandre Alapetite
* Handle fetch of text/plain as <pre> fix https://github.com/FreshRSS/FreshRSS/issues/8328 * class="text-plain"
2025-12-24Fix serialisation of dates in searches (#8341)Gravatar Alexandre Alapetite
Dates should not be expanded/resolved in string serialisations of search expressions, as it otherwise break relative user queries such as `P30D`. Fix of https://github.com/FreshRSS/FreshRSS/pull/8293
2025-12-23Fix parsing of literal "or" in regex (#8338)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/7879
2025-12-21Improve configuration checks (#8334)Gravatar Alexandre Alapetite
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.
2025-12-20More uniform SQL search and PHP search (#8329)Gravatar Alexandre Alapetite
* More uniform SQL search and PHP search The behaviour depends though on the database. Improve https://github.com/FreshRSS/FreshRSS/discussions/8265#discussioncomment-15278980 * Try to use transliterator_transliterate function instead
2025-12-17Allow negative category sort numbers (#8330)Gravatar stag
Closes https://github.com/FreshRSS/FreshRSS/issues/8304 Remove the min=1 attribute so negative numbers can be used to force categories to the bottom
2025-12-17Use native PHP #[Deprecated] (#8325)Gravatar Alexandre Alapetite
https://php.watch/versions/8.4/Deprecated And enfore it with PHPUnit + PHPStan. Especially useful for extensions.
2025-12-17Rework encoding of search filters (#8324)Gravatar Alexandre Alapetite
Rework: * https://github.com/FreshRSS/FreshRSS/pull/8222 now that we have: * https://github.com/FreshRSS/FreshRSS/pull/8293 Follow-up of: * https://github.com/FreshRSS/FreshRSS/pull/8311 * More simplification * Deprecate getRawInput
2025-12-16Handle null in base64_encode (#8321)Gravatar Alexandre Alapetite
* Handle null in base64_encode https://github.com/FreshRSS/FreshRSS/discussions/8314#discussioncomment-15269370 * PHPDoc
2025-12-16Fix array unique gaps (#8322)Gravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/discussions/8265#discussioncomment-15270212
2025-12-15Reverse hash and nonce (#8320)Gravatar Alexandre Alapetite
Safer password evaluation
2025-12-15Improve scrolling into filter in sidebar (#8307)Gravatar Inverle
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8281 todo: * [x] Include labels (prefix `t_`) too * [x] Keep sidebar scrollTop when using the nav menu * [ ] ~~Make this work in the reader view's sidebar too~~ for separate PR * [x] Prevent whole page from scrolling on `scrollIntoView()` call, just scroll in the sidebar (probably related: https://github.com/FreshRSS/FreshRSS/pull/8306#issuecomment-3647414618) This TODO will be done in a separate PR since it requires optimizing the sidebar toggle code. edit: it does work on Chrome already though, but only if `#stream` isn't too large / breaks randomly (Firefox is slower it seems)
2025-12-13Improve simplified chinese translation (#8313)Gravatar Zexin Yuan
* Improve simplified chinese translation * Update translation progress * Add yzx9 to contributors
2025-12-13New links in transitions and jump to next transition (#8294)Gravatar Alexandre Alapetite
Easier to explain graphically: <img width="408" height="266" alt="image" src="https://github.com/user-attachments/assets/0e3724a1-155b-4a87-89b3-cfe8a18cb100" /> The jump to next section ⏭ works when the sorting criterion is a date. Need https://github.com/FreshRSS/FreshRSS/pull/8293
2025-12-13Fix search encoding and quoting (#8311)Gravatar Alexandre Alapetite
Revised the encoding approach for searches: the HTML encoding is done just before its use for DB search. Fix also some cases with wrong quoting. Fix https://github.com/FreshRSS/FreshRSS/pull/8306#issuecomment-3643865439 Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8293
2025-12-12Translate English phrases to Chinese in gen.php (#8308)Gravatar X.
* Translate English phrases to Chinese in gen.php * make fix-all --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-12-11Fix htmlspecialchars for search (#8306)Gravatar Alexandre Alapetite
Regression from https://github.com/FreshRSS/FreshRSS/pull/8293
2025-12-10Add functions to modify a search expression (#8293)Gravatar Alexandre Alapetite
* Allows easier modifications of the search expression. * Add proper `__toString()` instead of just returning the raw input string. Allows in particular showing the result of the actual parsing of the raw input string in the UI. Needed for https://github.com/FreshRSS/FreshRSS/pull/8294
2025-12-08Fix saveHTML() scrambling encoding in newer libxml2 (#8296)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/pull/8279#issuecomment-3620674818
2025-12-08Minor refactor `<img class="icon">` -> `_i('...')` (#8297)Gravatar Inverle
2025-12-08Keep scroll state of page when closing the slider (#8295)Gravatar Inverle
2025-12-07Fix minor backslashes (#8292)Gravatar Alexandre Alapetite
2025-12-04Move unsafe autologin to an extension (#7958)Gravatar Inverle
Completes the following TODO https://github.com/FreshRSS/FreshRSS/issues/7923: https://github.com/FreshRSS/FreshRSS/blob/de624dc8ce63ec819c61216d9d44f828841c293e/app/Controllers/authController.php#L105 Extension PR: https://github.com/FreshRSS/Extensions/pull/364 https://github.com/FreshRSS/Extensions/tree/main/xExtension-UnsafeAutologin
2025-12-04Scaling of user statistics (#8277)Gravatar Alexandre Alapetite
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.
2025-12-04Implement button for toggling sidebar on all views (#8201)Gravatar Inverle
* Implement button for toggling sidebar on all views Closes https://github.com/FreshRSS/FreshRSS/issues/7673, https://github.com/FreshRSS/FreshRSS/issues/7100, https://github.com/FreshRSS/FreshRSS/issues/6119, https://github.com/FreshRSS/FreshRSS/issues/5338, https://github.com/FreshRSS/FreshRSS/issues/2792, https://github.com/FreshRSS/FreshRSS/issues/4224, https://github.com/FreshRSS/FreshRSS/issues/4136 https://github.com/user-attachments/assets/0629e465-6450-440e-b38b-430e9ff73ef9 Keyboard shortcut for doing the same: <kbd>t</kbd> * Partially fix other views Repartition page looks broken on Swage * Correction `close-aside` wasn't meant to be removed * i18n(conf): fr Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * make fix-all * Fix settings slider not opening in reader view * make readme --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-12-04Improve anonymous authentication logic (#8165)Gravatar Inverle
* Improve anonymous authentication logic * forgot to git add * Fix incorrect token check Because an empty parameter could be just passed if token for the user wasn't set: `&token=`
2025-12-04Fix HTML encoding in preview filters (alternative) (#8259)Gravatar Alexandre Alapetite
Alternative to https://github.com/FreshRSS/FreshRSS/pull/8222 Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8222 Co-authored-by: Inverle <inverle@proton.me>