aboutsummaryrefslogtreecommitdiff
path: root/app/Controllers
AgeCommit message (Collapse)Author
2021-03-09Add an option to set a custom user agent to retrieve individual feeds (#3494)Gravatar Jules-Bertholet
* Add an option to set a custom user agent to retrieve individual feeds This allows retrieving the original RSS feed when websites use services like FeedBurner. * Use !== instead of != in subscriptionController.php * Add proxy and user-agent to subscription/add Co-authored-by: Georgelemental <georgelemental@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
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-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-21Change zip handling methods (#3470)Gravatar Alexis Degrugillier
Before, we were using zip function but they are marked as deprecated as of PHP 8.0. It's not safe to use them anymore since they can be removed at any given time. Now, we are using the ZipArchive class to handle our zip methods. It's safe to use it since it's available for PHP 5.2 and higher. See #3460
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-06API implement OPML import/export (#3424)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/3421
2021-01-24Fix load default action on shortcuts (#3394)Gravatar Alexis Degrugillier
See #3388
2021-01-17Fix form login if user does not exist (#3377)Gravatar Alexandre Alapetite
Small bug from https://github.com/FreshRSS/FreshRSS/pull/3070 , leading to an exception due to not being able to log the error. Minor: Also add some very primitive mitigation of timing attacks (to find out whether a user exists or not, although I have not checked whether this might be guessed through other means) - before, if the user did not exist, the response was always measurably faster; now it is harder to tell due to the noise
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-16Change integration configuration page (#3372)Gravatar Alexis Degrugillier
I've refactored the user query code to be able to use it also on the integration configuration page. Now, items can be re-organized as in the user query list.
2021-01-15Add a query configuration page (#3366)Gravatar Alexis Degrugillier
* Add a query configuration page Before, there was no way to modify a user query. Thus you need to create a new one and delete the old one afterward. Now, every user query can be modified if needed. They have their own configuration page on which it can be modified or deleted. * Change drag and drop action on queries Before, the drag and drop action needed to be validated by submitting the form to be persisted. Now, it's done automatically after the query is dropped to its final location.
2021-01-14Add constant for PHP requirements (#3369)Gravatar Alexis Degrugillier
* Add constant for PHP requirements This new constant is used for PHP version check. This way, we won't forget to modify some part of the code base. * Remove PHP version checks Some checks were obsolete because they were checking unsupported PHP versions.
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-09Add user query manual sorting (#3346)Gravatar Alexis Degrugillier
* Add user query manual sorting Before, to change the user query order, you'll have to delete them and recreate them. It was not really efficient. Now, you can drag and drop them to ease reordering. See #2216 and #2015 * Remove cancel action on user query configuration Before, the cancel action was useless since it was not wired. Now, there is no cancel action. See #2015
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-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-29Trim rid param from user query (#3306)Gravatar Alexandre Alapetite
Caused by https://github.com/FreshRSS/FreshRSS/pull/3208 Before, the 'rid' parameter was saved as part of the user query.
2020-12-28Fix tag management translation (#3292)Gravatar Alexis Degrugillier
Before, feedback messages were not translated. Now, they are.
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>
2020-12-26Better OPML import of feeds in multiple categories (#3286)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/3284 Helps https://github.com/FreshRSS/FreshRSS/issues/1989 In OPMLs files in which feeds are listed several times, favour the version in a category instead of in no category.
2020-12-26Fix user queries with labels (#3285)Gravatar Alexis Degrugillier
Before user queries with labels were not translated. Actually, it was not even processed. Now those user queries are translated properly. See #3215
2020-10-06Minz allow parallel sessions (#3096)Gravatar Alexandre Alapetite
* Minz allow parallel sessions #fix https://github.com/FreshRSS/FreshRSS/issues/3093 * Array optimisation * Array optimisation missing * Reduce direct access to $_SESSION except in install process * Fix session start headers warning * Use cookie only the first time the session is started: `PHP Warning: session_start(): Cannot start session when headers already sent in /var/www/FreshRSS/lib/Minz/Session.php on line 39` * New concept of volatile session for API calls Optimisation: do not use cookies or local storage at all for API calls without a Web session Fix warning: ``` PHP Warning: session_destroy(): Trying to destroy uninitialized session in Unknown on line 0 ``` * Only call Minz_Session::init once in our index It was called twice (once indirectly via FreshRSS->init()) * Whitespace * Mutex for notifications Implement mutex for notifications https://github.com/FreshRSS/FreshRSS/pull/3208#discussion_r499509809 * Typo * Install script is not ready for using Minz_Session
2020-10-06Use of existing tag name via input field (#3213)Gravatar knasdk
* Use of existing tag name via input field Use existing tag name, when tag name is typed into tag list's text field * Indentation mistake Just an indentation correction * Final correction Missed line 35.
2020-10-05Minz: Attach a notification to a request (#3208)Gravatar Alexandre Alapetite
* Minz: Attach a notification to a request Notifications should be attached to a request, not to a global session. Fix https://github.com/FreshRSS/FreshRSS/pull/3096#issuecomment-654891906 Prepare https://github.com/FreshRSS/FreshRSS/pull/3096 * Rename array * Avoid string constants Implement https://github.com/FreshRSS/FreshRSS/pull/3208#issuecomment-703243863 * Improved logic * Simplify storage https://github.com/FreshRSS/FreshRSS/pull/3208#discussion_r499511213 * Fix notification bug in configuration/system
2020-09-17Fix CLI api_password (#3179)Gravatar Alexandre Alapetite
* Fix CLI api_password #fix https://github.com/FreshRSS/FreshRSS/issues/3177 Fix regression from https://github.com/FreshRSS/FreshRSS/pull/2675 * Update cli/_update-or-create-user.php Co-authored-by: oupala <oupala@users.noreply.github.com> Co-authored-by: oupala <oupala@users.noreply.github.com>
2020-08-29Trim whitespace for feed passwords (#3158)Gravatar Alexandre Alapetite
We output a space by default in the user interface for setting feed passwords, in order to prevent aggressive password autocompletion https://github.com/FreshRSS/FreshRSS/pull/881 However, user might not always override this white space when entering the password. So here we trim. (I believe legitimate leading / trailing spaces in passwords are sufficiently rare not to be a problem)
2020-07-23Add tag management page (#3121)Gravatar Alexis Degrugillier
The new page allows to create, delete and rename tags. See #3058
2020-07-14Add a way to disable shortcuts (#3114)Gravatar Alexis Degrugillier
When the user do not want to use a shortcut, he can let the shortcut value empty. This will save an empty configuration thus disabling the shortcut. The load default action allows to use default shortcut only for disabled shortcuts. See #3110
2020-06-21FeedMe table manage feeds + fix warning addFeed (#3075)Gravatar Alexandre Alapetite
FeedMe is able to add/remove subscriptions. Fix minor bug introduced by https://github.com/FreshRSS/FreshRSS/pull/1731 If the category ID is provided, we must first search for the existing category before trying to add a category with the provided name. Fix: ``` SQL error addCategory: ["23000",19,"UNIQUE constraint failed: category.name"] ```
2020-06-20Fetch feed name / website / description if empty (#3071)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/3067
2020-06-14Add a way to disable/enable users (#3056)Gravatar Alexis Degrugillier
If you want to block users without deleting their account, you can now disable them from the interface.
2020-06-13tec: Refactor the export feature (#3045)Gravatar Marien Fressinaud
Even if the issue #3035 seemed pretty simple at a first glance, it was more complicated than I expected. Because we send CSP headers AFTER running the controller actions, it means we can't "echo" any content from the controller. It's in fact a good practice, but it was easier at the time we developed the feature. To fix that, the only thing I had to do was to move the `print()` and `readfile()` function into the view. The problem was that we needed to output the content from the CLI too. Then, things became more complicated. I decided to extract the export-related methods in a `FreshRSS_Export_Service` class, in order to use it from both the controller and the CLI. It was an opportunity to refactor the whole feature in order to make it a bit more linear and easy to read. Reference: https://github.com/FreshRSS/FreshRSS/issues/3035
2020-06-06Fix user queries when they contain " (#3037)Gravatar Alexis Degrugillier
Before, the user queries were working filter-wise but they failed at being displayed properly in the configuration page. Thus they were stored without the search param. Now, the search is URL encoded to avoid that kind of behavior and keep the search param through out the user query's life.
2020-06-05Add missing translations (#3034)Gravatar Alexis Degrugillier
* Add missing translations * Add a simple way to check if an i18n key exists There is a rule in the makefile to access it directly
2020-06-05Add language detection when the user is not logged in (#3022)Gravatar Alexis Degrugillier
Before, when the user was not logged in, pages where translated with the '_' user language. Now, they are translated with the user preferred language if there is one supported by FreshRSS or with the system default language.
2020-06-05Change add feed action (#3027)Gravatar Alexis Degrugillier
* Docker Alpine 3.12 (#3025) https://alpinelinux.org/posts/Alpine-3.12.0-released.html With PHP 7.3.18 (from 7.3.17) (and Apache 2.4.43 unchanged). No other significant change spotted * Ensure feed attributes are used before load Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-05-21Fix fetch preview (#2993)Gravatar Alexandre Alapetite
* Fix fetch preview #fix https://github.com/FreshRSS/FreshRSS/issues/2923 In MariaDB / MySQL, we cannot start a new query if we have not consumed the previous buffered query fully. * Fix for reload * Typo in comment
2020-05-18Fix nav_menu mark-as-read (#2909)Gravatar Alexandre Alapetite
* Fix nav_menu mark-as-read #Fix https://github.com/FreshRSS/FreshRSS/issues/2905 Fix regression from https://github.com/FreshRSS/FreshRSS/pull/2588 We need info about the first item (id_max) before being able to output nav_menu. Before https://github.com/FreshRSS/FreshRSS/pull/2588 we used to output everything in memory before starting to produce an output. Now that we stream the output, we need a temporary buffer until we have received the first item/article. * Repair loading page * Simplify CSS Make it work in Chrome as well * Lint * Partial revert * Base max_id solely on current time
2020-05-17Stream instead of memory copy of SimplePie entries (#2972)Gravatar Alexandre Alapetite
* Stream instead of memory copy of SimplePie entries https://github.com/FreshRSS/FreshRSS/issues/2952 * Undo lines delete * Typo * Remove unaccessible code https://github.com/FreshRSS/FreshRSS/pull/2972/files#r425624163 * Back-compatibility for Feed->entries https://github.com/FreshRSS/FreshRSS/pull/2972/files#r425631913
2020-05-10Attempt to reduce max memory usage during actualize (#2955)Gravatar Alexandre Alapetite
* Attempt to reduce max memory usage during actualize #Fix https://github.com/FreshRSS/FreshRSS/issues/2952 * Use memory_get_peak_usage
2020-05-092914 show last login date (#2936)Gravatar equinoxmatt
* Add new last_login param to default user config * Add English translation strings for last login feature * Update last_login when user successfully logs in. * Add last_login column to manage users screen * Add last_login to user details screen * Remove accidental docker-compose.yml * Fix whitespace * Use last modified time for config file * Remove last_login field from default user config * Touch user configuration file upon succesful login * Add translations with todos * Fix whitespace * Use last_user_activity * Semi-colomn Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-04-30Fix filenames for files exported with CLI (#2932)Gravatar Marien Fressinaud
Filenames were created with the username of the current user. However, when we export the files with the CLI, the current user is "_". This commit makes the username always required in the `exportFile` method so we make sure to always manipulate a real value. Consequently, the filenames can be formatted correctly. Obviously, this has absolutely no impacts since the CLI doesn't consider the HTTP headers. It just makes things a bit more clear. It's a first step to remove the concept of "default user".
2020-04-24WebSub move fixes (#2922)Gravatar Alexandre Alapetite
Small fixes related to when WebSub changes address: * When unsubscribing, one must use the current/old address, not the newly found selfUrl; * This change https://github.com/FreshRSS/FreshRSS/pull/2659#discussion_r347263068 was wrong, so reverted to the first version. We must obey the rules also for feeds for which the initial WebSub enabling is not finished, otherwise we never have a chance to redirect the feed to the proper selfUrl.
2020-04-17A wrong login must return HTTP 403 (#2903)Gravatar Alexandre Alapetite
* A wrong login must produce HTTP 403 #fix https://github.com/FreshRSS/FreshRSS/issues/2901 https://github.com/FreshRSS/FreshRSS/pull/2794/files#r389319248 * Just for consistency
2020-04-16Option to control which categories to unfold (#2888)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/2324
2020-04-14Reduce DB locks (#2899)Gravatar Alexandre Alapetite
Do not lock the DB to update it when there is nothing to commit. This should reduce the risk of seeing some `database is locked` errors.
2020-04-01Fix fetch content for complex HEAD (#2867)Gravatar Alexandre Alapetite
* Fix contentSelectorPreviewAction Was not compatible with https://github.com/FreshRSS/FreshRSS/pull/2588 * Fix lib_phpQuery for <head ...> #fix https://github.com/FreshRSS/FreshRSS/issues/2864 * Replace split() by explode() for PHP7 compatibility https://php.net/str-split * Fix for document with a `<head>` tag more complicated, like `<head profile="http://www.w3.org/1999/xhtml/vocab">`
2020-03-22More inactive cutoffs (#2831)Gravatar Anton Smirnov
* Fill additional cutoffs * Update phpdoc * Add translation strings * Update app/i18n/fr/gen.php Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr> * Add Dutch translation Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2020-03-08Improve login and registration pages (#2794)Gravatar Marien Fressinaud
* Keep the user on login page on failure * Show an error if username already exists * Check the password format in the backend * Return a better message if username is invalid * Add a title to the login page * wip: Improve look of login and register pages * Set a capital M in username help message On the registration page, username tip started with a minuscule, while the password tip started with a capital. * Change message if username is taken