FreshRSS 1.25.0
23 December 2024 at 18:19
In this release, the coding focus has been on moving to PHP 8.1+ and refactoring the integration of the SimplePie library (which was long due). At the same time, plenty of new features have been added. Enjoy! π
Breaking changes π₯:
- Require PHP 8.1+ (and improved support of PHP 8.4+)
- Require PostgreSQL 10+ or MariaDB 10.0.5+ or MySQL 8+
A few highlights β¨:
- Add support for regex search (regular expressions)
β οΈ Advanced regex syntax for searches depends on the database used (SQLite, PostgreSQL, MariaDB, MySQL),
but FreshRSS filter actions such as auto-mark-as-read and auto-favourite always use PHP PCRE2 syntax.
- Allow dynamic search operator in user queries, like
search:UserQueryA date:P1d
- New feed mode HTML+XPath+JSON dot notation (JSON in HTML)
- Better HTTP compliance with support for HTTP response headers
Cache-Control: max-age
andExpires
- New unicity policies and heuristic for feeds with bad article IDs (reduce the problem of duplicated articles)
- New option to automatically mark new articles as read if an identical title already exists in the same category
- Add ability to remove content from articles with CSS selectors, also when not using full content
- New condition option to selectively retrieve full content of articles
- New UI feature to download a userβ SQLite database or a database SQLite export (to be produced by CLI)
- Supported by Capy Reader (Android, open source)
- Many bug fixes, UI improvements, and a lot more
This release has been made by @aledeg, @Alkarex, @Art4, @ColonelMoutarde, @Frenzie, @math-GH, @ramazansancar
and newcomers @DevGrohl, @UserRoot-Luca, @aarnej, @andrey-utkin, @bhj, @christophehenry, @davralin, @drego85, @ev-gor, @killerog, @kwarraich, @minna-xD, @mtalexan, @oshaposhnyk, @patHyatt
Full changelog:
- Features
- Add support for regex search (regular expressions) #6706, #6926
β οΈ Advanced regex syntax for searches depends on the database used (SQLite, PostgreSQL, MariaDB, MySQL),
but FreshRSS filter actions such as auto-mark-as-read and auto-favourite always use PHP PCRE2 syntax.
- Allow dynamic search operator in user queries, like
search:UserQueryA date:P1d
#6851 - New feed mode HTML+XPath+JSON dot notation (JSON in HTML) #6888
- Better HTTP compliance with support for HTTP response headers
Cache-Control: max-age
andExpires
#6812, FreshRSS/simplepie#26 - Support custom HTTP request headers per feed (e.g. for
Authorization
) #6820 - New unicity policies and heuristic for feeds with bad article IDs #4487, #6900
- Fallback to GUID if article link is empty #7051
- New option to automatically mark new articles as read if an identical title already exists in the same category #6922
- New reading view option to display unread articles + favourites #7088
- And corresponding new filter state
&state=96
(no UI button yet)
- And corresponding new filter state
- Add ability to remove content from articles with CSS selectors, also when not using full content #6786, #6807
- Update
phpgt/cssxpath
library with improved CSS selectors #6618- Support for
:last-child
,:first-of-type
,:last-of-type
,^=
,|=
- Support for
- New condition option to selectively retrieve full content of articles
#33fd07f6f26310d4806077cc87bcdf9b8b940e35, #7082 - Allow parentheses in quoted search #7055
- New UI feature to download a userβ SQLite database or a database SQLite export (to be produced by CLI) #6931
- New button to delete errored feeds from a category #7030
- Better import of Inoreader user labels #6791
- Rebuild feed favicon on cache clear #6961
- New sharing with Bluesky #7116
- New sharing with Telegram #6838
- Add support for regex search (regular expressions) #6706, #6926
- Bug fixing
- Fix searches with a parenthesis before an operator like
("a b")
or(!c)
#6818 - Fix auto-read tags #6790
- Fix CSS selector for removing elements #7037, #7073,
#7081, #7091, #7083 - Fix redirection error after creating a new user #6995
- Fix favicon error in case of wrong URL #6899
- Use cURL to fetch extensions list (allows e.g. IPv6) #6767
- Fix XML encoding in cURL options #6821
- Fix initial UI scroll for some browsers #7059
- Fix menu for article tags in some cases #6990
- Fix share menu shortcut #6825
- Fix HTML regex pattern during install for compatibility with
v
mode #7009 - More robust creation of user data folder #7000
- Fix searches with a parenthesis before an operator like
- API
- Fix API for categories and labels containing a
+
#7033- Compatibility with FocusReader
- Supported by Capy Reader (Android, open source) capyreader#492
- Improved UI for API #7048
- Allow adding multiple feeds to a category via API #7017
- API support edit multiple tags #7060
- API return all categories also those without any feed #7020
- Fix API for categories and labels containing a
- Compatibility
- Deployment
- SimplePie
- Refactor our embedding of SimplePie #4374
- Our fork is maintained in its own repository.
- Remove HTTP
Referer
#6822, FreshRSS/simplepie#27- If some sites require it, add
Referer: https://example.net/
to the custom HTTP headers of the feed #6820
- If some sites require it, add
- Upstream fixes simplepie#878, simplepie#883
- Sync upstream #6840, #7067
- Refactor our embedding of SimplePie #4374
- Security
- Apache protect more non-public folders and files #6881, #6893, #7008
- Add privacy settings on extension list retrieval #4603, #7132
- Fix login in unsafe mode when using a password with special XML characters #6797
- Fix login in e.g. Brave browser by avoiding synchronous XHR #7023
- Fix invalid login message #7066
- Modernise
windows.open noopener
(to avoid flash of white page in dark mode) #7077, #7089
- UI
- Searchable My Labels field #6753
- Add subscription management button to reading view #6946
- New option for showing label menu in article row #6984
- Move to next unread label on mark as read #6886
- Improved article footer for small / mobile screens #7031
- Improve Web accessibility: fix
aria-hidden
bug, and use HTML5hidden
#6910 - Default styles for
<pre>
and<code>
#6770 - Refactor the sharing menu to use a
<template>
instead of duplicated HTML code #6751, #7113 - Refactor the label menu to use a
<template>
#6864 - Rework UI for authors #7054
- Avoid Unicode escape of authors in HTML UI #7056
- Improved subscription management page #6816
- Improve user query management page #7062
- Restore JavaScript form validation compatibility with Web browsers using older engines (SeaMonkey) #6777
- Reorganise some options #6920
- New shortcut
?
to show shortcut page and help #6981 - Use of consistent colours in statistics #7090
- Various UI and style improvements #6959
- Extensions
- New extension hook
simplepie_after_init
#7007
- New extension hook
- I18n
- Misc.
- Better cache name for JSON feeds #6768
- Fix inversed encoding logic in
Minz_Request::paramArray()
#6800 - Pass PHPStan
booleansInConditions
#6793 - Rename PHPStan configuration file to
phpstan.dist.neon
to allow custom configuration inphpstan.neon
#6892 - Code improvements #6800, #6809, #6983
- Makefile improvements #6913
- Fix PHPCS
ControlSignature
#6896 - Update PHPMailer #6968, #7046
- Code updates to PHP 8.1 syntax #6748
- Update dev dependencies #6780, #6964, , #6965,
#6966, #6967, #6970,
#7042, #7043, #7044,
#7045, #7047, #7052