Commit Graph

2194 Commits

Author SHA1 Message Date
Alexandre Alapetite
bb9b166eb1 Fix CLI api_password (#3179)
* 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-09-17 09:43:39 +02:00
Nico Kaiser
5389dd5ddb i18n update for German (#3175)
This adds and improves some German translations.
2020-09-10 18:20:22 +02:00
Alexandre Alapetite
be5f9f2dce When ssl_verify is false, decrease SSL security (#3171)
When ssl_verify option is set to false for a feed, allow lower security such as SHA-1 signatures.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900984
https://stackoverflow.com/questions/58342699/php-curl-curl-error-35-error1414d172ssl-routinestls12-check-peer-sigalgwr
Fix error of type `cURL error 35: error:1414D172:SSL routines:tls12_check_peer_sigalg:wrong signature`
Example of feeds:
https://www.version2.dk/it-nyheder/rss
https://ing.dk/rss/nyheder
2020-09-03 10:35:23 +02:00
Alexandre Alapetite
6fac0e40c4 Fix tag in user query (#3168)
* Fix tag in user query

#fix https://github.com/FreshRSS/FreshRSS/issues/3163

* Fix Travis
2020-09-02 08:55:43 +02:00
Luc SANCHEZ
e527afa2fa Add variable undeclared ($url) (#3164)
* Add variable undeclared ($url)

* Update ZipException.php

* modify
2020-09-01 12:50:28 +02:00
Luc SANCHEZ
ca965a490d Fix variable undeclared ($sql) (#3165)
* Fix variable undeclared ($sql)

* Update DatabaseDAOSQLite.php

modify
2020-09-01 12:50:00 +02:00
Alexandre Alapetite
48345403df Trim whitespace for feed passwords (#3158)
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-08-29 12:16:20 +02:00
Alexis Degrugillier
ee31722072 Change feed order in a category (#3131)
Before, the sorting was not human readable. Lower-cased feed names were
displayed after upper-cased feed names.
Now, the sorting is human readable. The sorting is done without taking into
account the name case.

See #3128
2020-08-05 09:40:58 +02:00
Alexandre Alapetite
c523f5a4e7 Relaxed to allow underscore _ in URL hostnames (#3133)
* Relaxed to allow underscore _ in URL hostnames

#fix https://github.com/FreshRSS/FreshRSS/issues/3132
https://bugs.php.net/bug.php?id=64948

* Minor fix in favicons redirect

* Minor fix in relative HREF for favicons
2020-07-31 16:33:45 +02:00
Mejans
48da9cb5b3 i18n update for Occitan (#3134)
* Update admin.php

* Update conf.php

* Update feedback.php

* Update gen.php

* Update sub.php
2020-07-30 15:35:32 +02:00
Frans de Jonge
5cee45922b [i18n] Update en-UK grammar and style (#3068)
Taken from <https://github.com/FreshRSS/FreshRSS/pull/3060>
2020-07-23 20:36:49 +02:00
Frans de Jonge
a23a7f2dbb [lang] Tags management → tag management (#3125)
* [lang] Tags management → tag management

Cf. <https://github.com/FreshRSS/FreshRSS/pull/3121#issuecomment-662922474>.

* Move tag management underneath subscription management
2020-07-23 12:15:46 +02:00
Alexis Degrugillier
909fdaca31 Add tag management page (#3121)
The new page allows to create, delete and rename tags.

See #3058
2020-07-23 11:31:38 +02:00
Alexis Degrugillier
399ce39579 Add language in JS context (#3116) 2020-07-14 12:31:47 +02:00
Alexis Degrugillier
f5676273fc Add tooltips on entries (#3115)
See #3111
2020-07-14 11:50:36 +02:00
Alexis Degrugillier
35eed83b64 Add a way to disable shortcuts (#3114)
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-07-14 11:02:30 +02:00
Alexis Degrugillier
8d8211b2a5 Add machine-readable dates in views (#3106)
This will allow to make some transformations on dates when needed.
See #3103 and #853
2020-07-14 10:51:45 +02:00
Germs2004
cada19eb87 US-English translation improvement (#3112) 2020-07-14 09:56:01 +02:00
Alexandre Alapetite
b7fd6d2d94 Show feed name inside the article (#3081)
* Show feed name inside the article

#fix https://github.com/FreshRSS/FreshRSS/issues/3079

* Normal view add date in subtitle

#fix
https://github.com/FreshRSS/FreshRSS/issues/3079#issuecomment-650109551
2020-07-13 15:46:50 +02:00
Marien Fressinaud
8619cf6fa6 Add a migration system (#2760)
* Add a Minz_Migrator class

Until now, we updated the database structure somewhere in the code but
it wasn't always consistent and somehow complicated to find. Also, this
code was always checked for nothing.

The Migrator aims to improve and ease the creation of migrations. It
should improve the way we apply the updates, making the update server
almost useless.

References:

- example of migration (before Migrator): cc0db9af4f (diff-11a53443fa81512b128c66b065df0679R10)
- update server: https://github.com/FreshRSS/update.freshrss.org
- PR moving the code of the update server to the core: https://github.com/FreshRSS/FreshRSS/pull/1760

* Automatically apply migrations

For now, administrators are used to have nothing to do during an update
else than getting the new code. I suggest to keep this behaviour and
automatically apply migrations if we detect new ones.

Another solution would be to create a CLI command and ask admins to call
it after getting the new code. It could hide migrations errors to end
users, but admin can forget to apply migrations since there are not used
to it.

* Add documentation for Minz Migrator

* Execute migrations even if next ones are applied

* Change mechanism to prevent multiple update at once

* Use mkdir to create the lock and to test it exists

Reference: https://stackoverflow.com/a/731634

* Append .lock to applied_migrations_path

There are no needs to define another file to serve as a lock.

* Change migrations naming convention

* Apply suggestions from code review

Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr>

* Perform a low-cost migration versions comparaison

* Clarify version numbers concerning the migration system

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-07-08 12:11:55 +02:00
Alexandre Alapetite
3f9518b377 Hide feed credentials when adding a new feed (#3099)
Avoid showing HTTP Basic Auth credentials in feed error log and in feed
title (when there is no title provided)
2020-07-07 10:54:28 +02:00
Alexandre Alapetite
cbcbd64acf Fix HTTP Basic Auth when adding a new feed (#3098)
#fix https://github.com/FreshRSS/FreshRSS/issues/3097
Error from https://github.com/FreshRSS/FreshRSS/pull/3027
2020-07-06 23:14:21 +02:00
Alexandre Alapetite
051f1649f7 FeedMe table manage feeds + fix warning addFeed (#3075)
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-21 10:30:12 +02:00
Alexandre Alapetite
b9d2e6457a Fetch feed name / website / description if empty (#3071)
#fix https://github.com/FreshRSS/FreshRSS/issues/3067
2020-06-20 16:54:03 +02:00
bpatath
5c9d6a5396 Add auto-registration when using http_auth (#3003)
* Add auto-registration when using http_auth

* Document HTTP auth auto-registration

* Check email variable for HTTP auth auto-registration

* Auto-create HTTP users by default

* Fix Context init

(I will provide in another PR a better fix requiring a bit of global refactoring)

* Init language

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-06-19 23:01:19 +02:00
Ed Sandor
baaef3d9f4 3041 en us localization (#3060)
* Initial locaization from international english to United States English

examples:
favourite -> favorite
optimise -> optimize
occured -> occurred
labelled -> labelled
ok -> okay

* More spelling corrections

default English occured->occurred
cancelled -> canceled
labelled -> labeled

* Undo key spelling change

* i18n format and admin.php translating

* Translating admin.php

* more admin.php translating

* Translating conf.php

* Translating feedback.php and format command

* Translating gen.php

* Translating index.php

* Translating sub.php

* Translating user.php

* Translating install.php

* Fix 'there is no idle feed'

* FIx 'there is no feed to refresh"

* Add i18n manipulation option to ignore all unmodified translation keys

* Lint fixes

* Update keys newly add since original branch

* Revert unintenntional ru 'translation'

* Code review revisions

* Fix leading whitespace in ignore_unmodified api

* Update app/i18n/en-us/gen.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update app/i18n/en-us/admin.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update app/i18n/en-us/admin.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update error message for Make ignore-unmodified keys to use Make syntax.
(inline with 3062) Also rename ignore-unmodifed-key ->
ignore-unmodified-keys

* Replace makefile leading spaces with tabs

* Code review revisions

* Retab added php functions

* Missed tab replace

* Remove stray '-> todo'

Co-authored-by: root <root@x-freshrss.lan.ewsandor.com>
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2020-06-19 22:59:27 +02:00
Frans de Jonge
9489cca1e3 [i18n] Update Dutch translation (#3063) 2020-06-16 09:49:21 +02:00
Alexis Degrugillier
caeb660f29 Add a way to disable/enable users (#3056)
If you want to block users without deleting their account, you can now
disable them from the interface.
2020-06-14 19:50:09 +02:00
Alexandre Alapetite
6edbeaaf6a Add error log (#3055)
For https://github.com/FreshRSS/FreshRSS/issues/3054
2020-06-13 21:19:19 +02:00
Marien Fressinaud
15505a0377 tec: Refactor the export feature (#3045)
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-13 19:36:24 +02:00
Alexis Degrugillier
b2b249d6d6 Fix user queries when they contain " (#3037)
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-06 20:59:53 +02:00
Alexis Degrugillier
1694264e2c Modify shebang to be more portable (#3038)
The new shebang is a portable way to find the php interpreter. It works
on Mac, GNU/Linux and BSD.
2020-06-06 19:04:21 +02:00
Alexis Degrugillier
dc68783fc8 Add controls on media (#3036)
Now, there is a shortcut to play or pause media available from an
entry. If there is more than one media available, only the first
one will be targeted.

See #1952
2020-06-05 23:37:05 +02:00
Alexis Degrugillier
8c4d71da2e Add missing translations (#3034)
* 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-05 20:16:04 +02:00
Alexis Degrugillier
36bda2e715 Add language detection when the user is not logged in (#3022)
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-05 10:10:46 +02:00
Alexis Degrugillier
d4554fa087 Change add feed action (#3027)
* 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-06-05 10:09:31 +02:00
Tibor Repček
2a4fed6c23 Update gen.php (#3020) 2020-05-31 22:32:37 +02:00
Alexandre Alapetite
e58ad65902 Fix display_categories upgrade from 1.16.0 again (#3019)
* Fix display_categories upgrade from 1.16.0 again

#fix https://github.com/FreshRSS/FreshRSS/issues/3017
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/3018
There were two bugs. I forgot that `ConfigurationSetter.php` is not
called when reading `config.php`

* Changelog 3019
2020-05-30 22:48:00 +02:00
Alexandre Alapetite
f6bfcba827 Fix display_categories upgrade from 1.16.0 (#3018)
* Fix display_categories upgrade from 1.16.0

#fix https://github.com/FreshRSS/FreshRSS/issues/3017
The property `'display_categories' => boolean,` in 1.16.0 is not properly converted to `'display_categories' => 'string',` in 1.16.1 due to a weak type comparison bug.
2020-05-30 21:06:46 +02:00
Alexandre Alapetite
fe1e02dab9 Fix PostgreSQL database auto-create with limited rights (#3013)
* 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-29 23:55:53 +02:00
Frans de Jonge
015cd1e06e [i18n] Update Dutch translation for 1.16.1 (#3005)
See <https://github.com/FreshRSS/FreshRSS/issues/2994>.
2020-05-26 17:04:59 +02:00
Alexandre Alapetite
e1ef88d815 Fix memory leak when using lib_phpQuery (#3004)
* Fix memory leak when using lib_phpQuery

This library keeps documents in static class, so it requires a special
call to clean them.

* Another unload
2020-05-25 16:02:52 +02:00
Alexandre Alapetite
39df5a8041 Revert FOUC fix (#2991)
Revert https://github.com/FreshRSS/FreshRSS/pull/2913
I have not seen any difference with/without this fix, and it might be
due to the fact that is is blocked by CSP.
At least in Chrome, it generates CSP warnings.
If it should be re-introduced, see warning suggestions:

> Refused to execute inline script because it violates the following
Content Security Policy directive: "default-src 'self'". Either the
'unsafe-inline' keyword, a hash
('sha256-gcoEgwf1rABkUXPaVY2M1RH34tUHWGDn9nAAn/kGYUE='), or a nonce
('nonce-...') is required to enable inline execution. Note also that
'script-src' was not explicitly set, so 'default-src' is used as a
fallback.
2020-05-21 20:55:28 +02:00
Alexandre Alapetite
857f588790 Fix fetch preview (#2993)
* 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-21 20:55:06 +02:00
Alexandre Alapetite
b906d79d61 getContentByParsing follow HTML redirections (#2985)
* getContentByParsing follow HTML redirections

Add the ability to follow HTML redirections in getContentByParsing:

```html
<meta http-equiv="Refresh" content="1; url=https://example.net/article123.html" />
```

* Better regex

* Trim http-equiv
2020-05-21 11:56:55 +02:00
Alexandre Alapetite
0442243037 Fix nav_menu mark-as-read (#2909)
* 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-18 18:45:47 +02:00
Alexandre Alapetite
83b5944dcb Stream instead of memory copy of SimplePie entries (#2972)
* 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-17 00:04:51 +02:00
Alexandre Alapetite
6f3e5d99b4 Revert to STDOUT for cron messages (#2979)
#fix https://github.com/FreshRSS/FreshRSS/issues/2975
2020-05-15 18:23:15 +02:00
Marien Fressinaud
8487fa6248 Reformat i18n correctly (#2976)
* Ignore i18n gen.dir key

* Add a makefile target to update an i18n key

* Mark some i18n keys to ignore

* Reformat i18n files correctly

* Make i18n keys sort case-sensitive

Calling `make i18n-format` was always inverting 4 lines:

- gen.date.dec with gen.date.Dec
- and gen.date.nov with gen.date.Nov

I don't know why these particular lines and not the others, but it
appeared the sort function was case insensitive due to the
`SORT_FLAG_CASE` flag passed to the `ksort` function. Removing this flag
makes the calls to the formatter idempotent and more reliable.

Unfortunately it moves a lot of lines since the `_` character is
considered differently.

* Check i18n files are correctly formatted on Travis
2020-05-15 17:31:21 +02:00
Craig Andrews
62a42a2063 Delay the feeds actualization start notice (#2974)
* Delay the feeds actualization start notice

Move the actualization start notice until after SIMPLEPIE_SYSLOG_ENABLED is defined.

Fixes https://github.com/FreshRSS/FreshRSS/issues/2973

* Update app/actualize_script.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-05-15 17:23:20 +02:00