FreshRSS 1.25.0
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-ageandExpires - 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-ageandExpires#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/cssxpathlibrary 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
vmode #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-hiddenbug, 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.neonto 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
Die Düsseldorfer haben den unabhängig vom Abstieg auslaufenden Vertrag mit dem Routinier um ein Jahr verlängert. Perspektivisch soll es für ihn in der U23 weitergehen. In unserem Blog halten wir Sie auf dem Laufenden.
