Commit Graph

2810 Commits

Author SHA1 Message Date
Alexandre Alapetite
0beabc333f Sensitive base-url (#5657)
https://github.com/FreshRSS/FreshRSS/pull/5656#issuecomment-1719802075
Make read-only while waiting for a better approach (which can wait till release 1.23)
2023-09-15 08:20:38 +02:00
Alexandre Alapetite
db53d2655b Allow string in XPath tags (#5653)
fix https://github.com/FreshRSS/FreshRSS/issues/5651
2023-09-14 20:24:22 +02:00
Alexandre Alapetite
3617360883 Fix MariaDB size calculation (#5655)
MariaDB requires an `ANALYZE TABLE` to refresh the size information in the metadata.
At the same time, include `DATA_FREE` in the calculation.
https://mariadb.com/kb/en/information-schema-tables-table/
2023-09-14 20:23:56 +02:00
Alexandre Alapetite
bc5666cd27 Fix labels in anonymous mode (#5650)
* 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 <>
2023-09-14 20:23:33 +02:00
Sam Cohen
52d87c3eaa Allow configuration of Base URL via website (#5656)
* Allow configuration of Base URL via website

* Fix alphabetization of CREDITS

* Apply suggestions from code review

* Add Automatic recommendation

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-09-13 22:58:10 +02:00
Alexandre Alapetite
0bf33abac8 SQL: Same updateCacheUnreads for all DBs (#5648)
* 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
2023-09-12 13:44:17 +02:00
Alexandre Alapetite
f050a94b48 SQL: clean old auto-updates (#5649)
Should help with some DB lock issues.

Complete https://github.com/FreshRSS/FreshRSS/pull/3558 after https://github.com/FreshRSS/FreshRSS/pull/5625 already cherry-picked from it.

* Removed auto-update of MySQL GUID case sensitivity
https://github.com/FreshRSS/FreshRSS/pull/2078
  * Contributed to a DB lock in https://github.com/FreshRSS/FreshRSS/issues/5008

Also removed the following non-problematic auto-updates, simply because they were older than the above ones
* Auto-create custom labels (1.12.0) https://github.com/FreshRSS/FreshRSS/pull/2027
* Auto-add JSON column for feeds (1.11.0) https://github.com/FreshRSS/FreshRSS/pull/1838
* Auto-create temporary tables (1.7.0) https://github.com/FreshRSS/FreshRSS/pull/1470
2023-09-12 10:43:14 +02:00
maTh
f5aba79d14 Update page css class changed (#5647)
Co-authored-by: math-gh <>
2023-09-10 16:07:14 +02:00
maTh
61a2828820 i18n: shortened text strings (#5636)
* i18n

* fix

---------

Co-authored-by: math-gh <>
2023-09-10 15:27:13 +02:00
maTh
9beba6337e i18n: German translation of admin.php (new update page) (#5640)
Co-authored-by: math-gh <>
2023-09-06 23:12:20 +02:00
Alexandre Alapetite
98559cebc3 Remove obsolete TTL migration code (#5625)
Remove `updateTTL` function used to help migration to 5+ year-old FreshRSS 1.10 and FreshRSS 0.7.3 https://github.com/FreshRSS/FreshRSS/pull/1750
This function contributed to locking the database https://github.com/FreshRSS/FreshRSS/pull/5574
Subset of https://github.com/FreshRSS/FreshRSS/pull/3558
2023-09-06 21:41:17 +02:00
Alexandre Alapetite
2e1d45a88d Fix parenthesis escaping bug (#5633)
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.
2023-09-05 17:33:38 +02:00
Alexandre Alapetite
1c7c1016f4 Fix JSON export/import (#5626)
* Fix import with empty content
fix https://github.com/FreshRSS/FreshRSS/issues/5622
Cherry picks on https://github.com/FreshRSS/FreshRSS/pull/5584

* Fix export of tags / labels
Article-defined tags were wrongly exported as user-defined labels.

* Fix export of tags / labels
Article-defined tags were wrongly exported as user-defined labels.

* Fix bug with many labels

* Better typing

* Comments
2023-09-04 10:09:37 +02:00
Miguel Sánchez
06b613a50d Fixed Spanish translation typo (#5609) 2023-08-24 19:54:28 +02:00
András Marczinkó
93fb55c9f8 Fixed some typos in the Hungarian translation (#5593)
* Fixed some typos in the Hungarian translation

* Fixed a misspelled word in the Hungarian translation

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-08-22 00:40:45 +02:00
FromTheMoon
6749adc050 Add Hungarian language (#5589)
* Add Hungarian language

* Fixed missing lines in Hungarian translation
2023-08-15 11:18:47 +02:00
Alexandre Alapetite
d165ed1fb6 Fix hash of articles with loadCompleteContent (#5576)
* 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
2023-08-13 15:11:22 +02:00
berumuron
54592fa1fd fix: Fix the "Show all articles" option (#5580) 2023-08-10 17:02:47 +02:00
berumuron
1e0e4f54a5 fix: Allow to access logs when update is disabled (#5577) 2023-08-10 16:43:15 +02:00
berumuron
eb57f490db tec: Make FreshRSS_Share::register public (#5578)
I don't know why the visibility of this method has changed, but it's
essential to register custom shares as extensions.

Reference: a13a20de20
2023-08-10 16:41:16 +02:00
AmirHossein
6d8a5429cb Add Persian/فارسی Language (#5571)
* 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>
2023-08-07 10:09:31 +02:00
Alexandre Alapetite
6ee73b5fca Revert auto mark as read same titles for existing articles (#5561)
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.
2023-08-03 21:57:25 +02:00
Alexandre Alapetite
c49c29a561 OPML export fix empty attributes (#5559)
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
2023-08-03 21:57:00 +02:00
Alexandre Alapetite
4039f6c9a4 Fix cache refresh (#5562)
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
```
2023-08-03 21:56:35 +02:00
Alexandre Alapetite
e7689459f2 Rework trusted proxies (#5549)
* Rework trusted proxies
Fix https://github.com/FreshRSS/FreshRSS/issues/5502
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/3226

New environment variable `TRUSTED_PROXY`: set to 0 to disable, or to a list of trusted IP ranges compatible with https://httpd.apache.org/docs/current/mod/mod_remoteip.html#remoteiptrustedproxy

New internal environment variable `CONN_REMOTE_ADDR` to remember the true IP address of the connection (e.g. last proxy), even when using mod_remoteip.

Current working setups should not observe any significant change.

* Minor whitespace

* Safer trusted sources during install
Rework of https://github.com/FreshRSS/FreshRSS/pull/5358
https://github.com/FreshRSS/FreshRSS/issues/5357

* Minor readme
2023-07-30 12:59:18 +02:00
Alexandre Alapetite
1f05c92376 Fix enclosures in RSS output (#5540)
* Fix enclosures in RSS output
fix https://github.com/FreshRSS/FreshRSS/issues/5539

* another iterable

* Forgotten iterable
2023-07-19 23:40:28 +02:00
Alexandre Alapetite
db5d458cb2 Fix get and order when saving user query (#5515)
fix https://github.com/FreshRSS/FreshRSS/issues/5514
2023-07-10 08:04:26 +02:00
Luc SANCHEZ
f8f163d054 Chore/processing of depreciations and updating code to php72 minimum (#5504)
* processing of depreciations and updating of code to php7.2 minimum

* Autoformat many strange array indenting
And revert a few unwanted changes

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-07-07 22:36:27 +02:00
Alexandre Alapetite
1db606bc1b New extension hook entry_auto_read (#5505)
* New extension hook entry_auto_read
For extensions to be notified of articles being automatically marked as read for various reasons

* Documentation + entry_auto_unread
2023-07-05 11:00:26 +02:00
maTh
fca8ae4207 added: new sharing service: Omnivore (#5477)
* add Omnivore

* fix i18n

* Update app/i18n/en/gen.php

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

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-06-20 09:06:23 +02:00
Alexandre Alapetite
de59076ae1 Remove unneeded quotes in warning (#5480)
* Remove unneeded quotes in warning
fix https://github.com/FreshRSS/FreshRSS/issues/5479

* Minor whitespace
2023-06-20 09:05:55 +02:00
Alexandre Alapetite
723f7577d0 Refactor lastSeen and markReadAsGone (#5470)
* Refactor lastSeen and markReadAsGone
Make the logic a bit more robust and explicit

* Remove forgotten SQL param

* Add test inTransaction

* More robust transaction

* Add a debug log

* Add max timestamp to markAsReadUponGone

* Reduce number of debug lines

* typing

* Better detection of when feed is empty

* More explicit case for push
2023-06-16 16:11:16 +02:00
Alexandre Alapetite
228d7adfdb Fix slider views (#5469)
* Fix slider titles
And fix full-page view of category configuration.
FIx https://github.com/FreshRSS/FreshRSS/pull/5449#issuecomment-1590021947

* Fix user queries and user management
Implement https://github.com/FreshRSS/FreshRSS/pull/5469#issuecomment-1591957935
2023-06-15 12:47:47 +02:00
Alexandre Alapetite
3fe68a3285 Allow deep link to extension configuration (#5449)
* Allow deep link to extension configuration
Full screen

* Support slider

* Add aside_configure
Fix https://github.com/FreshRSS/FreshRSS/pull/5449#issuecomment-1588089769
2023-06-13 22:40:28 +02:00
maTh
3d9e0c47ec Improved: update page (#5420)
* prependTitle()

* do not need the "damn" in the alert

* update page layout improved

* release channel

* i18n labels

* add log messages while updating

* Delete updatee.php

* Update updateController.php

* Update updateController.php

* Update updateController.php

* Update updateController.php

* add getCurrentGitBranch()

* Update updateController.php

* state2 buttons

* i18n

* loading

* Update feedback.php

* Update feedback.php

* Update feedback.php

* Update extra.js

* Apply suggestions from code review

Co-authored-by: Luc SANCHEZ <4697568+ColonelMoutarde@users.noreply.github.com>

* Update updateController.php

* Update terminology

* update button is now armed

---------

Co-authored-by: Luc SANCHEZ <4697568+ColonelMoutarde@users.noreply.github.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-06-13 22:39:33 +02:00
maTh
67130bca3a Fix: conf.php (German i18n) (#5468) 2023-06-13 22:36:54 +02:00
Aaron Schif
58b254f9cb Add OpenID Connect (#5351)
* Add OIDC

* Update documentation.

* Update apache conf adding IfModule

* Use IfDefine for OIDC in apache conf

* Fix non-oidc support

* Fix typing

* Use IfDefine to enable OIDC

* Add OIDC support to all dockerfiles

* Re add apache Require option

* Fixes and documentation

* A few more fixes

* A bit more doc

* Change type of environment variable

* Update readme

* Correct apache config for OIDC support.

* Fix README formatting

* Update oidc control path

* Fix oidc endpoint being cached

* A bit more review

* Simplify ExpiresActive

* Add session refresh and improve caching

* Allow more different setups

* A bit more documentation

* A bit more readme

---------

Co-authored-by: Aaron Schif <aschif@netdevgroup.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: maTh <math-home@web.de>
2023-06-12 10:22:46 +02:00
yubiuser
15d143989b Clarify that maximum number to keep is per feed (#5458)
* Clarify that maximum number to keep is per feed

Signed-off-by: Christian König <ckoenig@posteo.de>

* Append //DIRTY

Signed-off-by: Christian König <ckoenig@posteo.de>

* make fix-all

* Revert wrong whitespace

* Amend Credits.md

Signed-off-by: Christian König <ckoenig@posteo.de>

---------

Signed-off-by: Christian König <ckoenig@posteo.de>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-06-12 10:22:14 +02:00
Luc SANCHEZ
bab353ce61 phpstan-8 for category class (#5434)
* phpstan-8 for category class

* Another approach to nullable
https://github.com/FreshRSS/FreshRSS/pull/5434#discussion_r1210776699

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-06-08 16:00:30 +02:00
LLeana
ca0c1edbe3 Pull request of spanish translation (#5436)
* Update sub.php

Update spanish translation

* Update conf.php

Update Spanish translation

* Update gen.php

Update spanish translation

* Update index.php

Update spanish translation

* Update admin.php

update spanish translation

* Fix ignore

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-06-01 22:44:19 +02:00
Luc SANCHEZ
1d2bb50f2e phpstan-9 for Share.php (#5431)
* phpstan 9 for Search.php
phpstan 9 for Share.php

* phpstan-9 for Search.php

* Better consistency for search results

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-05-30 23:03:14 +02:00
Alexandre Alapetite
adb5db9d97 Forgotten debug line
https://github.com/FreshRSS/FreshRSS/pull/5404
2023-05-30 22:37:52 +02:00
acbgbca
df865d7900 Linkding share now passes title #5432 (#5433) 2023-05-30 21:32:45 +02:00
LleanaRuv
1c47483da7 Update of Spanish translation (#5408)
* Update admin.php

Update Spanish

* Update conf.php

Spanish update

* Fix

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-05-28 18:07:04 +02:00
Alexandre Alapetite
d554d0f673 Avoid falsy guid (#5412)
Whitespace strings, empty strings, 0 are all problematic when working with GUIDs. so avoid them.
2023-05-22 10:01:43 +02:00
Alexandre Alapetite
3bdb897610 Remove debug line
Forgotten from https://github.com/FreshRSS/FreshRSS/pull/5404
2023-05-16 12:11:11 +02:00
Alexandre Alapetite
ea503975d5 Fix again updateLastSeenUnchanged (#5404)
* Fix again updateLastSeenUnchanged
https://github.com/FreshRSS/FreshRSS/pull/5382 was not good enough to fix markAsReadUponGone and introduced a regression in `entry.lastSeen`.
New approach.
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/5315

* Minor change of mind

* Fix handling of lastSeen
entry.lastSeen was not always correctly initialised, and sometimes overriden
2023-05-16 12:09:39 +02:00
Alexandre Alapetite
2038d50110 PHPStan Level 7 for Minz_Request, FreshRSS_Feed, Minz_Error (#5400)
* PHPStan Level 7 for Minz_Request

* PHPStan Level 7 for FreshRSS_Feed

* PHPStan Level 7 for Minz_Error
2023-05-15 19:26:48 +02:00
Alexandre Alapetite
c8d2ead763 Fix logs pagination (#5403)
* Fix logs pagination
Regression from https://github.com/FreshRSS/FreshRSS/pull/5269

* Add better default
2023-05-15 15:21:17 +02:00
maTh
cd004cb978 move darkMode_auto from body to html root (#5397) 2023-05-14 19:24:12 +02:00