aboutsummaryrefslogtreecommitdiff
path: root/app/Models
AgeCommit message (Collapse)Author
2023-04-05PHPStan level 6 for more files (#5264)Gravatar Alexandre Alapetite
7 more files passing (see phpstan-next.txt)
2023-04-04Fix extensions in actualize_script (#5243)Gravatar Alexandre Alapetite
* Fix extension freshrss_user_maintenance in actualize_script Follow-up of https://github.com/FreshRSS/FreshRSS/pull/3440 The hook was called before registering all the extensions for the current user * PHPStan Level 6 for extensions And remove 5-year old legacy format of enabled extensions < FreshRSS 1.11.1 * Fix multiple bugs in extensions * Minor typing * Don't change signature of methods supposed to be overridden * PHPStan Level 9 and compatibility Intelliphense * Set as final the methods not supposed to be overriden
2023-03-31PHPStan level 6 for all PDO and Exception classes (#5239)Gravatar Alexandre Alapetite
* PHPStan level 6 for all PDO and Exception classes Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112 * Fix type * Now also our remaining own librairies * Motivation for a few more files * A few more DAO classes * Last interface
2023-03-27Cleaning code and typehinting (#5064)Gravatar Luc SANCHEZ
* Cleaning code and typehinting * Fix remarque alphabetic order * Cleaning * rollback self:: * Update Context.php * Fix remarques * Fix remarques * Fix remarques * Remarque's from Alkarex * Remarque's from Alkarex * Cast higher up * Fix Level 5 * Claiming Level 6 Cf. https://github.com/FreshRSS/FreshRSS/pull/5230 * Address my comments * indexController as Level 6 as well * Fixed some wrong types --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-27Add test and type hinting (#5087)Gravatar Luc SANCHEZ
* - Add test and type hinting - pass PhpStan Level 9 * fix dump * fix style * fix visibility * fix style * add test * add test * add test * add test * add test * Simplify * cleaning after test * remove space * fix style * use specific log file for test * Remarque's from Alkarex * A few more details --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-26Automated test towards PHPStan level 6 (#5230)Gravatar Alexandre Alapetite
* Automated test towards PHPStan level 6 Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112 With this automated tests, files that are passing Level 6 are tested to avoid regressions towards Level 5 (which is the current baseline for the whole code-base) It is included when calling `make test-all` or can be called specifically by `composer run-script phpstan-next` * Test and example with 3 new passing files
2023-03-26Fix repartitionAction (#5228)Gravatar Alexandre Alapetite
* Fix repartitionAction Fix https://github.com/FreshRSS/FreshRSS/issues/5227 * Better types * PHPStan level 6
2023-03-26Modernize Constants and use new constant for string 'currentUser' (#5089)Gravatar Luc SANCHEZ
* Modernize Constants and use new constant 'currentUser' * Add FreshRSS_Context::currentUser() function and use * Add FreshRSS_Context::currentUser() function and use * Add FreshRSS_Context::currentUser() function and use * Add FreshRSS_Context::currentUser() function and use * Add FreshRSS_Context::currentUser() function and use * Update app/Controllers/userController.php * Update app/Controllers/userController.php * Update app/Controllers/userController.php * Update app/Models/Auth.php * Update p/api/greader.php * Update p/api/greader.php * Update p/api/greader.php * Update app/Models/Context.php * Update app/Models/LogDAO.php * Update lib/Minz/Log.php * Update p/api/greader.php * Update app/layout/header.phtml * Update app/views/helpers/export/articles.phtml * Update cli/do-install.php * Remarque's from Alkarex * Remarque's from Alkarex * Refactor using new Minz_User class * Consistent naming of public constants --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-22Consistent entry ID type (32-bit compatibility) (#5213)Gravatar Alexandre Alapetite
* Remove FreshRSS_Searchable for better types The interface was not used, and it was preventing more precise types for the different `searchById()` methods, as they each have different input and output types. * Consistent entry ID Entry IDs (which are 64-bit integers) must be processed as string to be compatible with 32-bit platforms * Fix type * A few more related types * PHPStan level 6 * Some more casts needed * String cast for htmlspecialchars
2023-03-22Remove FreshRSS_Searchable for better types (#5212)Gravatar Alexandre Alapetite
* Remove FreshRSS_Searchable for better types The interface was not used, and it was preventing more precise types for the different `searchById()` methods, as they each have different input and output types. * Fix type
2023-03-19FeverAPI fix enclosures (#5214)Gravatar Alexandre Alapetite
Fix regression: provide enclosures as part of HTML content body in FeverAPI #fix https://github.com/FreshRSS/FreshRSS/issues/5209
2023-03-08Type hinting for Factory.php up to PHPStan 9 (#5090)Gravatar Luc SANCHEZ
* Type hinting for Factory.php up to PHPStan 8 * Fix phpstan collateral * revert test * remarrk from Alkarex * remark from Alkarex * Update app/Controllers/entryController.php Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * Remarque's from Alkarex * Remarque's from Alkarex * Remarque's from Alkarex --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-04feat: create config to display website icon only / name only / icon and name ↵Gravatar Sadetdin EYILI
/ none on feeds (#4969) * feat: create config to display website icon only / name only / icon and name / none on feeds * fix title hovering * reverted: column in .phtml * Update app/i18n/fr/conf.php --------- Co-authored-by: mathContao <math-home@web.de> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-04Safer updateCachedValues (#5158)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/5156
2023-02-09XML+XPath (#5076)Gravatar Alexandre Alapetite
* XML+XPath #fix https://github.com/FreshRSS/FreshRSS/issues/5075 Implementation allowing to take an XML document as input using an XML parser (instead of an HTML parser for HTML+XPath) * Remove noise from another PR * Better MIME for XML * And add glob *.xml for cache cleaning * Minor syntax * Add glob json for clean cache
2023-02-09code improvement for phpstan and humans ;) (#5084)Gravatar Luc SANCHEZ
* code improvement for phpstan and humans ;) * code improvement for phpstan and humans ;) * code improvement for phpstan and humans ;) * code improvement for phpstan and humans ;) * PHPSTAN level 6 * PHPStan level 9 * Avoid return mixed --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-02-06More robust application of access permissions (#5062)Gravatar Alexandre Alapetite
* More robust application of access permissions We were in particular missing directory traversal `+X` in our current recommendations. Extracted to own shell script so it can easily be invoked. Update access permissions in Docker to account to be more robust. #fix https://github.com/FreshRSS/FreshRSS/discussions/5037 * Minor simplification * Restrict mkdir permissions Default mkdir permissions are 0777, which is not good for security, so downgrade to 0770.
2023-02-03Type hinting and doc (#5063)Gravatar Luc SANCHEZ
* Type hinting and doc * fix cs * Remove declare strict * Remove declare strict * Pass PHPStan level 9 Revert too boolean syntax * Minor wording * Fix revert typo --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-01-29PHPStan level 9 for ./p/ and lib_rss.php (#5049)Gravatar Alexandre Alapetite
And app/FreshRSS.php Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112
2023-01-28Fix types hint in UserQuery.php (#5045)Gravatar Alexandre Alapetite
* Fix types hint in UserQuery.php In particular, we had a mix of strings and integers for the query state Pass PHPStan level 9 * Unneeded null check
2023-01-26Fix error handling when updating URL (#5039)Gravatar Alexandre Alapetite
Fix 3 related error handling when updating the feed URL with an invalid URL. Previously leading to unclear 500 page with additional PHP errors.
2023-01-26Increase max feed URL length and drop unicity (#5038)Gravatar Alexandre Alapetite
* Increase max feed URL length and drop unicity #fix https://github.com/FreshRSS/FreshRSS/issues/4338 Drop the unicity constraint on our feed URL. In practice, this did not add much value as identical feeds could have different URLs. And it generated several problems, for instance during renaming or automatic redirections such as from HTTP to HTTPS, with collisions for which we dot not have any elegant handling. I have kept a high limit of 32768 because cURL does not seem to have any limit except memory, which might lead to memory problems. This is the highest server-side value reported by https://www.sistrix.com/ask-sistrix/technical-seo/site-structure/url-length-how-long-can-a-url-be * Same for Web site URL For consistency
2023-01-19Safer timezone set (#5021)Gravatar Alexandre Alapetite
* Safer timezone set Add missing tzdata in Docker :newest Fallback to UTC if no timezone is defined at all #fix https://github.com/FreshRSS/FreshRSS/pull/4906#issuecomment-1386747169 * Better refactoring Show fallback timezone everywhere
2023-01-18tec: Update the lib_opml (#4403)Gravatar berumuron
* fix: Fix undefined GLOB_BRACE on Alpine The manual states that: > Note: The GLOB_BRACE flag is not available on some non GNU systems, > like Solaris or Alpine Linux. This generated an error on Alpine. Reference: https://www.php.net/manual/function.glob.php * fix: List details of feeds for OPML exportation The details are necessary to export the XPath information, the CSS full content path and read actions filters. * Update LibOpml to 0.4.0 * Refactor OPML importation to be more robust First, it fixes two regressions introduced by the update of lib_opml: - title attribute is used when text attribute is missing; - the OPML category attribute is used as a fallback for feeds categories. In a related way, if also fixes a problem when a feed had both a parent category outline and a category attribute. Before, it only considered the attribute as its category, but now it considers the parent outline. Then, it counts category limit correctly by not increasing `$nb_categories` if the category already exists. * Exclude lib_opml from the CodeSniffer * Fix variable names when logging some errors * Fix catch of LibOpml Exception * Make sure to declare the category * Exclude lib_opml from PHPStan analyze * Disable markdownlint for lib_opml * Fix typos * Use auto-loading and allow updates via Composer * Fix broken links to lib_opml * Bring back the ability to import the OPML frss:opmlUrl attribute * Refactor the logs of OPML errors * Update lib_opml to the version 0.5.0 Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-01-09Update dev dependencies (#4993)Gravatar Alexandre Alapetite
Related to https://github.com/FreshRSS/FreshRSS/pull/4991 Required a few changes in code to pass the tests
2023-01-09Handling of parentheses as special characters in searches (#4989)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/4987
2023-01-09Added: Dark mode for Origine +Origine compact themes (#4843)Gravatar maTh
* first draft * fix: theme slider: properties box * improved colors * option to enable/disable dark mode * fixes * Update app/i18n/fr/conf.php Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * i18n english improved * fix dark background color for favorites + hover colors * select list: no, auto Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-01-06Better enclosures (#4944)Gravatar Alexandre Alapetite
* Better enclosures #fix https://github.com/FreshRSS/FreshRSS/issues/4702 Improvement of https://github.com/FreshRSS/FreshRSS/pull/2898 * A few fixes * Better enclosure titles * Improve thumbnails * Implement thumbnail for HTML+XPath * Avoid duplicate enclosures #fix https://github.com/FreshRSS/FreshRSS/issues/1668 * Fix regex * Add basic support for media:credit And use <figure> for enclosures * Fix link encoding + simplify code * Fix some SimplePie bugs Encoding errors in enclosure links * Remove debugging syslog * Remove debugging syslog * SimplePie fix multiple RSS2 enclosures #fix https://github.com/FreshRSS/FreshRSS/issues/4974 * Improve thumbnails * Performance with yield Avoid generating all enclosures if not used * API keep providing enclosures inside content Clients are typically not showing the enclosures to the users (tested with News+, FeedMe, Readrops, Fluent Reader Lite) * Lint * Fix API output enclosure * Fix API content strcut * API tolerate enclosures without a type
2022-11-29User-defined time zone (#4906)Gravatar Alexandre Alapetite
* User-defined time zone #fix https://github.com/FreshRSS/FreshRSS/issues/2754 * Update app/i18n/nl/conf.php Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> * Timezone when creating a new user Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2022-11-26Deleted: bookmark.svg (#4897)Gravatar maTh
* delete bookmark.svg * optimize Pafat theme
2022-11-23Better restrict tag search (#4882)Gravatar Alexandre Alapetite
* Better restrict tag search #fix https://github.com/FreshRSS/FreshRSS/issues/4877 Search only on full tag names and not on parts of tag names * Better whitespace handling
2022-11-22HTML+XPath allow content as HTML (#4878)Gravatar Alexandre Alapetite
* HTML+XPath allow content as HTML #fix https://github.com/FreshRSS/FreshRSS/issues/4869 * Wrong variable reuse * Allow both HTML and expressions
2022-11-20Fix feed ordering (#4841)Gravatar Alexis Degrugillier
Before, the feeds were not ordered every time there was a change in the category feed list. This behavior was causing discrepancies in the displayed list. Now, the feeds are ordered every time there is a change in the category feed list. See #4790
2022-11-15Fix type hints regressions (#4855)Gravatar Alexandre Alapetite
Fix regressions from https://github.com/FreshRSS/FreshRSS/pull/4561 Example: ``` PHP Fatal error: Uncaught TypeError: Argument 1 passed to checkToken() must be an instance of FreshRSS_UserConfiguration, instance of Minz_Configuration given, called in /var/www/FreshRSS/p/api/greader.php on line 1091 and defined in /var/www/FreshRSS/p/api/greader.php:223 Stack trace: #0 /var/www/FreshRSS/p/api/greader.php(1091): checkToken() #1 {main} thrown in /var/www/FreshRSS/p/api/greader.php on line 223 ``` Improvement of https://github.com/FreshRSS/FreshRSS/pull/4110
2022-11-14Typing function checkToken (#4561)Gravatar Luc SANCHEZ
* Typing function checkToken * Typing function and rename Co-authored-by: Luc SANCHEZ <luc.sanchez@zol.fr>
2022-11-14Add visibility (#4232)Gravatar Luc SANCHEZ
* Add visibility * Tab use * Update app/Models/Days.php Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-11-07Avoid exception in searchById (#4822)Gravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/4820 Not a root-cause fix though (cannot reproduce so far)
2022-11-07Fix path_entries encoding (#4823)Gravatar Alexandre Alapetite
* Fix path_entries encoding #fix https://github.com/FreshRSS/FreshRSS/issues/4815 * Fix preview
2022-11-03fix: dyn. OPML icon (#4810)Gravatar maTh
* fix
2022-10-21Fix curlopt options for HTML+XPath (#4759)Gravatar Alexandre Alapetite
Improvement of https://github.com/FreshRSS/FreshRSS/pull/4220
2022-10-09Add support for custom XPath date/time format (#4703)Gravatar Alexandre Alapetite
* Add support for custom XPath date/time format #fix https://github.com/FreshRSS/FreshRSS/issues/4701 Improvement of https://github.com/FreshRSS/FreshRSS/pull/4220 * Format is not XPath * Remove TODOs in en-GB
2022-10-09Fix OPML import special (#4708)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/4704 From https://github.com/FreshRSS/FreshRSS/pull/4407
2022-10-07Fix regression 4688 (#4700)Gravatar Alexandre Alapetite
Minor regression from https://github.com/FreshRSS/FreshRSS/pull/4688
2022-10-04Compat PHP 8.1 strip_tags (#4688)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/4687
2022-10-04feat: add new icon (#4673)Gravatar Nicolas Pereira
2022-09-19Fix transaction rollbacks during auto-update (#4622)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/4600 We first need to commit the SQL transaction before being able to auto-update. Avoid error such as: > 25P02: 7 ERROR: current transaction is aborted, commands ignored until end of transaction block
2022-09-09Workaround invalid OPMLs (#4591)Gravatar Alexandre Alapetite
* Workaround invalid OPMLs #fix https://github.com/FreshRSS/FreshRSS/issues/4590 Accept OPML files lacking text attributes * Tolerate missing head element
2022-09-05API protection limit content size (#4583)Gravatar Alexandre Alapetite
* API protection limit content size We had no limit to the length of an article sent through our GReader API to clients, which was a problem: The article https://devblogs.microsoft.com/dotnet/performance_improvements_in_net_7/ from the feed https://devblogs.microsoft.com/dotnet/feed/ is about 700KB long, which makes some clients (tested with News+) fail. We should try other clients to verify that 500KB is a safe enough limit. * Light optimisation * Use class constant
2022-08-31Compat Readrops (#4568)Gravatar Alexandre Alapetite
While waiting for https://github.com/readrops/Readrops/pull/163 #fix https://github.com/FreshRSS/FreshRSS/issues/4567
2022-08-25Fix MariaDB case sensitivity (#4537)Gravatar Alexandre Alapetite
* Fix MariaDB case sensitivity #fix https://github.com/FreshRSS/FreshRSS/issues/4535 Collation regression from https://github.com/FreshRSS/FreshRSS/pull/4505 * faster * Minor syntax * Minor parentheses