Commit Graph

7003 Commits

Author SHA1 Message Date
Alexandre Alapetite
8dfe209799 Possiblity to autoinstall in Docker Compose (#3353)
* Possiblity to autoinstall in Docker Compose

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

It is simply calling our existing CLI: do-install.php and
create-user.php
https://github.com/FreshRSS/FreshRSS/tree/master/cli

FreshRSS will typically be ready a few seconds before the database, so
introduce a tolerance when the database is not available / up (yet) by
trying a few times to connect. Also useful to avoid service interruption
when DB service is restarted.

Example:

```yml
freshrss-app:
    image: freshrss/freshrss
    container_name:
freshrss-app
    hostname: freshrss-app
    restart: unless-stopped

ports:
      - "8080:80"
    depends_on:
      - freshrss-db

volumes:
      - data:/var/www/FreshRSS/data
      -
extensions:/var/www/FreshRSS/extensions
    environment:
      CRON_MIN:
'*/20'
      FRESHRSS_ENV: development
      FRESHRSS_INSTALL: |-

--api_enabled
        --base_url https://rss.example.net

--db-base freshrss
        --db-host freshrss-db
        --db-password
freshrss
        --db-type pgsql
        --db-user freshrss

--default_user admin
        --language en
      FRESHRSS_USER: |-

--api_password freshrss
        --email user@example.net

--language en
        --password freshrss
        --user admin
      TZ:
Europe/Paris
```

* Minor type f in find

* shellcheck
2021-01-11 22:36:50 +01:00
Alexis Degrugillier
fd82587756 Add filters on images and video (#3356)
As this theme is a dark theme, I figured that it would be better
to filter images and videos to ease reading when bright elements
are included.
2021-01-11 22:36:06 +01:00
Craig Andrews
f9687ea18a Fix commitNewEntries query (#3357)
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-11 22:28:35 +01:00
ldv8434
8584f49858 adding self CREDITS.md (#3354) 2021-01-10 16:44:59 -05:00
ldv8434
bf344cd302 Update and add to documentation (#3348)
* remove outdated mailing list information

* add information about normal view

* add information about global and reader view

* fix import section header

* reorder documentation to reflect menu's order

* clarify setting as default in normal view

* add info about reading section for config

* fix heading levels, add info about archive + profile sections

* unfix heading levels

* move section on feed-specific settings to the subscription management page

* update information about adding feeds, add information about feed management

* fix link to security page in installation

* fix broken links

* fix broken link to install page

* add lighttpd from project readme

* add php modules to step 4, add horizontal line to better separate steps from footnotes visually

* fix broken link

* add index page for easier access of other pages

* move first steps document

* make dedicated bug reporting page

* make index page for linking to other pages

* moved fever API to relevant location, linked to index

* remove outdated mailing list information

* add information about normal view

* add information about global and reader view

* fix import section header

* reorder documentation to reflect menu's order

* clarify setting as default in normal view

* add info about reading section for config

* fix heading levels, add info about archive + profile sections

* unfix heading levels

* move section on feed-specific settings to the subscription management page

* update information about adding feeds, add information about feed management

* fix link to security page in installation

* fix broken links

* fix broken link to install page

* add lighttpd from project readme

* add php modules to step 4, add horizontal line to better separate steps from footnotes visually

* fix broken link

* add index page for easier access of other pages

* move first steps document

* make dedicated bug reporting page

* make index page for linking to other pages

* moved fever API to relevant location, linked to index

* re-fix link

* remove mention of defunct mailing list

* grammar fix

* replace stream with feed

* add optional items, replace stream with feed

* replace stream with feed

* fix word choice

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

* fix word choice

better reflect age of project

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

* grammar fixes

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

* remove double headings

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

* change single quote to double quote for consistency

* add subreddit link

* change php module list to Dockerfile link

* fix link to developer index, change html links to md for consistency

* update css selector terms

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

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2021-01-10 20:50:54 +01:00
Alexandre Alapetite
ee7938ed5f Do not import feed causing DB error (#3347)
* 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-09 20:51:33 +01:00
Alexis Degrugillier
f5fdbb9e82 Add class autoload for extension (#3350)
When an extension defines an `autoload` method, it will be registered
automatically before enabling the extension.
For the extension creator, it's easier because there is no need to
register it manually.
2021-01-09 20:49:45 +01:00
Alexis Degrugillier
896f9d3363 Add user query manual sorting (#3346)
* 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-09 01:47:20 +01:00
Alexis Degrugillier
5e4c392cf2 Document the SQLite utilities usage (#3344)
There is a CLI command to export from any database to a SQLite database
and also a CLI command to import a SQLite database to any database than
need to be documented.

See #961
2021-01-09 01:45:36 +01:00
Alexandre Alapetite
69060cda33 Docker: Environment variable to change Apache port (#3343)
#fix https://github.com/FreshRSS/FreshRSS/issues/3341

New environment variable `LISTEN='0.0.0.0:8080'`

```
docker run -d --network host --uts host -e LISTEN='0.0.0.0:8080' -e
TZ=Europe/Paris --name freshrss   freshrss/freshrss
```
2021-01-07 23:32:39 +01:00
Alexis Degrugillier
85cbfcedb5 Update user query feature (#3338)
* 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-07 21:47:39 +01:00
Clemens Neubauer
ef458992c1 two new hooks (#3342)
* add two new hooks

I develop a new extension and i need 2 new hooks for it

* update EN documentation

* Correct typing errors

* Update app/views/helpers/javascript_vars.phtml

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-01-07 21:45:48 +01:00
Alexis Degrugillier
bfd872e885 Change base extension class type (#3333)
Before, there were some guidelines on how to use the extension class and how to extend it. Those guidelines were defined as comments.
Now, those guidelines are enforced by the code itself. There is no need for those comments anymore.
2021-01-07 21:37:59 +01:00
Alexis Degrugillier
9aa3c03844 Add a deprecation log error for extensions (#3335)
Extensions must override some parent methods. The rule is just a
guideline because only described in comments. The idea is to
deprecate that flexibility and add it to the code. To warn users
beforehand, we log error message regarding incomplete extensions.

See #3333
2021-01-04 23:59:36 +01:00
Alexis Degrugillier
739080ff10 Add autofocus on subscription page (#3334)
Before, there was no autofocusing on the subscription page. It feels
a bit off since most of the time, when you're landing on that page
you want to add a new feed.
Now, the focus is on the feed URL input to smooth the process of adding
a feed.
2021-01-04 20:31:31 +01:00
Alexandre Alapetite
27e5d539d0 Changelog + credits 2021-01-03 23:43:19 +01:00
rom-1
f499551cd0 Fix British English Date Format (#3326)
* Update British English Date Format

The default Date Format for British English is actually not like the american one (M/D/Y), but more like the same as the rest of Europe (D/M/Y).

* update translations

* not American style though

* Update gen.php

* Date Format -> No dot after day (British)

* Date Format -> No dot after day (British)

* Date Format -> No dot after day (British)

* Apply suggestions from code review

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

* getting rid of unnecessary slashes

* getting rid of unnecessary slashes

* american time format -> 12h

* adding format_date to ignore

have no idea what I am doing here ;)
https://github.com/FreshRSS/FreshRSS/pull/3326#issuecomment-753620690

* adding format_date to ignore

have no idea what I am doing here ;)
https://github.com/FreshRSS/FreshRSS/pull/3326#issuecomment-753620690

* adding format_date to ignore

have no idea what I am doing here ;)
https://github.com/FreshRSS/FreshRSS/pull/3326#issuecomment-753620690

* adding format_date to ignore

have no idea what I am doing here ;)
https://github.com/FreshRSS/FreshRSS/pull/3326#issuecomment-753620690

* adding format_date to ignore

have no idea what I am doing here ;)
https://github.com/FreshRSS/FreshRSS/pull/3326#issuecomment-753620690

* adding format_date to ignore

have no idea what I am doing here ;)
https://github.com/FreshRSS/FreshRSS/pull/3326#issuecomment-753620690

* adding format_date to ignore

have no idea what I am doing here ;)
https://github.com/FreshRSS/FreshRSS/pull/3326#issuecomment-753620690

* adding format_date to ignore

have no idea what I am doing here ;)
https://github.com/FreshRSS/FreshRSS/pull/3326#issuecomment-753620690

* adding format_date to ignore

have no idea what I am doing here ;)
https://github.com/FreshRSS/FreshRSS/pull/3326#issuecomment-753620690

* Revert "adding format_date to ignore"

This reverts commit 66527f806b.

* Revert "adding format_date to ignore"

This reverts commit 77927fbb04.

* Revert "adding format_date to ignore"

This reverts commit a43eca4df9.

* Revert "adding format_date to ignore"

This reverts commit c05d209592.

* Revert "adding format_date to ignore"

This reverts commit 032082037e.

* Revert "adding format_date to ignore"

This reverts commit a3ca9835da.

* Fix Travis

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-01-03 20:45:07 +01:00
rom-1
aa3e41d4b3 Adding info about combining css classes (#3329)
* Adding info about combining css classes 

Adding info about combining css classes using comma separation

* Update 05_Configuration.md

* Apply suggestions from code review

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

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2021-01-03 20:37:57 +01:00
Alexis Degrugillier
022ed9912a Fix share option sort (#3331)
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-03 20:15:15 +01:00
Alexis Degrugillier
46c8f6e77b Add clipboard sharing (#3330)
When the discussion #3327 started, I thought that the clipboard share
is a good idea. It never occurred to me because I do not use a
smartphone.
It might need some polishing but it seems pretty usable as-is.

See #3327
2021-01-03 18:20:15 +01:00
Alexandre Alapetite
0567e38947 API more BazQux compatibility (#3320)
Implement compatibility fix, to allow the streamID / inclusion criteria
to be given as `&s=` parameter instead of in the URL path.
https://github.com/bazqux/bazqux-api#fetching-streams
This form of request is apparently sometimes used by FeedMe:

```

/api/greader.php/reader/api/0/stream/contents?output=json&n=100&xt=user%2F-%2Fstate%2Fcom.google%2Fread&ot=0&s=user%2F-%2Flabel%2FBlogs
```
2021-01-03 18:13:11 +01:00
rom-1
75440c6765 Update "Submit" -> "Save" as discussed in #3319 (#3325)
In German UI, "Submit" (Abschicken) is almost never used. Instead, people are used to have "Save" (Speichern) as text on their buttons.
https://github.com/FreshRSS/FreshRSS/issues/3319
2021-01-03 13:36:03 +01:00
Alexandre Alapetite
635748342c Fix init system (#3328)
#fix https://github.com/FreshRSS/FreshRSS/issues/3323
System would crash when no `FRESHRSS_ENV` environment was set, due to

31cb07ac1a/lib/Minz/FrontController.php (L116-L119)
2021-01-03 12:57:42 +01:00
Alexis Degrugillier
31cb07ac1a Fix author search link (#3315)
Before, when clicking on the author link, the search was done on the
main stream in the normal view. It's fine until the feed is not visible
in the main stream.
Now, the current context is used along with the search.

See #3314
2021-01-03 00:59:57 +01:00
Alexandre Alapetite
9c6682e7ed Avoid manual initialisations of system or user configuration (#3070)
* 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
2021-01-02 21:20:19 +01:00
rom-1
7bc2cc5825 Update translation remember_categories (#3318)
string was not translated to de
2021-01-02 20:06:51 +01:00
rom-1
eec3e41ecd Fixed wrong translation css_path & css_help (#3317)
especially css_path translation was plain wrong.
2021-01-02 20:05:18 +01:00
Alexis Degrugillier
082ef9854c Add section for text import (#3304)
See #663
2021-01-02 17:37:26 +01:00
Alexis Degrugillier
fc641b39ed Fix translation inconsistencies (#3316)
Translation inconsistencies mentioned in ticket #1783 have been addressed.
We need to think if we drop one of the strings to avoid translation
duplication.

See #1783
2021-01-02 17:14:51 +01:00
Alexis Degrugillier
08d76967b0 Add temp folder check during install (#3312)
Before, the temp path was not check during install. With some configuration,
FRSS was not working because of a non-writable temp directory. It happened
with XAMPP on MacOS X but it might be the case for other platforms.
Now, the temp path is checked during install to make sure it is writable.

See #3310
2021-01-02 17:14:23 +01:00
rom-1
ce9eb7b14c Adding rom-1 to CREDITS.MD (#3308) 2020-12-31 09:54:44 -05:00
rom-1
71c541db7f Update 03_Main_view.md (#3307)
adding to documentation: filtering a tag with whitespace
2020-12-31 14:50:13 +01:00
Alexandre Alapetite
5ca961b8d5 Fix bugs in anomymous mode (#3305)
* Fix bugs in anomymous mode

Login bug (submit button not working) and refresh bug (JS null
exception, and then 403).

* Take advantage of existing variable
2020-12-31 00:13:29 +01:00
Alexandre Alapetite
85f5dd4bef Docker new :newest image (#3294)
* Docker new :Edge image

New optional Docker image to test upcoming software versions, using
Alpine:Edge
Similar than https://github.com/FreshRSS/FreshRSS/pull/3274 (oldest
image) but for newest.
Usefull for e.g. testing PHP8
https://github.com/FreshRSS/FreshRSS/issues/3082 , MySQL 8
https://github.com/FreshRSS/FreshRSS/issues/3191

* Syntax if symlink already exists in future edge

* Rename to newest

Better match our "Oldest" version, and to avoid conflicts with the
potential renaming of our master branch

* Update Docker/Dockerfile-Newest

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

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2020-12-30 15:42:32 +01:00
Alexandre Alapetite
99c3263cbe Trim rid param from user query (#3306)
Caused by https://github.com/FreshRSS/FreshRSS/pull/3208
Before, the 'rid' parameter was saved as part of the user query.
2020-12-29 19:17:06 +01:00
Alexis Degrugillier
618cbaf0ce Remove Minz validation during install. (#3302)
As FRSS always comes with Minz, there is no need to validate that
it is there during install. If it turns out we need to validate that,
we might need to validate other libraries as well.
2020-12-29 00:12:17 +01:00
Alexis Degrugillier
3f4c86f80f Add a file for each PDO class (#3301)
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-29 00:11:34 +01:00
Alexandre Alapetite
0a2d9b3b54 Revert "Add a file for each PDO class (#3297)"
This reverts commit e1ee58816b.
2020-12-28 19:53:55 +01:00
Alexandre Alapetite
c246e5d74b Revert "Extract autoloading process (#3283)"
This reverts commit 46cb89adf8.
2020-12-28 19:47:39 +01:00
Alexis Degrugillier
465b40f52d Add a file for each Auth class (#3298)
It's a follow-up of what was started in #3297.
2020-12-28 16:44:32 +01:00
Alexis Degrugillier
e1ee58816b Add a file for each PDO class (#3297)
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-28 16:44:08 +01:00
Alexandre Alapetite
ac0d90c100 Auto-renew cookie (#3287)
#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-28 13:09:57 +01:00
Alexandre Alapetite
f7d69ad1de SimplePie Strip comments (#3288)
#fix https://github.com/FreshRSS/FreshRSS/issues/3282 (workaround an nginx configuration bug)

We do not need to keep HTML comments in RSS content.
2020-12-28 13:09:14 +01:00
Alexis Degrugillier
e93675e036 Fix tag management translation (#3292)
Before, feedback messages were not translated.
Now, they are.
2020-12-28 13:08:38 +01:00
Martin
6ecfc01c1f bump default logout from 30 days to 3 months (#3170)
* 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-26 23:40:24 +01:00
Alexandre Alapetite
2b0f93b013 Layout add subscription (#3289)
* Category first

I kept hitting the 'add' button for a category when adding a new feed

* Blanks

Mix of spaces
2020-12-26 20:30:49 +01:00
Alexandre Alapetite
4f74215199 Better OPML import of feeds in multiple categories (#3286)
#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-26 17:23:23 +01:00
Alexis Degrugillier
4abb30228b Fix user queries with labels (#3285)
Before user queries with labels were not translated. Actually, it was not
even processed.
Now those user queries are translated properly.

See #3215
2020-12-26 12:50:09 +01:00
Alexis Degrugillier
46cb89adf8 Extract autoloading process (#3283)
* Extract autoloading process

The process sits in its own file now to ease future improvements.

* Change the autoload process

Before, the autoload process was too restricted. It was really dependant on our
code tree. It was hard to add more classes to be loaded automatically. On top
of that, it did not support autoloading classes following the PSR-4 recommendation.

Now, the autoload process is more open. It supports partially the PSR-4 recommendation,
there is no specific code to load Minz classes or PHPMailer classes. This is the
starting point to reorganize the codebase to introduce long waiting changes as seen
in #789. It would be a nice to later rework the tree, rename classes, and add namespace
in a fashion that follows the PSR-4. Then specific FRSS workarounds in the autoload
could be dropped.
2020-12-26 12:47:39 +01:00
Alexandre Alapetite
abfbeb6b71 Cleaner use of session in install script (#3276)
Fix warning about session already started during install.
Refactor more code to use the same approach than in main FreshRSS.
Did not address all read accesses (not important) but did cover all
write accesses (important)
2020-12-22 17:37:19 +01:00