aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2020-05-29Fix PostgreSQL database auto-create with limited rights (#3013)Gravatar Alexandre Alapetite
* Fix PostgreSQL database auto-create with limited rights #fix https://github.com/FreshRSS/FreshRSS/issues/3009 Install would fail if the user is not even allowed to connect to the default `postgres` database. * Confused by custom Minz_PDOConnectionException
2020-05-18Update/php mailer (#2980)Gravatar Brooke
* Update PHPMailer to 6.1.5 This PR update the bundled version of PHPMAiler
2020-05-16Relaxed OPML - allow other elements than outline (#2983)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/2981 Relax OPML
2020-05-14Improve logs during cron actualization (#2964)Gravatar Alexandre Alapetite
For https://github.com/FreshRSS/FreshRSS/issues/2952#issuecomment-626218921 And fix a little bug writing logs with the wrong user name
2020-04-04sort results in find() method (#2874)Gravatar Eris
* sort results in find() method * Update lib/lib_phpQuery.php Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr>
2020-04-01Minor SimplePie merge (#2870)Gravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/pull/2852 was merged upstream https://github.com/simplepie/simplepie/pull/643 Follow-up of https://github.com/FreshRSS/FreshRSS/pull/2814
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-28SimplePie use distint cache for force_feed (#2852)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/2524 In general, we should avoid using the same cache for feeds that are fetched with distinct parameters / settings.. PR upstream to SimplePie https://github.com/simplepie/simplepie/pull/643
2020-03-22Add core extension for Google Groups (#2838)Gravatar Alexandre Alapetite
* Add core extension for Google Groups #Fix https://github.com/FreshRSS/FreshRSS/issues/2835 Add ability to discover RSS feeds for Google Groups Based on https://github.com/FreshRSS/FreshRSS/pull/2837 * Allow HTTP in addition of HTTPS
2020-03-22New core-extensions to allow Docker volumes for third-party extensions (#2837)Gravatar Alexandre Alapetite
* New core-extensions to allow Docker volumes for third-party extensions #Fix https://github.com/FreshRSS/FreshRSS/issues/2650 Split our extensions directory into two: 1) Core extensions shipped with FreshRSS in ./lib/core-extensions/ 2) Third-party extensions modified by end-users in ./extensions/ which can easily be mounted as a Docker volume * Example of Docker Compose with extensions * Back-compatibility + fix array merge bug
2020-02-29SimplePie 1.5.4 (#2814)Gravatar Alexandre Alapetite
https://github.com/simplepie/simplepie/compare/1.5.3..a72e1dfafe7870affdae3edf0d9a494e4fa31bc6 Follow up of the update to 1.5.3 https://github.com/FreshRSS/FreshRSS/pull/2702 Requires PHP 5.6+ https://github.com/FreshRSS/FreshRSS/pull/2527#issuecomment-592952451
2020-01-04Fix wrong getHeader refactoring (#2749)Gravatar Alexandre Alapetite
* Fix wrong getHeader refactoring Fix regression introduced by https://github.com/FreshRSS/FreshRSS/pull/2373 The refactoring required a call to init() even for static functions, which is most of the time not done. Removed premature abstraction of `$_SERVER`, which was the root cause of the bug. https://github.com/FreshRSS/FreshRSS/issues/2748#issuecomment-569898931 * Refactoring: Move serverIsPublic to Minz_Request * Add mitigations for wrong configurations Due to the regression, we have some existing configurations with a bad base_url * Forgot one instance
2020-01-03Fix logging environment constants (#2745)Gravatar Alexandre Alapetite
* Fix logging environment constants * COPY_LOG_TO_SYSLOG was only working when Syslog was used * FRESHRSS_ENV was not properly used to set logging level * Simplify code Always call `openlog()` even when it is not used * Always specify syslog properties https://github.com/FreshRSS/FreshRSS/pull/2745#discussion_r362207445 * $username is also needed further down * No new line in syslog
2019-12-30Fix PostgreSQL install (#2735)Gravatar Alexandre Alapetite
* Fix PostgreSQL install Fix https://github.com/FreshRSS/FreshRSS/issues/2732 When username is different from database name * Add more comments https://github.com/FreshRSS/FreshRSS/pull/2735/files/2b7807d1b3fdd0dc34538faad465934fb737fa3a#r361846714
2019-12-25tec: Improve logs on DB connection failure (#2734)Gravatar Marien Fressinaud
For a moment, PHP wasn't able to connect to my database. I tried to understand what happened, unfortunately, the logs were not very helpful (it basically showed me information that I had in my configuration file). I changed the dsn string by the message from the raised exception, I think it will be more useful. Other call of Minz_PDOConnectionException are passing error messages instead of string connection, so I took the opportunity to rename the constructor argument.
2019-12-22tec: Allow to change CSP header from controllersGravatar Marien Fressinaud
For an extension, I needed to call a script from an external domain. Unfortunately, the CSP headers didn't allow this domain and I had to patch manually the FreshRSS FrontController for my extension. It's obviously not a long-term solution since it has nothing to do in the core of FRSS, and I don't want to apply this patch manually at each update. With this patch, I allow changing the CSP header from inside the controller actions. It allows extensions to modify headers. It's also an opportunity to remove a bit of code from the FrontController. I wasn't happy with the previous implementation anyhow. Reference: https://github.com/flusio/xExtension-Flus/commit/ed12d56#diff-ff12e33ed31b23bda327499fa6e84eccR143
2019-12-07Extend hooks (#2704)Gravatar Clemens Neubauer
It adds two new hooks to have more options for influencing with extensions.
2019-12-06Manual update to SimplePie 1.5.3 (#2702)Gravatar Craig Andrews
2019-12-04Refacto request class (#2373)Gravatar Alexis Degrugillier
I split the code into more manageable chunks to make it more readable. It's now easier to get a grasp on it. In the process, I tried to use the yoda style notation to avoid unintentional variable assignement. I also tried to exit early to avoid many "if" levels. I have also added a better way to handle headers and a way to extract languages from the request. It will be easier to choose which language to use for i18n.
2019-12-03Remove magicQuotesOff (#2697) (#2698)Gravatar Craig Andrews
* Remove magicQuotesOff (#2697) Magic quotes have been deprecated since PHP 5.4 and as of PHP 7.4 `get_magic_quotes_gpc()` displays a warning. * Remove unused Minz_Helper::stripslashes_r `Minz_Helper::stripslashes_r` is no longer used. It's last user was `Minz_Request::magicQuotesOff`
2019-11-20Old ICU: INTL_IDNA_VARIANT_2003 fallback (#2680)Gravatar Alexandre Alapetite
* Old ICU: INTL_IDNA_VARIANT_2003 fallback Fix https://github.com/FreshRSS/FreshRSS/issues/2676 Fix https://github.com/FreshRSS/FreshRSS/issues/2677 ICU version < 4.6: When INTL_IDNA_VARIANT_UTS46 is not available, use INTL_IDNA_VARIANT_2003 Cf. https://github.com/PrestaShop/PrestaShop/pull/11995
2019-11-11Sanitize UTF-8 before commiting entries (#2649)Gravatar Alexandre Alapetite
Fix https://github.com/FreshRSS/FreshRSS/issues/2645
2019-11-08Fix CLI bug regarding an empty user (#2646)Gravatar Alexandre Alapetite
Fix https://github.com/FreshRSS/FreshRSS/issues/2644
2019-11-06Fix database autocreate at install (#2635)Gravatar Alexandre Alapetite
* Fix database autocreate at install Several bugs prevented the auto-creation of the database in Web and CLI installs. Fix https://github.com/YunoHost-Apps/freshrss_ynh/issues/84#issuecomment-549818408 * initDb https://github.com/FreshRSS/FreshRSS/pull/2635#discussion_r343107795
2019-10-26New environment variable COPY_LOG_TO_SYSLOG (#2591)Gravatar Alexandre Alapetite
* New environment variable COPY_LOG_TO_SYSLOG False by default. Makes it easy to monitor all logs from Syslog or STDERR (e.g. docker logs). * Suggestion of native constants
2019-10-23Workaround for MySQL limitation 1093 (#2586)Gravatar Alexandre Alapetite
* Workaround for MySQL limitation 1093 https://github.com/FreshRSS/FreshRSS/pull/2335#issuecomment-545194606 including minor Travis fixes
2019-10-23Feature/new archiving (#2335)Gravatar Alexis Degrugillier
* Change archiving config page layout I've changed some wording and moved actions into a maintenance section. * Update purge action Now we have more control on the purge action. The configuration allows us to choose what to keep and what to discard in a more precise way. At the moment, the configuration applies for all feeds. * Add purge configuration on feed level Now the extend purge configuration is available on feed level. It is stored as attributes and will be used in the purge action. * Update purge action Now the purge action uses the feed configuration if it exists and defaults on user configuration if not. * Add empty option in period list * Fix configuration warnings * Add archiving configuration on categories See #2369 * Add user info back * Add explanations in UI * Fixes for SQLite + error + misc. * Fix invalid feed reference * Short array syntax Only for new code, so far * Fix prefix error * Query performance, default values Work in progress * Fix default values and confirm before leaving Form cancel and confirm changes before leaving were broken. And start taking advantage of the short echo syntax `<?= ?>` as we have moved to PHP 5.4+ * More work * Tuning SQL * Fix MariaDB + performance issue * SQL performance * Fix SQLite bug * Fix some attributes JSON encoding bugs Especially for SQLite export/import * More uniform, fix bugs More uniform between global, category, feed settings * Drop special cases for old articles during refresh Instead will use lastSeen date with the new archiving logic. This was generating problems anyway https://github.com/FreshRSS/FreshRSS/issues/2154 * Draft drop index keep_history Not needed anymore * MySQL typo Now properly tested with MySQL, PostgreSQL, SQLite * More work for legacy values Important to avoid overriding user's preference and risking deleting data erroneously * Fix PHP 7.3 / 7.4 warnings @aledeg "Trying to use values of type null, bool, int, float or resource as an array (such as $null["key"]) will now generate a notice. " https://php.net/migration74.incompatible * Reintroduce min articles and take care of legacy parameters * A few changes forgotten * Draft of migration + DROP of feed.keep_history * Fix several errors And give up using const for SQL to allow multiple database types (and we cannot redefine a const) * Add keep_min to categories + factorise archiving logic * Legacy fix * Fix bug yield from * Minor: Use JSON_UNESCAPED_SLASHE for attributes And make more uniform * Fix sign and missing variable * Fine tune the logic
2019-10-05add dsnParams to exception log (#2559)Gravatar Robert Kaussow
2019-10-05Add optional database connection URI parameters (#2552)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/2549
2019-10-01Trim whitespace (#2544)Gravatar Alexandre Alapetite
2019-09-29PDO refactoring for code simplification (#2522)Gravatar Alexandre Alapetite
* PDO refactor * Automatic prefix when using the syntax `_tableName` * Uniformity: MySQL is now PDO::ATTR_EMULATE_PREPARES = false just like SQLite and PostgreSQL, with consequences such as only one statement per query * Use PDO methods exec(), query(), prepare() + execute() in a more efficient way * Remove auto-update SQL code for versions older than FreshRSS 1.5 (3 years old) * The name of the default category is set in PHP instead of in the DB (simplies SQL and allows changing the name according to the FreshRSS language) * Rename `->bd` to `->pdo` (less of a frenshism, and more informative) * Fix some requests, which were not compatible with MySQL prepared statements * Whitespace * Fix syntax for PostgreSQL sequences + MySQL install * Minor formatting * Fix lastInsertId for PostgreSQL * Use PHP 5.6+ const Take advantage of https://github.com/FreshRSS/FreshRSS/pull/2527 https://www.php.net/manual/en/migration56.new-features.php * A bit of forgotten PHP 5.6 simplification for cURL * Forgotten $s * Mini fix custom user config https://github.com/FreshRSS/FreshRSS/pull/2490/files#r326290346 * More work on install.php but not finished * install.php working * More cleaning of PDO in install * Even more simplification Take advantage of PDO->exec() to run multiple statements * Disallow changing the name of the default category https://github.com/FreshRSS/FreshRSS/pull/2522#discussion_r326967724
2019-09-18Remove JSON.php fallback (#2528)Gravatar Alexandre Alapetite
After moving to PHP 5.6+ https://github.com/FreshRSS/FreshRSS/pull/2527 it should not be necessary to have the JSON.php fallback anymore, which was mainly there due to an obscure licensing issue 6 years ago in Debian https://wiki.debian.org/qa.debian.org/jsonevil , which broke Ubuntu 13.10 https://github.com/FreshRSS/FreshRSS/issues/306
2019-09-17Require PHP 5.6+Gravatar Alexandre Alapetite
Discussion https://github.com/FreshRSS/FreshRSS/pull/2495#issuecomment-531911473 Needed for constant arrays https://www.php.net/manual/en/migration56.new-features.php which will be used in https://github.com/FreshRSS/FreshRSS/pull/2522
2019-09-15CLI to export/import any database to/from SQLite (#2496)Gravatar Alexandre Alapetite
* CLI to export/import any database to/from SQLite Require PHP 5.5+ https://github.com/FreshRSS/FreshRSS/pull/2495 * Travis * Execution rights * Fix wrong static fields * Fix MySQL bad default buffering https://stackoverflow.com/questions/6895098/pdo-mysql-memory-consumption-with-large-result-set/6935271#6935271 https://php.net/manual/ref.pdo-mysql * Fix count on progression * Avoid static DB information To ease working with two DBs at the same time * Less static, simplify Needs some testing * Small corrections * Special case for SQLite to SQLite * Modify special case for SQLite * Remove special case for SQLite More uniform logic for the 3 databases. Fix wrong DROP TABLE for SQLite. * Drop indexes * Revert "Drop indexes" This reverts commit f28d2bae0935745c1c74ea38f2ee083f3fd4bf9d. * Fix deletion * Fix classic export * Update cli/README.md Co-Authored-By: Marien Fressinaud <dev@marienfressinaud.fr> * Addressing part of review * Remove goto :cry: * Travis * Comment for SQLite case * Fix missing fields when inserting
2019-08-29Provide email address verification feature (#2481)Gravatar Marien Fressinaud
* Add an email field to the profile page I reuse the `mail_login` from the configuration. I'm not sure if it's useful today (I would say it was used when Persona login was available). A good improvement would be to rename `mail_login` into `email` so it would be more intuitive to use. * Add boolean to the conf to force email validation This commit only adds a configuration item. * Add email during registration if email must be validated * Set email token to validate when email changes * Block access to FreshRSS if email is not validated * Send email when address is changed * Allow to resend the validation email * Allow the user to change its email while blocked * Document the email validation feature * fixup! Allow the user to change its email while blocked * tec: Autoload PHPMailer lib * Validate email address format * Add feedback on validation email resend action * Allow to logout when user is blocked * fix: Change default email "from" * Reorganize i18n keys * Complete all the locales with default english * Hide sidebar (profile page) if email is not validated * Check email requirements on registration * Allow admin to specify email when creating users * Don't check email format if value is empty * Remove trailing comma in userController Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr> * Set PHPMailer validator to html5 before sending email * fixup! Remove trailing comma in userController
2019-08-22Minz: New environment variable to control development mode (#2508)Gravatar Alexandre Alapetite
* New environment variable to control development mode Suggestion of new enviromnent variable, as discussed https://github.com/FreshRSS/FreshRSS/pull/2492#issuecomment-523613920 * Update Docker/README.md Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com> * Update Docker/README.md Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com> * Update Docker/README.md Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com> * Declare ENV in Dockerfile Tested
2019-08-20Require PHP 5.5+ (#2495)Gravatar Alexandre Alapetite
* Require PHP 5.5+ https://github.com/FreshRSS/FreshRSS/issues/2469#issuecomment-522255093 I think it would be reasonable to require PHP 5.5+ for the core of FreshRSS after all. As Frenzie said, WordPress currently requires PHP 5.6.20+, and it is the most popular PHP application. We would loose about 20% of the PHP servers according to https://w3techs.com/technologies/details/pl-php/5/all but I expect this number to drop fast after the release of CentOS 8 (CentOS accounts for 17% of Linux servers https://w3techs.com/technologies/details/os-linux/all/all ). Distributions: * no impact on Ubuntu, Fedora, Alpine, OpenWRT, FreeBSD, OpenSuze, Mageia, as all active versions have PHP > 7 * no impact on OpenSuze, Synology, as all active versions have PHP > 5.5 * we drop Debian 8 Jessie (-2020) - we keep supporting Debian 9 Stretch (2017-06) - current is Debian 10 Buster * we drop Red Hat 7 (-2024) - we keep supporting RHEL 8 (2019-05) * we drop CentOS 7 (-2024) - we will support CentOS 8 (to be released soonish) When dropping older versions, I can better like when it is for a good reason, and there is actually one with PHP 5.5, namely generators (yield) https://php.net/language.generators.overview which I consider using. * Version note for JSON.php * hex2bin * Update .travis.yml Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com>
2019-08-15tec: Provide a Minz_Mailer class (#2476)Gravatar Marien Fressinaud
* Add Minz_View::_path method (replace change_view) The `_path` method is more powerful since it allows to choose the file extension. It is also Minz_Request-agnostic, which is useful to reuse the Minz_View class in other places. `change_view` is now deprecated and a warning is logged if we use it. * Provide a Minz_Mailer to send emails It uses PHPMailer under the hood and only supports PHP >= 5.5
2019-08-14Add hooks to ExtensionManager (#2482)Gravatar Marien Fressinaud
Hooks allow to: - add items in menus - perform new actions at the end of FreshRSS initialization
2019-08-02Allow to change the view layout (#2467)Gravatar Marien Fressinaud
The `_useLayout` function is marked as deprecated, replaced by a more powerful `_layout` function.
2019-07-31Patch for #2460: Run on Apache 2.4+ without mod_access_compat (#2461)Gravatar koocotte
* Update .htaccess * Update htaccess for apache2.4 * Update htaccess for apache2.4 * Update htaccess for apache2.4
2019-04-07Fix PHP 5.5 compat for array const (#2360)Gravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/2359
2019-04-06Ensure sanitizeHTML gets a string (#2351)Gravatar Alexandre Alapetite
Regression triggered by https://github.com/FreshRSS/FreshRSS/pull/2228
2019-04-06SimplePie 604 (#2350)Gravatar Alexandre Alapetite
Cherry-pick https://github.com/simplepie/simplepie/pull/604
2019-04-02Shortcuts legacy (#2320)Gravatar Alexandre Alapetite
Fix https://github.com/FreshRSS/FreshRSS/issues/2316
2019-03-23Add header to cli (#2296)Gravatar Alexis Degrugillier
* Add header to cli Now there is a switch to display the header on user info. While doing that, I've changed how the command is working to display all users by default and to accept more than one user at once. I also changed the display to make it more pleasing. As this command displays all users by default. I wonder if we still need the list user command. See #2294 * Minor format
2019-03-19No old ID (#2276)Gravatar Alexandre Alapetite
* No old ID https://github.com/FreshRSS/FreshRSS/issues/2273 * PostgreSQL insert or ignore
2019-02-13Less jQuery (#2234)Gravatar Alexandre Alapetite
* Less jQuery Follow-up of https://github.com/FreshRSS/FreshRSS/pull/2199 * Even less jQuery + global view unread title fix * Even less jQuery * Yet even less jQuery * Even less jQuery * Reduce some events * Even less jQuery * jQuery gone from main view +Fixed English i18n * Fix feed folded view * Remove Firefox 64 workaround Remove workaround for Gecko bug 1514498 in Firefox 64, fixed in Firefox 65 * Split to extra.js Avoid loading unneeded JavaScript code for the main view. + several adjustements * Improve CSS transition fold category * Rewrite shortcuts Remove library. Much faster, shorter, one listener instead of many. Control of the shortcut context. Fix https://github.com/FreshRSS/FreshRSS/issues/2215 * Remove debug * Minor syntax * Filter out unwanted shortcut modifiers * Menu overflow fix * Typo * Fix unfolding in mobile view * Remove jQuery from category.js * Remove jQuery from Global view
2019-01-08COPY_SYSLOG_TO_STDERR (#2213)Gravatar Alexandre Alapetite
Update of https://github.com/FreshRSS/FreshRSS/pull/2208 Fixes https://github.com/FreshRSS/FreshRSS/issues/2212
2019-01-06Copy syslog to STDERR (#2208)Gravatar Alexandre Alapetite
* Use openlog before syslog In order to have a copy on stderr when syslog is not available. * Take advantage of syslog for actualization Pipe cron job STDERR and syslog to Docker log Cf. https://github.com/FreshRSS/FreshRSS/pull/2202/commits/00bd467655b7c060cdae388519b2413d12d8cb0f