aboutsummaryrefslogtreecommitdiff
path: root/app/Models
AgeCommit message (Collapse)Author
2022-01-02Fix regression user init (#4116)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/4115
2022-01-01Fix most PHPDocs errors (#4107)Gravatar Alexandre Alapetite
Contributes to https://github.com/FreshRSS/FreshRSS/issues/4103 https://phpstan.org/writing-php-code/phpdoc-types
2021-12-31Add PHPStan (#4021)Gravatar Alexandre Alapetite
* Add PHPStan #fix https://github.com/FreshRSS/FreshRSS/issues/4016 https://phpstan.org/ ```sh composer run-script phpstan ``` * More fixes * Fix global variables * Add .phtml * Fix merge https://github.com/FreshRSS/FreshRSS/pull/4090 * Fix more warnings * Fix view errors and enable in CI * ReturnTypeWillChange * Dynamic view type * Fix Minz static/self bug
2021-12-31Fix article filter (#4092)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/4057 Several search filters where missing for the automatic article actions
2021-12-31Search on article IDs (#4058)Gravatar Alexandre Alapetite
* Search on article IDs Partial implementation of https://github.com/FreshRSS/FreshRSS/issues/4053
2021-12-02Fix some PHPstan errors (#4019)Gravatar Alexandre Alapetite
Fix some wrong variables found by https://github.com/FreshRSS/FreshRSS/issues/4016
2021-12-02Minz request avoid custom methods (#4020)Gravatar Alexandre Alapetite
Take advantage of PHP7+ null-coalescing operator `??` to make code more standard, shorter, and faster instead of custom function with no extra functionality. Allows code to be better tested and fix two PHPstan errors: ``` ------ ----------------------------------------- Line app/Controllers/configureController.php ------ ----------------------------------------- 410 Cannot unset offset 'rid' on string. ------ ----------------------------------------- ------ ------------------------------------ Line lib/Minz/FrontController.php ------ ------------------------------------ 70 Cannot unset offset 'c' on string. 71 Cannot unset offset 'a' on string. ------ ------------------------------------ ``` https://github.com/FreshRSS/FreshRSS/issues/4016
2021-12-02Fix more PHP 8.1 null warnings (#4018)Gravatar Alexandre Alapetite
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/4012
2021-10-16Stats: replace flotr2 with chart.js (#3858)Gravatar maTh
* include Chart.js * page: main statistics. Flotr.js replaced with Chart.js * main stats + repartition * Delete: repartition.js + stats.js * delete flotr2 * add libs in README * polish * code polish * fixed amount of week days and months * added manget link for LibreJS * added: @license-end * phpcbf + jshint formatting * delete old code * fix stats * fix Comments * finally I found the issue and fixed its best * fix the month stats * Whitespace fixes * Remove flotr2 * Rename to chart.min.js * Remove console.log Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-09-27Detect enclosure as images using file extension (#3861)Gravatar Alexandre Alapetite
* Detect enclosure as images using file extension Support e.g. https://www.sciencesetavenir.fr/atom.xml , which does not include any type hint. ```html <link rel="enclosure" href="https://example.net/assets/img/ZZZ.jpg" title="YYY"/> ``` Useful for https://github.com/FreshRSS/FreshRSS/pull/3805 * Add AVIF and WebP
2021-09-19Improved feed action filters (#3303)Gravatar Alexandre Alapetite
* Re-order some feed options * Option to auto mark as read existing titles * Option to keep at max n unread articles per feed
2021-09-11Headline structure improvement (#3830)Gravatar maTh
* header: h1 deleted - full logo included * template: config - display * WIP * shortcut configs. added fieldset. do not display the border by default * system.phtml * subscription: add feed or category * wip * wip * Update bookmarklet.phtml * Update archiving.phtml * Update queries.phtml * Update profile.phtml * Update manage.phtml * auth+update * Update template.rtl.css * fixed FreshRSS logo (Theme: Mapco) * Update mapco.rtl.css * Update _layout.scss * fixed FreshRSS logo (theme: Dark) * fix: FreshRSS logo (Theme: BlueLagoon) * fix: FreshRSS logo (Theme: Ansum) * fixed: FreshRSS logo (Theme: Alternative Dark) * fix: FreshRSS logo (Theme: Pafat) * fix: FreshRSS logo (Theme: Screwdriver) * fix: FreshRSS logo (theme: Swage) * Minor lint * little fix: FreshRSS logo (Theme: Origine) * Fix: FreshRSS logo (Theme: Origine Compact) Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-08-30UI: Add optional thumbnail and summary on feed items (#3805)Gravatar ORelio
* UI: Add optional thumbnail and summary on feed items Implements #561 * UI: Thumbnail: Own column, Custom size, Lazy load * UI: Thumbnail: Remove unnecessary CSS rule Remove rule already defined in base theme, no override needed * CSS lint + RTL * Improve thumbail and summary generation * Support img alt * Missing htmlspecialchars Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-08-30Fix wrong method name (#3808)Gravatar Alexandre Alapetite
Fix error from https://github.com/FreshRSS/FreshRSS/pull/2275 but that line was not used just yet anyway
2021-08-22Fallback for feeds with empty title (#3787)Gravatar Alexandre Alapetite
* Fallback for feeds with empty title Address a part of https://github.com/FreshRSS/FreshRSS/issues/3776 for existing feeds * Also strip www prefix * Reuse fallback logic
2021-08-14Better catch when a user does not exists (#3751)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/3735 Before, we were relying on an exception during the first stages of user initalisation. Now the check is explicit and cleaner, producing a more appropriate HTTP response for the API.
2021-07-24Search labels (#3709)Gravatar Alexandre Alapetite
* Search labels #fix https://github.com/FreshRSS/FreshRSS/issues/3704 * Documentation * Allow list without quotes * Allow boolean AND searches * Allow searching any label * fix labels alias
2021-07-24Fix marking as read a label with SQLite (#3711)Gravatar Alexandre Alapetite
Cf. https://github.com/FreshRSS/FreshRSS/pull/3709#issuecomment-885334063
2021-05-18Fix array_chunk key index bug (#3631)Gravatar Alexandre Alapetite
* Fix array_chunk key index bug #fix https://github.com/FreshRSS/FreshRSS/issues/3630 We still want array entries indexed sequentially from zero https://php.net/function.array-chunk * One missing
2021-05-08Fix several comments syntaxes (#3615)Gravatar Alexandre Alapetite
Mainly wrong `@return` types in comments
2021-05-08More cases of max SQL variable number (#3586)Gravatar Alexandre Alapetite
Follow up of https://github.com/FreshRSS/FreshRSS/pull/3553
2021-03-27Fix regression media attachments (#3565)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/3564 Bug introduced by https://github.com/FreshRSS/FreshRSS/pull/3361
2021-03-26Suport standard HTTP 410 Gone (#3561)Gravatar Alexandre Alapetite
When a feed returns an HTTP 410 Gone, mute the corresponding feed, i.e. stop refreshing it. Example of such feed, Les Décodeurs (Libération) https://rss.liberation.fr/rss/100893/
2021-03-24Fix TT-RSS import (#3553)Gravatar Alexandre Alapetite
2021-03-23Fix DB lock bug during refresh (MariaDB) (#3559)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/3552
2021-03-23Check pdo_sqlite for export/import SQLite (#3545)Gravatar Alexandre Alapetite
2021-03-09SimplePie prevent cache pollution (#3502)Gravatar Alexandre Alapetite
* SimplePie prevent cache polution #fix https://github.com/FreshRSS/FreshRSS/pull/3367#issuecomment-766250249 #fix https://github.com/FreshRSS/FreshRSS/pull/3494#issuecomment-790113663 * Fix bug * Minor improvement * Update cache filename in FreshRSS (1/2) * cacheFilename temp * New SimplePie get_cache_filename() * Fix typos * Update lib/SimplePie/SimplePie.php Typo * Include user-agent and timeout * fix array_merge * Declaration * force_feed was lost in a commit
2021-03-09Reload full content when changed (#3506)Gravatar Alexandre Alapetite
* Reload full content when changed If an article is changed, reload also its full content when applicable. * Compute hash before getting full content * Revert mix two PRs * Update app/Controllers/feedController.php
2021-03-07fix updateEntryPrepared (#3500)Gravatar Alexandre Alapetite
2021-03-07SQLite: fix updateEntry (#3461)Gravatar Alexandre Alapetite
* Draft of fix for updateEntry #fix https://github.com/FreshRSS/FreshRSS/issues/3130 * Fix for SQLite * Update app/Models/EntryDAO.php Fixed in https://github.com/FreshRSS/FreshRSS/pull/3500 * Unbuffered streaming only for MySQL
2021-02-28Travis: Enforce phpcs line length + whitespace (#3488)Gravatar Alexandre Alapetite
* Update Travis line length * Also check whitespace in CSS files * Fix line length ext.php * More syntax, string templates * Fix exclude-pattern * Test JS files as well
2021-02-27Remove + conversion in search except for tags (#3489)Gravatar Alexis Degrugillier
Before, every + sign was converted to a space to allow to search for spaces. But the documentation stated that to search for space one has to enclose the string in quotes. This has a confusing behavior when searching for a string containing a + sign. Now, the + conversion is kept only for the tag search since it's the only one documented that way. See #3454
2021-02-26"Show all" option on labels (#3472)Gravatar Alexis Degrugillier
It uses the favorite option to keep a similar experience through out the application and also to limit the number of options. See #3263
2021-02-20Fix feed sort order (#3466)Gravatar Alexis Degrugillier
Before, the feeds in the list weren't properly ordered. Uppercase values were before lowercase values. Now, the feed order is forced to ignore the case. See #3228
2021-02-20Add full content delimiter and action (#3463)Gravatar Alexis Degrugillier
Before, when appending or prepending the content of the CSS selector content, it was added to the content. It was working fine for the first call but every subsequent calls were pilling the retrieved content on top of the already retrieved content. Thus we had an ever growing content with a lot of duplication. Now, the CSS selector content is identified by an HTML comment which is used to remove the content for every subsequent calls. The bug was introduced in #3453
2021-02-16Add a content action parameter to work with CSS selector (#3453)Gravatar Alexis Degrugillier
Before, when retrieving article contents with CSS selector, the content of the RSS feed was replaced by the content of the CSS selector. It works well in most of the cases but if there is a different content in the feed and in the selector, the former is lost. Now, there is a parameter to decide which action is performed after retrieving the content. By default, the previous behavior is kept. But now, it is possible to append or prepend the CSS selector content to the feed content. See #3451
2021-02-02INSERT ... ON CONFLIT DO NOTHING for addEntry (#3409)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/3402 Explicit `INSERT OR IGNORE` / `ON CONFLICT DO NOTHING` for the `addEntry()` method, which does expect some duplicates.
2021-01-16CURLOPT parameters per feed (#3367)Gravatar Eris
* Working curlopt_params * Examples * curl_params for fetching the article * cleanup * clarification * Remove debugging * Options corrected * Removed Debugging * i18n not needed (right now) * Translations and UI rework * Checks in update.phtml * Unset Proxy&Cookies * remove clutter * minor fuckup * i18n added properly * resolve Errors * linting errors * linting errors, again * Review * Minor revert * Minor i18n: de Co-authored-by: maru <maru@nyx.im> Co-authored-by: Aeris <a3x@eris.cc> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-01-12Fix images in enclosures without MIME type (#3361)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/3358 Assume enclosures without a mime type, without a length, but with either a width or a height are images
2021-01-11Fix commitNewEntries query (#3357)Gravatar Craig Andrews
There was an erroneous '; at the end of the commitNewEntries DELETE query, resulting in an exception during actualization with this output: ``` FreshRSS starting feeds actualization at 2021-01-11T14:06:09+00:00 FreshRSS actualize candrews... PHP Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''' at line 1 in /var/www/localhost/htdocs/FreshRSS/lib/Minz/Pdo.php:45 Stack trace: #0 /var/www/localhost/htdocs/FreshRSS/lib/Minz/Pdo.php(45): PDO->exec() #1 /var/www/localhost/htdocs/FreshRSS/app/Models/EntryDAO.php(167): Minz_Pdo->exec() #2 /var/www/localhost/htdocs/FreshRSS/app/Controllers/feedController.php(505): FreshRSS_EntryDAO->commitNewEntries() #3 /var/www/localhost/htdocs/FreshRSS/app/Controllers/feedController.php(548): FreshRSS_feed_Controller::actualizeFeed() #4 /var/www/localhost/htdocs/FreshRSS/lib/Minz/Dispatcher.php(119): FreshRSS_feed_Controller->actualizeAction() #5 /var/www/localhost/htdocs/FreshRSS/lib/Minz/Dispatcher.php(47): Minz_Dispatcher->launchAction() #6 /var/www/localhost/htdocs/FreshRSS/lib/Minz/FrontController.php(81): Minz_Dispatcher->run() #7 /var/www/localhost/htdocs/FreshRSS/app/actualize_script.php(75): Minz_FrontController->run() #8 {main} thrown in /var/www/localhost/htdocs/FreshRSS/lib/Minz/Pdo.php on line 45 Results: ```
2021-01-09Do not import feed causing DB error (#3347)Gravatar Alexandre Alapetite
* Do not import feed causing DB error The DB error might be that the new feed tries to redirect to an already existing feed, in which case #fix https://github.com/FreshRSS/FreshRSS/issues/3339 * Add feed bug
2021-01-07Update user query feature (#3338)Gravatar Alexis Degrugillier
* Change user query wording There was some misunderstanding in the use of the user query feature, probably because of the wording. I've change it to make it more obvious. * Fix feedback when a query is bookmarked Before, the displayed query name was not the one intended. Now, the name is the one of the current bookmark * Document user queries I've added a few words on how to use the user queries because it seems there was some misunderstanding. See #3219
2021-01-03Fix share option sort (#3331)Gravatar Alexis Degrugillier
Before, share options were displayed in the order defined in the configuration file. So the order reflected the share history and was not really usable. Now, share options are displayed in alphabetical order which makes much more sense.
2021-01-02Avoid manual initialisations of system or user configuration (#3070)Gravatar Alexandre Alapetite
* Avoid manual intialisations of system or user configuration More consistent use of Context * Simplify FreshRSS_Context::initUser * Remove a few manual get_user_configuration * A bit of debugging * Fix context user init * Fix install * Fix concurrency Concurrent requests could lead to bad race condition * Fix actualize cron Fix case when system i initialised several times
2020-12-29Add a file for each PDO class (#3301)Gravatar Alexis Degrugillier
Before, we had 5 classes in the ModelPdo file. It was bad for 2 reasons. The first reason is that it is considered bad practice to have multiple class in one file. This is especially true when using autoloading. On top of that it is less readable considering the size of the file. The second reason is that so far we were lucky. Everytime we needed to access the database, it was through the ModelPdo class which loads all the other classes. If we want to access directly the connection, it wont be loaded. On top of that, the system is configured to work on a single database, but as we have every connection definition in a single file, all classes were loaded at the same time. Thus using memory and processing time for nothing. Now, we have a file for each class. To work with autoloading, classes were slightly renamed to match autoloading rules.
2020-12-28Revert "Add a file for each PDO class (#3297)"Gravatar Alexandre Alapetite
This reverts commit e1ee58816ba76734e4115fc12898b13de665b220.
2020-12-28Add a file for each Auth class (#3298)Gravatar Alexis Degrugillier
It's a follow-up of what was started in #3297.
2020-12-28Add a file for each PDO class (#3297)Gravatar Alexis Degrugillier
Before, we had 5 classes in the ModelPdo file. It was bad for 2 reasons. The first reason is that it is considered bad practice to have multiple class in one file. This is especially true when using autoloading. On top of that it is less readable considering the size of the file. The second reason is that so far we were lucky. Everytime we needed to access the database, it was through the ModelPdo class which loads all the other classes. If we want to access directly the connection, it wont be loaded. On top of that, the system is configured to work on a single database, but as we have every connection definition in a single file, all classes were loaded at the same time. Thus using memory and processing time for nothing. Now, we have a file for each class. To work with autoloading, classes were slightly renamed to match autoloading rules.
2020-12-28Auto-renew cookie (#3287)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/3169#issuecomment-685983797 Supplement https://github.com/FreshRSS/FreshRSS/pull/3170 When we get the long-term login cookie (i.e. when starting a new session), renew it at the same time for the same duration
2020-12-26bump default logout from 30 days to 3 months (#3170)Gravatar Martin
* bump default logout from 30 to 365 days * * Change cookie duration to constant * Change cookie duration to three months * use class * use 90 days (otherwise login form says 91.3 days) * change class * also this works now Co-authored-by: Martin Rys <martin@rys.pw> Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>