aboutsummaryrefslogtreecommitdiff
path: root/app/Models
AgeCommit message (Collapse)Author
2023-09-26Fix search using user queries (#5669)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/5668
2023-09-14Allow string in XPath tags (#5653)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/5651
2023-09-14Fix MariaDB size calculation (#5655)Gravatar Alexandre Alapetite
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-12SQL: Same updateCacheUnreads for all DBs (#5648)Gravatar Alexandre Alapetite
* 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-12SQL: clean old auto-updates (#5649)Gravatar Alexandre Alapetite
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-06Remove obsolete TTL migration code (#5625)Gravatar Alexandre Alapetite
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-05Fix parenthesis escaping bug (#5633)Gravatar Alexandre Alapetite
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-04Fix JSON export/import (#5626)Gravatar Alexandre Alapetite
* 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-08-13Fix hash of articles with loadCompleteContent (#5576)Gravatar Alexandre Alapetite
* 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-10fix: Fix the "Show all articles" option (#5580)Gravatar berumuron
2023-08-10tec: Make FreshRSS_Share::register public (#5578)Gravatar berumuron
I don't know why the visibility of this method has changed, but it's essential to register custom shares as extensions. Reference: a13a20de20702d86df904e16560c52bfe7c90aad
2023-08-03Fix cache refresh (#5562)Gravatar Alexandre Alapetite
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-07-19Fix enclosures in RSS output (#5540)Gravatar Alexandre Alapetite
* Fix enclosures in RSS output fix https://github.com/FreshRSS/FreshRSS/issues/5539 * another iterable * Forgotten iterable
2023-07-07Chore/processing of depreciations and updating code to php72 minimum (#5504)Gravatar Luc SANCHEZ
* 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-05New extension hook entry_auto_read (#5505)Gravatar Alexandre Alapetite
* 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-06-20Remove unneeded quotes in warning (#5480)Gravatar Alexandre Alapetite
* Remove unneeded quotes in warning fix https://github.com/FreshRSS/FreshRSS/issues/5479 * Minor whitespace
2023-06-16Refactor lastSeen and markReadAsGone (#5470)Gravatar Alexandre Alapetite
* 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-13Improved: update page (#5420)Gravatar maTh
* 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-08phpstan-8 for category class (#5434)Gravatar Luc SANCHEZ
* 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-05-30phpstan-9 for Share.php (#5431)Gravatar Luc SANCHEZ
* 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-30Forgotten debug lineGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/pull/5404
2023-05-22Avoid falsy guid (#5412)Gravatar Alexandre Alapetite
Whitespace strings, empty strings, 0 are all problematic when working with GUIDs. so avoid them.
2023-05-16Remove debug lineGravatar Alexandre Alapetite
Forgotten from https://github.com/FreshRSS/FreshRSS/pull/5404
2023-05-16Fix again updateLastSeenUnchanged (#5404)Gravatar Alexandre Alapetite
* 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-15PHPStan Level 7 for Minz_Request, FreshRSS_Feed, Minz_Error (#5400)Gravatar Alexandre Alapetite
* PHPStan Level 7 for Minz_Request * PHPStan Level 7 for FreshRSS_Feed * PHPStan Level 7 for Minz_Error
2023-05-13PHPStan Level 7 for Share userController logs_pagination (#5393)Gravatar Alexandre Alapetite
2023-05-11A few additional PHPStan rules (#5388)Gravatar Alexandre Alapetite
A subset of https://github.com/phpstan/phpstan-strict-rules
2023-05-11Typed view model classes (#5380)Gravatar Alexandre Alapetite
* Typed view model classes * Add ability to provide a typed view model class to a controller * Use `::class` instead of string for referring to classes * Examplified with `stats` and `javascript` controllers / views (more to do) * Also useful for extensions (my usecase today), which did not have the ability to define own view model attributes before. * Typo
2023-05-09Fix markAsReadUponGone (#5382)Gravatar Alexandre Alapetite
Fix regression from https://github.com/FreshRSS/FreshRSS/pull/5315 which indroduced a bug for cached feeds. We now update the `lastSeen` property of entries to account for the fact that they are unchanged but still existing.
2023-05-07docs: language table added (#5375)Gravatar maTh
* docs: language table added * Update 05_Configuration.md * Update 05_Configuration.md * french docs * Unicode quote and a few fixes (Same search&replace aslo applied to a few other files) --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-05-07phpstan level 7 for feedController.php (#5373)Gravatar Luc SANCHEZ
* phpstan level 7 for feedController.php * phpstan level 7 for feedController.php * phpstan level 7 for feedController.php * phpstan level 7 for feedController.php * A few fixes --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-05-04SQL attributes native unicode (#5371)Gravatar Alexandre Alapetite
Save our attributes for entries, feeds, and tags as native Unicode instead of JSON escape sequences such as `\u00f8` which are difficult to work with.
2023-05-04Use PHPStan dynamicConstantNames (#5370)Gravatar Alexandre Alapetite
https://phpstan.org/config-reference#constants Avoid a few phpstan-ignore-next-line
2023-05-03Fix entries count (#5368)Gravatar Alexandre Alapetite
Parameters warning with some databases
2023-05-03Automatic trusted_sources during install (#5358)Gravatar Alexandre Alapetite
* Automatic trusted_sources during install Fix https://github.com/FreshRSS/FreshRSS/issues/5357 * Fix install for http_auth * Update lib/lib_rss.php Co-authored-by: Luc SANCHEZ <4697568+ColonelMoutarde@users.noreply.github.com> * Fill null exception e-mail * Revert some syntax * Minor parentheses
2023-05-02PHPStan Level 7 complete DAOs (#5354)Gravatar Alexandre Alapetite
* PHPStan Level 7 complete DAOs * Finalise PHPStan Level 7 for CategoryDAO * PHPStan Level 7 for Context and Search * Apply suggestions from code review Co-authored-by: Luc SANCHEZ <4697568+ColonelMoutarde@users.noreply.github.com>
2023-05-01Fix API starred (#5366)Gravatar Alexandre Alapetite
* Fix API starred Fix https://github.com/FreshRSS/FreshRSS/issues/5363 https://github.com/FreshRSS/FreshRSS/commit/c72914bba2363e436574204b3d6093a6f3cfce89#commitcomment-111220080 * Minor type fix * Additional check * Minor syntax change * Forgotten type change
2023-04-30Fix TagDAO for SQLite (#5362)Gravatar Alexandre Alapetite
The list of tags was empty when using SQLite. I have just realised that SQLite PDO driver returns int columns as string (at least in my test with PHP 7.4.33) so there was a type bug. We might have other bugs of this type for SQLite...
2023-04-28PHPStan Level 7 for more DAO PDO (#5328)Gravatar Alexandre Alapetite
* PHPStan Level 7 for more DAO PDO With new function to address common type and check problems * A bit more * PHPStan Level 7 for FreshRSS_Entry
2023-04-24Fix starred import (#5332)Gravatar Alexandre Alapetite
Fix https://github.com/FreshRSS/FreshRSS/issues/5331
2023-04-23PHPStan Level 7 for ten more files (#5327)Gravatar Alexandre Alapetite
* PHPStan Level 7 for nine more files * Minor syntax * One more
2023-04-20Improve markAsReadUponGone (#5315)Gravatar Alexandre Alapetite
* Improve markAsReadUponGone Fix case when the uptream feed has zero article, then old articles would never be automatically marked as read with the "mark as read when gone" policy, which was only based on the timestamp of new articles from the uptream feed. * Fix typo * Simplify request Needs to be re-tested with SQLite + MySQL * While waiting to check syntax on all database types * Fix multiple errors In the case of WebSub, and in the case of invalid GUIDs
2023-04-20PHPStan Level 7 for FreshRSS_UserQuery (#5319)Gravatar Alexandre Alapetite
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/5318
2023-04-20Better XPath failure (#5317)Gravatar Alexandre Alapetite
Report feeds as errored for more cases
2023-04-20PHPStan 7 configureController (#5318)Gravatar Alexandre Alapetite
And fix bugs for saving user queries
2023-04-17phpstan level 7 for user-info.php (#5309)Gravatar Luc SANCHEZ
* phpstan level 7 for user-info.php * phpstan level 7 for user-info.php * phpstan level 7 for user-info.php --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
2023-04-17More consistent use of iterable type (#5308)Gravatar Alexandre Alapetite
For `yield`
2023-04-17Complete PHPStan Level 6 (#5305)Gravatar Alexandre Alapetite
* Complete PHPStan Level 6 Fix https://github.com/FreshRSS/FreshRSS/issues/4112 And initiate PHPStan Level 7 * PHPStan Level 6 for tests * Use phpstan/phpstan-phpunit * Update to PHPStan version 1.10 * Fix mixed bug * Fix mixed return bug * Fix paginator bug * Fix FreshRSS_UserConfiguration * A couple more Minz_Configuration bug fixes * A few trivial PHPStan Level 7 fixes * A few more simple PHPStan Level 7 * More files passing PHPStan Level 7 Add interface to replace removed class from https://github.com/FreshRSS/FreshRSS/pull/5251 * A few more PHPStan Level 7 preparations * A few last details
2023-04-15PHPStan level 6 for remaining DAO classes (#5299)Gravatar Alexandre Alapetite
* PHPStan level 6 FreshRSS_CategoryDAO Follow-up of https://github.com/FreshRSS/FreshRSS/pull/5298 Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112 * PHPStan Level 6 for FeedDAO and a bit more * PHPStan Level 6 for tagDAO
2023-04-15PHPstan level 6 for Category.php (#5298)Gravatar Luc SANCHEZ
* PHPstan level 6 for Category.php * Fix a few things * Minor fixes * A few more fixes --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>