* new article banner
* optimize side nav bar: close button, width, background
* fix dropdown menu little arrows
* active buttons dropdown menu
---------
Co-authored-by: math-gh <>
* Add checkbox to not update feeds after import to avoid duplicate feeds when importing multiple files.
* Import without updating feeds, but now unconditionally
* Added hint to click "Update feeds" to all translations
* Update app/i18n/fr/feedback.php
* Fix i18n
---------
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
* Minor update dependencies
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/5691
Mostly dev dependencies; nothing that affects our runtime
* Update versions for GitHub Actions
* Fix newly found typos
* Fix exclude path
Apache logs were not available from the dev container.
Quick fix while waiting for a better integrated solution (e.g. coming in output window) - contributions welcome.
* Fix labels in anonymous mode
fix https://github.com/FreshRSS/FreshRSS/issues/4305
* Show all tags
* Revert "Show all tags"
This reverts commit 24dfba5017.
* Add message when no labels
* fixed no label style
* i18n de translation
* Fix in non-anomymous mode
* No class in anonymous mode
---------
Co-authored-by: maTh <1645099+math-GH@users.noreply.github.com>
Co-authored-by: math-gh <>
* SQL: Same updateCacheUnreads for all DBs
Use same SQL update request for MySQL / MariaDB than the one we already used for PostgreSQL / SQLite (i.e. using a sub-query).
Testing on a DB of 688MB with 270k entries, 199 feeds, 19 categories, using MySQL 8.1.0.
The new SQL update using a sub-query took in average 0.02s, while the old SQL update using a join took in average 0.05s. SQL cache was properly invalidated between each run. The new SQL request is thus about twice faster.
Another advantage of the SQL update using a sub-query is that it works identically in PostgreSQL, SQLite, MariaDB, MySQL, so we do need different versions anymore.
Contributes to https://github.com/FreshRSS/FreshRSS/issues/5008#issuecomment-1709755370
* Force USE INDEX
* Use same SQL methods also for markReadEntries, markReadCat
fix https://github.com/FreshRSS/FreshRSS/issues/5632
In the SQL search, parentheses should not be escaped. Escaped parenthesis in the SQL search were tolerated by PostgreSQL but not by SQLite.
* Fixed some typos in the Hungarian translation
* Fixed a misspelled word in the Hungarian translation
---------
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
* Fix hash of articles with loadCompleteContent
The detection of modified articles was wrong for feeds using loadCompleteContent. Indeed, the hash is supposed to computed on the content provided by the server of the RSS feed, excluding further modifications.
Furthermore, read hash from database instead of recomputing it all the time.
Slightly related to https://github.com/FreshRSS/FreshRSS/pull/5574
* Explicit SQL alias
* PHPDocs
* Add Persian/فارسی Language
* Fix i18n
* make fix-all
And several manual fixes
* Exclude Persian from English typo check
* Update CREDITS.md
I added myself to the list
* Credits alphabetic order
---------
Co-authored-by: AmirHossein <marjani@outlook.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Partial revert of https://github.com/FreshRSS/FreshRSS/pull/5505
We should not apply the auto mark as read rule based on existing titles for updated articles, because the match would most of the time be on that same article's title.
Fix:
> Deprecated: DOMElement::setAttributeNS(): Passing null to parameter #3 ($value) of type string is deprecated in /var/www/FreshRSS/lib/marienfressinaud/lib_opml/src/LibOpml/LibOpml.php on line 680
Improvement of https://github.com/FreshRSS/FreshRSS/pull/4422
The main problem was due to `touch()` not automatically clearing the file status cache, and requiring a call to `clearstatcache()`. Example:
```
php > touch('/tmp/touch.txt');
php > echo date('c', filemtime('/tmp/touch.txt'));
2023-08-03T17:27:43+02:00
php > touch('/tmp/touch.txt');
php > echo date('c', filemtime('/tmp/touch.txt'));
2023-08-03T17:27:43+02:00
php > clearstatcache(true, '/tmp/touch.txt');
php > echo date('c', filemtime('/tmp/touch.txt'));
2023-08-03T17:28:21+02:00
```