Commit Graph

810 Commits

Author SHA1 Message Date
Alexandre Alapetite
2d17c020b6 PHPStan 1.11 + minor update dev dependencies (#6459)
* PHPStan 1.11 + minor update dev dependencies
https://github.com/phpstan/phpstan/releases/tag/1.11.0

* Comment style
2024-05-15 08:57:58 +02:00
Alexandre Alapetite
4f57a46075 Auto-update 5038 (#6279)
* Auto-update 5038
https://github.com/FreshRSS/FreshRSS/pull/5038

* PostgreSQL

* Draft for MySQL

* More draft MySQL

* Finalise

* A bit more robust
2024-05-13 12:44:35 +02:00
Alexandre Alapetite
e0cc121c7a Fix SQLite imports produced before FreshRSS 1.20.0 (#6450)
fix https://github.com/FreshRSS/FreshRSS/issues/6088
2024-05-12 17:10:43 +02:00
Alexandre Alapetite
ea2bcf3a5d Fix individual OMPL feed export (#6435)
fix https://github.com/FreshRSS/FreshRSS/issues/6433
2024-05-07 23:04:17 +02:00
Alexandre Alapetite
fd7157e40c CSS selector trim (#6428)
fix https://github.com/FreshRSS/FreshRSS/pull/6426#issuecomment-2091159868
2024-05-02 20:36:08 +02:00
Alexandre Alapetite
44625eed25 Fix CSS selector encoding (#6426)
fix https://github.com/FreshRSS/FreshRSS/issues/6229
fix https://github.com/FreshRSS/FreshRSS/issues/6266#issuecomment-2090432818
2024-05-02 19:49:18 +02:00
Alexandre Alapetite
617f9a7fa6 Fix user query filter display (#6421)
* Fix user query filter display
fix https://github.com/FreshRSS/FreshRSS/issues/6360

* Fix tests
2024-05-02 10:28:07 +02:00
Alexandre Alapetite
329fd4bcf6 CLI database backup and restore (#6387)
* CLI database backup and restore
Can also be used to migrate from one database to another (e.g. MySQL to PostgreSQL) or to ease upgrade to a major PostgreSQL version (e.g. 15 to 16).

* +x

* Fix some cases

* Update to docker-compose-v2

* More documentation
2024-04-30 08:31:13 +02:00
Alexandre Alapetite
5ca0b893b9 Fix updated entry filters (#6334)
fix https://github.com/FreshRSS/FreshRSS/issues/6331
2024-04-26 13:29:37 +02:00
maTh
154a36700c Refactoring: Rename dotpath into dotnotation (#6369)
* KIND_JSON_DOTPATH -> KIND_JSON_DOTNOTATION

* TYPE_JSON_DOTPATH => TYPE_JSON_DOTNOTATION

* json_dotpath => json_dotnotation

* dotPathsForStandardJsonFeed => dotNotationForStandardJsonFeed

* TYPE_JSON_DOTNOTATION = 'JSON+DotPath' => 'JSON+DotNotation'

* documentation: OPML.md

* convertJsonToRss()

* $dotpaths => $dotnotations

* FreshRSS_Feed_Exception

* comment

* Compatibility TYPE_JSON_DOTPATH

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2024-04-25 08:28:42 +02:00
Alexandre Alapetite
5e66adcc51 Remove noise parameters in query URL (#6371)
* Remove noise parameters in query URL
Remove undeeded `name` and `rid` parameters from saved user query

* Fix logic
2024-04-23 10:59:09 +02:00
Alexandre Alapetite
90fbb524ce Windows: release SQLite (#6285)
* Windows: release SQLite
fix https://github.com/FreshRSS/FreshRSS/issues/6275

* Do not use sharedPdo for deleting user

* Case of same user

* Help PHPStan
2024-04-21 16:25:37 +02:00
maTh
3261b7bafb i18n improved: dotted path -> dot-notation (#6317)
* dotted path -> dot-notation

* dot-notation -> dot notation

* rename json_dotpath => json_dotnotation

* Update app/i18n/fr/sub.php

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

* Update app/i18n/fr/sub.php

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

* Update app/i18n/fr/sub.php

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

* Update app/i18n/nl/sub.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update app/i18n/nl/sub.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update app/i18n/nl/sub.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update app/i18n/nl/sub.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Rename corresponding class

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2024-04-18 14:00:17 +02:00
Alexandre Alapetite
350edf398c PHP 8.3 #[\Override] (#6273)
* PHP 8.3 #[\Override]
https://php.watch/versions/8.3/override-attr

With PHPStan `checkMissingOverrideMethodAttribute` https://phpstan.org/config-reference#checkmissingoverridemethodattribute

And modified the call to phpstan-next on the model of https://github.com/FreshRSS/Extensions/pull/228 (more robust than the find method, which gave some strange errors)

* Update extension example accordingly
2024-04-10 15:33:43 +02:00
Alexandre Alapetite
283341e75e Allow multiple authors on enclosures (#6272)
fix https://github.com/FreshRSS/FreshRSS/issues/5066
2024-04-08 11:10:10 +02:00
Alexandre Alapetite
c052149e5a Avoid duplicates in Dynamic OPML (#6264)
Avoid duplicate feeds if the dynamic OPML contains the same feed multiple times
2024-04-07 21:45:40 +02:00
Alexandre Alapetite
cf29ca19c0 Fix crash during update of existing install (#6205)
fix https://github.com/FreshRSS/FreshRSS/issues/6204
Mess due to https://github.com/FreshRSS/FreshRSS/pull/5511
2024-03-14 22:44:51 +01:00
Alexandre Alapetite
d0072b9fb7 Refactor some cURL options and use CURLOPT_USERPWD (#6177)
* Refactor some cURL options and use CURLOPT_USERPWD
fix https://github.com/FreshRSS/FreshRSS/issues/6176

* Fixes
2024-03-10 23:04:17 +01:00
Alexandre Alapetite
5aeab896e9 Fix OPML export regression and add token in RSS link (#6160)
* OPML regression due to *shared user queries* (the XPath attributes were not exported anymore) https://github.com/FreshRSS/FreshRSS/pull/6052
* Add master token to HTML Meta RSS link and OPML link https://github.com/FreshRSS/FreshRSS/discussions/6159#discussioncomment-8678399
2024-03-05 14:26:52 +01:00
Alexandre Alapetite
96484d22a1 Minz remove use of deprecated variable (#6132)
and related improvements to clarify inheritance
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/6130
2024-03-01 10:08:05 +01:00
Alexandre Alapetite
bdf899164b System option for number of feeds to refresh in parallel (#6124)
* System option for number of feeds to refresh in parallel
fix https://github.com/FreshRSS/FreshRSS/issues/6123

* Forgot refreshDynamicOpml
2024-02-26 09:01:49 +01:00
Alexandre Alapetite
bfd277065c Improve feed refresh (#6117)
* Improve feed refresh
Better account for some edge cases for cron and automatic labels
fix https://github.com/FreshRSS/FreshRSS/issues/6089
fix https://github.com/FreshRSS/FreshRSS/issues/6109

* Apply labels also to new entries already marked as read

* Add case most relevant for cron
2024-02-26 09:01:25 +01:00
Alexandre Alapetite
39cc1c11ec New feature: shareable user query (#6052)
* New feature: shareable user query
Share the output of a user query by RSS / HTML / OPML with other people through unique URLs.
Replaces the global admin token, which was the only option (but unsafe) to share RSS outputs with other people.
Also add a new HTML output for people without an RSS reader.

fix https://github.com/FreshRSS/FreshRSS/issues/3066#issuecomment-648977890
fix https://github.com/FreshRSS/FreshRSS/issues/3178#issuecomment-769435504

* Remove unused method

* Fix token saving

* Implement HTML view

* Update i18n for master token

* Revert i18n get_favorite

* Fix missing i18n for user queries from before this PR

* Remove irrelevant tests

* Add link to RSS version

* Fix getGet

* Fix getState

* Fix getSearch

* Alternative getSearch

* Default getOrder

* Explicit default state

* Fix test

* Add OPML sharing

* Remove many redundant SQL queries from original implementation of user queries

* Fix article tags

* Use default user settings

* Prepare public search

* Fixes

* Allow user search on article tags

* Implement user search

* Revert filter bug

* Revert wrong SQL left outer join change

* Implement checkboxes

* Safe check of OPML

* Fix label

* Remove RSS button to favour new sharing method
That sharing button was using a global admin token

* First version of HTTP 304

* Disallow some recusrivity
fix https://github.com/FreshRSS/FreshRSS/issues/6086

* Draft of nav

* Minor httpConditional

* Add support for offset for pagination

* Fix offset pagination

* Fix explicit order ASC

* Add documentation

* Help links i18n

* Note about deprecated master token

* Typo

* Doc about format
2024-02-26 09:01:03 +01:00
Alexandre Alapetite
25166c218b RSS thumbnails (#5972)
* Added addtional media:content for thumbnails

* Fix whitespace

* More attributes for enclosures

* Fix variable

* Fix variable

* No duplicates

---------

Co-authored-by: root <root@ha-server.lan>
2024-02-26 09:00:35 +01:00
Alexandre Alapetite
84d88d4b5d Improve TTL+muted logic (#6115)
Fix https://github.com/FreshRSS/FreshRSS/issues/6111
2024-02-21 09:47:05 +01:00
Alexandre Alapetite
3eb3574b13 No warning for muted feeds (#6114)
* No warning for muted feeds
fix https://github.com/FreshRSS/FreshRSS/issues/6113

* Revert subscription
2024-02-21 09:46:47 +01:00
Alexandre Alapetite
6228f959f7 Fix default category name (#6073)
fix https://github.com/FreshRSS/FreshRSS/issues/6071
2024-01-28 22:16:24 +01:00
Alexandre Alapetite
4a0e8a7058 Native array return type forgotten (#6046)
Native type forgotten from
https://github.com/FreshRSS/FreshRSS/pull/5269
https://github.com/FreshRSS/FreshRSS/pull/5213
2024-01-18 10:12:53 +01:00
Alexandre Alapetite
314077a457 PHPStan prepare exceptions (#6037)
Take advantage of
https://phpstan.org/blog/bring-your-exceptions-under-control

Minimum changes to pass `tooWideThrowType` and `implicitThrows`.

Revert some mistakes from:
https://github.com/FreshRSS/FreshRSS/pull/5504
Preparation needed before new PRs of the same type:
https://github.com/FreshRSS/FreshRSS/pull/5962

Fix several wrong PHPDocs and catches:

> Method ... has ...Exception in PHPDoc @throws tag but it's not thrown.

> Dead catch - ...Exception is never thrown in the try block.
2024-01-15 10:36:30 +01:00
eta-orionis
9c97d8ca72 JSONFeeds, JSON scraping, and POST requests for feeds (#5662)
* allow POST requests for feeds

* added json dotpath and jsonfeed subscriptions. No translation strings yet

* debug and fix jsonfeed parser

* bugfix params saved when editing feed

* added translations for JSON features

* Update docs for web scraping

* make fix-all
and revert unrelated changes, plus a few manual fixes, but there are still several type errors

* Fix some i18n

* refactor json parsing for both feed types

* cleanup unnecessary comment

* refactored generation of SimplePie for XPath and JSON feeds

* Fix merge error

* Update to newer FreshRSS code

* A bit of refactoring

* doc, whitespace

* JSON Feed is in two words

* Add support for array syntax

* Whitespace

* Add OPML export/import

* Work on i18n

* Accept application/feed+json

* Rework POST

* Fix update

* OPML for cURL options

* Fix types

* Fix Typos

---------

Co-authored-by: Erion Elmasllari <elmasllari@factorsixty.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2024-01-10 08:23:45 +01:00
Alexandre Alapetite
70e71b8364 Auto-label (#5954)
Add labels automatically to incoming articles
fix https://github.com/FreshRSS/FreshRSS/issues/2380
fix https://github.com/FreshRSS/FreshRSS/issues/2420
fix https://github.com/FreshRSS/FreshRSS/issues/3279
fix https://github.com/FreshRSS/FreshRSS/discussions/4947
fix https://github.com/FreshRSS/FreshRSS/issues/5728
fix https://github.com/FreshRSS/FreshRSS/issues/5599
2024-01-03 11:23:06 +01:00
Alexandre Alapetite
1e5f5078ed Sanitize parsing list of extensions (#6016)
fix https://github.com/FreshRSS/FreshRSS/issues/6015
2024-01-03 10:26:09 +01:00
Alexandre Alapetite
d65f77c081 More robust assignment of categories to feeds (#5986)
Several minor cases, none of which should really be necessary
Might help:
https://github.com/FreshRSS/FreshRSS/issues/5981
https://github.com/FreshRSS/FreshRSS/issues/5982
2023-12-27 15:18:36 +01:00
Alexandre Alapetite
c7a3281a73 Fix notifications (#5959)
The notification about wrong login was not working. Noticed while working on https://github.com/FreshRSS/FreshRSS/pull/5955
This was due to timing of when the notification is retrieved.
Simplified code to make the logic easier and more robust.
2023-12-22 11:03:32 +01:00
Alexandre Alapetite
a80a5f48a1 Pass PHPStan level 8 (#5946)
* Pass PHPStan level 8
And prepare for PHPStan level 9 https://phpstan.org/user-guide/rule-levels

* Revert wrong replace in comment

* Fix PHPStan level 8

* Update PHPStan and other dev dependencies

* Remove obsolete comment

* noVariableVariables and towards bleedingEdge
https://github.com/phpstan/phpstan-strict-rules
https://phpstan.org/blog/what-is-bleeding-edge

* More bleedingEdge

* A bit more PHPStan level 9

* More PHPStan level 9

* Prepare for booleansInConditions
Ignore int and null

* Revert wrong line

* More fixes

* Fix keep_max_n_unread

* Stricter attribute functions

* Stricter callHooks and more PHPStan level 9

* More typing

* A tiny more
2023-12-18 17:59:16 +01:00
Alexandre Alapetite
6bb45a8726 Add filter actions (auto mark read) at category and global levels (#5942)
* Add filter actions (auto mark read) at category level
fix https://github.com/FreshRSS/FreshRSS/issues/3497

* Add filter actions (auto mark read) at global level
fix https://github.com/FreshRSS/FreshRSS/issues/2788

* Fix feed category ID

* Minor comment
2023-12-15 23:04:29 +01:00
Alexandre Alapetite
a3ed826913 Remove variable default_category (#5945)
Not really used, and causing bug in https://github.com/FreshRSS/FreshRSS/pull/5942

```
Fatal error: Uncaught Error: Typed property FreshRSS_View::$default_category must not be accessed before initialization in /var/www/FreshRSS/app/views/helpers/category/update.phtml:218 Stack trace: #0 /var/www/FreshRSS/lib/Minz/View.php(93): include() #1 /var/www/FreshRSS/lib/Minz/View.php(143): Minz_View->includeFile() #2 /var/www/FreshRSS/app/views/category/update.phtml(9): Minz_View->renderHelper() #3 /var/www/FreshRSS/lib/Minz/View.php(93): include('...') #4 /var/www/FreshRSS/lib/Minz/View.php(115): Minz_View->includeFile() #5 /var/www/FreshRSS/lib/Minz/View.php(75): Minz_View->render() #6 /var/www/FreshRSS/lib/Minz/Dispatcher.php(59): Minz_View->build() #7 /var/www/FreshRSS/lib/Minz/FrontController.php(61): Minz_Dispatcher->run() #8 /var/www/FreshRSS/p/i/index.php(59): Minz_FrontController->run() #9 {main} thrown in /var/www/FreshRSS/app/views/helpers/category/update.phtml on line 218
```
2023-12-14 22:11:04 +01:00
Alexandre Alapetite
b46ea88c35 Fix archiving (#5935)
fix https://github.com/FreshRSS/FreshRSS/issues/5934
Regression from https://github.com/FreshRSS/FreshRSS/pull/5830
2023-12-10 12:41:24 +01:00
Alexandre Alapetite
803fa8fdb5 Fix PHP7 susbtr (#5929)
fix https://github.com/FreshRSS/FreshRSS/issues/5928
`susbstr` might return false in PHP7
Regression from https://github.com/FreshRSS/FreshRSS/pull/5830
2023-12-06 11:58:49 +01:00
Alexandre Alapetite
8bff77c45e Fix export (#5927)
Regression from https://github.com/FreshRSS/FreshRSS/pull/5830
2023-12-06 08:51:42 +01:00
Alexandre Alapetite
f0d4f2762d Rework keepmax (#5905)
* Rework keepmax
fix https://github.com/FreshRSS/FreshRSS/issues/5702
fix https://github.com/FreshRSS/FreshRSS/issues/5870

* More WIP

* Minor progress

* Progress

* Beta

* Improved debug message

* Revert noCommit

* Fix variable reset

* Remove debug syslogs
2023-12-03 19:52:02 +01:00
Alexandre Alapetite
76cbfadcdf Fix types for extensions (#5901)
* Fix types for extensions
To accompany https://github.com/FreshRSS/Extensions/pull/185

* Avoid bug redeclared function
2023-11-24 14:50:03 +01:00
Alexandre Alapetite
b65ea97901 Fix PHP 7 compatibility strict_types (#5893)
* Fix PHP 7 compatibility
https://github.com/FreshRSS/FreshRSS/discussions/5892

* Multiple PHP 7 fixes

* PHPStan
2023-11-18 23:21:20 +01:00
Luc SANCHEZ
30c7a61a9b Use strict_types (#5830)
* Little's optimisations and booleans in conditions

* Apply strict type

* Apply strict type

* Apply strict type

* Fix multiple bugs with PHP 8.2 and 8.3

* Many declares missing, more errors fixed

* Apply strict type

* Another approach

* Stronger typing for Minz_Session

* Fix case of SQLite

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-11-16 22:43:00 +01:00
maTh
0504fc6766 Added: Display option for "My labels" (#5884)
* configs

* Update entry_bottom.phtml

* i18n strings

* fix phpstand found error

* reuse existing i18n string

---------

Co-authored-by: math-gh <>
2023-11-16 13:18:33 +01:00
Alexandre Alapetite
9eba8726ac API fix add feed with title (#5868)
fix https://github.com/FreshRSS/FreshRSS/issues/5866
2023-11-14 12:58:57 +01:00
FireFingers21
b1d568697a Fix newlines not always displaying properly in description (#5859)
* Fix newlines not displaying properly

* Add name to credits

* Restore enclosure-description class

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

* Update app/Models/Entry.php

XHTML

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-11-13 20:20:14 +01:00
Alexandre Alapetite
d918ab8bc8 Fix updateTagName (#5842)
fix https://github.com/FreshRSS/FreshRSS/issues/5840
Regression from https://github.com/FreshRSS/FreshRSS/pull/5328
2023-11-09 23:59:43 +01:00
Alexandre Alapetite
44a7c54a5a Update WebSub documentation a bit (#5829)
* Update WebSub documentation a bit

* Marien prefers not to promote his hub too much :-)
2023-11-08 20:24:24 +01:00
Alexandre Alapetite
348028a290 New feature important feeds (#5782)
* New feature important feeds

* Fix PHPStan

* Initial style for important feeds + keep unread

* Change UI order

* Count important unread

* Never mark as read important feeds during scroll

* Fix i18n conf.iew.normal regression

* Fix reader view

* More fix reader view

* Create important.svg

* Fix title

* Fix counter

* Account for important during  mark-all-as-read

* Fix underline colour

* 📌

* Changelog

---------

Co-authored-by: math-gh <>
Co-authored-by: maTh <1645099+math-GH@users.noreply.github.com>
2023-11-08 20:23:54 +01:00