Commit Graph
100 Commits
Author SHA1 Message Date
Markus Heiser 8634eeb9de Merge branch 'master' of https://github.com/asciimoo/searx into filtron 2020-03-30 18:49:35 +02:00
Markus Heiser dd53c45a2c docs: add utils/lxc.sh docs, normalize filtron, morty & searx docs
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-30 18:47:01 +02:00
Markus Heiser 949378a07f Merge pull request #1900 from return42/issue-1898
export build variables / support brands
2020-03-30 14:51:40 +00:00
Markus Heiser 4e307edb2d docs: document Makefile setup and 'buildenv' (aka brand)
Add documentation of the Makefile environment (aka brand, buildenv), introduced
in PR #1900.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-30 13:31:13 +02:00
Markus Heiser e73abd9d8a Merge PR #1900 of https://github.com/asciimoo/searx into filtron 2020-03-30 13:26:26 +02:00
Markus Heiser 1ae39787c1 Makefile: rename target 'searx.brand' to 'buildenv'
And add 'buildenv' as an first order prerequisite to the main targets:

- install
- run
- docs
- docs-live
- project
- node.env
- docker
- test

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-30 12:23:01 +02:00
Markus Heiser 3e4d022d04 [fix] make test.sh: fix various shellcheck error messages
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-30 11:03:46 +02:00
Markus Heiser 5e2b161379 Makefile: marginal fix
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-29 16:46:07 +02:00
Markus Heiser 0742c2504d build environment: add GIT_BRANCH variable
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-29 16:28:17 +02:00
Markus Heiser 7b4cf2eb48 tooling box: simplify build enviroments
- no more need for a .config.mk
- docs: use searx.brands environment
- searx.sh, filtron.sh & morty.sh are sourcing utils/brand.env

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-29 15:09:34 +02:00
Markus Heiser 65b22be1f4 Merge PR #1900 of https://github.com/asciimoo/searx into filtron
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-29 13:03:27 +02:00
Markus Heiser ca65d41da5 [fix] travis: reomve 'make style' from travis build
Commit 8a16903a removes Makefile target style

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-29 12:22:02 +02:00
Markus Heiser 442b27ac1b bash: use build environment from Makefile
To Makefile target brand, add creation of bash environment in::

  utils/brand.env

In bash scripts (manage.sh) source env by::

  . utils/brand.env

manage.sh help: show GIT_URL and more environment

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-29 11:41:59 +02:00
Markus Heiser 8a16903a1c make themes: rename 'style' targtes to 'themes' targets
style.legacy could be renamed themes.legacy : it actually builds the files for
the legacy theme, then themes.legacy can be a dependency of themes.  Same for
the other styles.*

Debatable: about style.bootstrap, same convention : theme.bootstrap (even it is
more a toolbox for the oscar theme).

So there is no need to add the missing make styles in the help target.

thanks @dalf:

- https://github.com/asciimoo/searx/pull/1900#discussion_r399160355

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-29 11:29:57 +02:00
Markus Heiser ec453e0239 [fix] docker 'Error compiling' and 'SyntaxError' messages
The make docker target spits out some SyntaxError.  With this .dockerignore
there is no more error. Explanation:

- the python files are compiled while building the docker image
- a node modules contains some python files
- the python files inside the node module doesn't compile

It raises the fact that node_modules were included in the docker image which
should not happen.  Same the local directory was included.  Dockerfile builds
searx in its own way (without virtualenv)

Thanks @dalf:

- https://github.com/asciimoo/searx/pull/1900#issuecomment-604892737

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-29 11:06:22 +02:00
Markus Heiser d7523071a0 travis: use build environment from Makefile
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-26 19:14:07 +01:00
Markus Heiser 1075f58a72 test: move tests from manage.sh to Makefile
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-26 18:41:45 +01:00
Markus Heiser e7fbefa8bd build: move build styles from manage.sh to Makefile
To build all styles use:

  make styles

To build individual styles use one of:

  make style.legacy
  make style.courgette
  make style.pixart
  make style.bootstrap

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-26 18:00:07 +01:00
Markus Heiser 6846402d73 .gitignore: make package-lock.json visible
Even if we do not versioning them right now.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-26 15:35:32 +01:00
Markus Heiser 9717521981 Minor improvements of the HTML *about* page
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-26 13:45:37 +01:00
Markus Heiser 809e6f7933 make project: re-build generic files of the searx project
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-26 13:35:17 +01:00
Markus Heiser 00251d7c66 Makefile: add target 'useragents.update' to fetch versions of Firefox
Update searx/data/useragents.json with the most recent versions of Firefox.

BTW: add 'useragents.update' to 'project' target and clean up the Makefile and
remove it from the manage.sh script.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>

closes: https://github.com/asciimoo/searx/issues/1882
2020-03-26 13:32:08 +01:00
Markus Heiser 5d087ee466 Rewrite of the HTL *about* page
The *about* page should only address higher-level issues that are important to
each user.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-26 13:09:29 +01:00
Markus Heiser 3486613a19 brands: hardcode ISSUE_URL and some links on the about-page
A *brand* of searx is a fork which might have its own design and some special
functions which might bee reasonable in a special context.

In this sense, the fork might have its own documentation but not its own issue
tracker.  The *upstream* of a brand is always https://github.com/asciimoo from
where the brand-fork pulls the master branch regularly.  A fork which has its
own issue tracker is a spin-off and out of the scope of the searx project
itself.  The conclusion is:

- hard code ISSUE_URL (in the Makefile)
- always refer to DOCS_URL
- links in the about page refer to the *upstream* (searx project)
  except DOCS_URL
- "fork me on github" ribbons refer to the *upstream*

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-26 10:58:25 +01:00
Markus Heiser 3381471933 brands: add ISSUE_URL
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-25 17:48:34 +01:00
Markus Heiser 4d64828237 webapp.py: expose the brand variable in the /config URL.
E.g. helpful for searx-stats2

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-25 17:28:32 +01:00
Markus Heiser ace7d30aed webapp.py: partial code review (no functional change)
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-25 17:12:02 +01:00
Markus Heiser d471ec86dd Makefile: add target node.env - download & install npm dependencies
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-25 16:38:52 +01:00
Markus Heiser 2d12f221a7 [fix] docker build: set build argument LABEL_VCS_URL to GIT_URL
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-25 15:17:11 +01:00
Markus Heiser 3dbade0aed [fix] brands: add GIT_URL variable to the docker build
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-25 14:50:39 +01:00
Markus Heiser 757ebb5d9f [fix] brands: add variables from build env to grunt process
We have some variables in the build environment which are also needed in the
grunt process when building themes.  Theses variables are relavant if one
creates a fork with its own branding.  We treat these variables under the term
'brands'.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-25 14:09:47 +01:00
Markus Heiser aaf22baad2 make project: re-build generic files of the searx project
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-25 12:14:21 +01:00
Markus Heiser f6b29f68a1 [fix] brands: add variables from build env to setup.py
We have some variables in the build environment which are also needed in the
setup.py process.  Theses variables are relavant if one creates a fork with
its own branding.  We treat these variables under the term 'brands'.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-25 12:03:11 +01:00
Markus Heiser e84fc94300 [fix] brands: add variables from build env to sphinx-doc
We have some variables in the build environment which are also needed in the
sphinx-process.  Theses variables are relavant if one creates a fork with
its own branding.  We treat these variables under the term 'brands'.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-25 11:51:03 +01:00
Markus Heiser 04c687403e [fix] brands: add variables from build env to jinja templating
We have some variables in the build environment which are also needed in the
templating process.  Theses variables are relavant if one creates a fork with
its own branding.  We treat these variables under the term 'brands'.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-25 11:49:33 +01:00
Markus Heiser 1fcec0bbda lxc.sh install base: add bash and python3 to LXC_BASE_PACKAGES
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-23 18:06:35 +01:00
Markus Heiser baf1ffd1fa LXC: set LXC_ENV_FOLDER=lxc/$(shell hostname)/
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-23 18:05:46 +01:00
Markus Heiser 103c542b37 Merge branch 'filtron' of https://github.com/return42/searx into filtron 2020-03-23 15:15:31 +01:00
Markus Heiser 21ba25ebb8 Merge branch 'filtron' of https://github.com/return42/searx into filtron 2020-03-23 15:02:32 +01:00
Markus Heiser 95bed4910a Merge branch 'master' of https://github.com/asciimoo/searx into filtron 2020-03-23 14:46:25 +01:00
Markus Heiser baddb8d3eb Merge branch 'master' of https://github.com/asciimoo/searx into filtron 2020-03-21 18:46:26 +01:00
Markus Heiser 2d956696e9 docs: building (PDF) books / build user book
BTW: cleaned up Makefile target help

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-21 18:45:38 +01:00
Markus Heiser 62da769952 ./utils/lxc.sh: add command 'install base'
to install basic packages like git and *build essentials*::

  $ ./utils/lxc.sh install base

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-18 17:47:48 +01:00
Markus Heiser d2cfe9ce5b LXC: add /.lxcenv
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-18 15:34:46 +01:00
Markus Heiser 86e79488aa LXC: utils/makefile.lxc (inital) add /.lxcenv.mk to contaiiners
Get LXC environment when building make targets.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-15 17:01:36 +01:00
Markus Heiser 26b85659c0 Merge branch 'master' of https://github.com/asciimoo/searx into filtron 2020-03-15 09:19:26 +01:00
Markus Heiser 80f7b65804 searx.sh: add buildhost cmd, installs OS packages for builds
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-09 01:37:26 +01:00
Markus Heiser f5f83b8a99 shellcheck: minor fixes to support all dsitros
checked with::

  sudo ./utils/lxc.sh cmd -- make test.sh

on ubu1804, ubu1910, fedora31 and archlinux.  All checks OK except:

ubu1604: uses shellcheck v0.3.7 (from 04/2015) which is no longer supported!

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-08 18:37:16 +01:00
Markus Heiser 04ad648105 makefile.python: remove python2 support
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-08 18:35:38 +01:00
Markus Heiser 938bb02550 searx.sh: add commandline 'install packages'
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-08 18:32:30 +01:00
Markus Heiser d48c7bf678 LXC: fixed raw.idmap & removed obsolete uid/gid subordinate
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-08 18:30:25 +01:00
Markus Heiser e7f69b63f1 LXC: from searx.sh, morty.sh and filtron.sh tests
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-08 02:41:45 +01:00
Markus Heiser b1e90cff23 LXC: separate lxc-suite from lxc & improved command line.
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-07 20:24:08 +01:00
Markus Heiser a258358633 Merge branch 'master' of https://github.com/asciimoo/searx into filtron 2020-03-07 09:03:24 +01:00
Markus Heiser c15337850e fix: minor typos
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-06 22:06:19 +01:00
Markus Heiser 857a1458b1 docs: for example URLs use iana's example.org
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-06 15:04:12 +01:00
Markus Heiser 387c6a7769 docs: improve description of uwsgi & ngingx setup
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-06 14:47:00 +01:00
Markus Heiser cbc08fdc26 docs: describe uwsgi setup of all suported distributions
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-04 19:56:40 +01:00
Markus Heiser 3aff2c19d1 docs: complement uwsgi documentation for all distros
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-04 12:22:20 +01:00
Markus Heiser 9f1cb7a943 Merge branch 'master' of https://github.com/asciimoo/searx into filtron 2020-03-04 12:11:58 +01:00
Markus Heiser a5d3585a0c Merge pull request #1866 from return42/fix-news
bugfix: google-news and bing-news has changed the language parameter
2020-03-04 11:00:30 +00:00
Markus Heiser 3cb7daedb7 docs: generic doocumentation for searx-uwsgi
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-03 19:57:15 +01:00
Markus Heiser f25da6070e docs: generic documentation get templating
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-03 16:26:02 +01:00
Markus Heiser 7af991acda LXC: add ubuntu 19.10 and 20.04 to the list of test images
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-02 19:01:08 +01:00
Markus Heiser c3e4753ce9 docs: generic documentation from the installation scripts
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-02 19:00:19 +01:00
Markus Heiser 491cb95a1f utils/lxc.env: separate environment that is used in containers
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-01 18:28:10 +01:00
Markus Heiser ad7a6e6e10 bugfix(!biv) : bing-video do not like "older" User-Agents
When selecting other languages than 'en', bing-video did not handle the language
correct and gave very bad results.  Since User-Agent is normaly rotated in
searx, the behavior of a !biv search was unpredictable and paging was broken.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-01 17:28:59 +01:00
Markus Heiser 1c853f9573 bing_news: parital rollback of c89c05bc
The bing_news bug (discussed in #1838) was caused by wrong language tags, which
was fixed e0c99d9d / no need to change the bing_news search string.

closes: https://github.com/asciimoo/searx/issues/1838

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-01 11:07:59 +01:00
Markus Heiser 79412828cd update languages: engines_languages.json languages.py
build by Makefile target:

    make project

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-01 08:06:51 +01:00
Markus Heiser e0c99d9dcb bugfix: fetch_supported_languages bing, -news, -videos, -images
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-01 08:01:36 +01:00
Markus Heiser 40843fe95a searx/data/engines_languages.json: sort json file (no content change)
To get meaningfull diffs, the json file has to be sorted.  Before applying any
further content patch, the json file needs a inital sort (without changing any
content).

Sorted by::

  import sys, json

  with open('engines_languages.json') as f:
      j = json.load(f)

  with open('engines_languages.json', 'w') as f:
      json.dump(j, f, indent=2, sort_keys=True)

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-03-01 07:56:46 +01:00
Markus Heiser 2f6f9665a9 requirements-dev.txt: add missing pylint for liniting tests
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-29 17:01:11 +01:00
Markus Heiser 37c135f2ce LXC: improved UX when working with a bunch of containers
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-27 19:13:03 +01:00
Markus Heiser af6acd3417 LXC: install searx-suite installs searx, filtron & morty on all containers
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-26 19:07:55 +01:00
Markus Heiser d5917cc029 utils/lib.sh: make uWSGI installation available for all distros
support: ubuntu, debin, fedora, archlinux

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-25 20:20:17 +01:00
Markus Heiser c89c05bceb bugfix: google-news and bing-news has changed the language parameter
closes: https://github.com/asciimoo/searx/issues/1838

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-25 18:44:28 +01:00
Markus Heiser f5d10abc7f Merge branch 'master' of https://github.com/asciimoo/searx into filtron 2020-02-25 11:27:08 +01:00
Markus Heiser 6a3ef5561b Merge pull request #1861 from return42/fix-prefs
fix serious bugs of the test procedure
2020-02-25 08:56:34 +01:00
Markus Heiser 8685d1b7d8 Merge branch 'master' into fix-prefs 2020-02-24 08:16:42 +01:00
Markus Heiser 700574357a make test: bugfix, pyenvinstall is a prerequisite for the pylint test
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-24 08:14:09 +01:00
Markus Heiser 692c331b30 Merge pull request #1863 from MarcAbonce/monkey-patch-occitan-locale
Monkey patch babel get_translations to support Occitan
2020-02-24 08:08:16 +01:00
Markus Heiser aa95a0d70b searx/testing.py: fixed pep8 error
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-24 07:55:14 +01:00
Markus Heiser 81f106e5de searx/testing.py: bugfix process model (do not use Flask's debug mode)
Don't enable Flask's debug mode, the debugger from Flask will cause a wired
process model, where the server never dies.  Further read:

- debug mode: https://flask.palletsprojects.com/quickstart/#debug-mode
- Flask.run(..): https://flask.palletsprojects.com/api/#flask.Flask.run

closes: https://github.com/asciimoo/searx/issues/1862

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-23 23:03:05 +01:00
Markus Heiser 4a94b4cca6 searx/testing.py: pylint & SPDX tag (no functional change)
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-23 22:51:07 +01:00
Markus Heiser 3f3351639a Merge branch 'master' of https://github.com/asciimoo/searx into filtron 2020-02-23 21:06:34 +01:00
Markus Heiser f17b28743a utils/serx.sh: make uWSGI installation available for all distros (WIP)
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-23 21:05:22 +01:00
Markus Heiser 1cae4fa88d preferences.py: implement defaults if unset
Implemnts defaults for:

- search.default_lang, search.autocomplete, search.safe_search,
- ui.default_theme, ui.default_locale
- server.image_proxy

This fixes also:

  https://github.com/asciimoo/searx/pull/1860#issuecomment-590082955

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-23 20:56:05 +01:00
Markus Heiser 179be12732 preferences.py: pylint, SPDX tag & docstrings (no functional change)
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-23 20:52:00 +01:00
Markus Heiser 09f4e2cd31 Merge pull request #1846 from piplongrun/autocomplete_swisscows
Add Swisscows autocomplete option
2020-02-23 14:54:10 +00:00
Markus Heiser f272781ab7 Merge branch 'master' into autocomplete_swisscows 2020-02-23 14:43:33 +00:00
Markus Heiser 57efb45ce5 Merge pull request #1773 from Monogramm/docker/opencontainers
📝 Add Opencontainers labels in docker image
2020-02-23 14:43:14 +00:00
Markus Heiser b7105da2af Add missing autocomplete backends to settings.yml comment
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-23 15:41:08 +01:00
Markus Heiser 78c5216d76 Merge branch 'master' into autocomplete_swisscows 2020-02-23 14:24:42 +00:00
Markus Heiser 4d67164918 Merge branch 'master' of https://github.com/asciimoo/searx into filtron
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-23 13:50:22 +01:00
Markus Heiser 55aa7f96c1 Merge branch 'master' into docker/opencontainers 2020-02-23 11:55:20 +00:00
Markus Heiser 8c26097757 Merge pull request #1842 from piplongrun/engine-etools
Add new eTools.ch engine
2020-02-23 11:52:29 +00:00
Markus Heiser 98322ac15c Merge branch 'master' into engine-etools 2020-02-23 11:47:49 +00:00
Markus Heiser 90d23e7ef6 Merge pull request #1860 from MarcAbonce/fix-default-locale
Fix default locale and language issues
2020-02-23 11:39:04 +00:00
Markus Heiser 5fb6d4f508 LXC: normalize package installation & user creation.
utils/lib.sh:
- get DIST_ID & DIST_VERSION from /etc/os-release
- pkg_[install|remove|...] supports ubuntu, debian, archlinux & fedora

utils/lxc.sh
- Workaround for the "setrlimit(RLIMIT_CORE): Operation not permitted" error::
    'Set disable_coredump false' >> /etc/sudo.conf

utils/[searx.sh|filtron.sh|morty.sh]
- switched user creation from 'adduser' perl script to 'useradd' built-in
  command

utils/searx.sh
- install packages for ubuntu, debian, archlinux & fedora

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2020-02-23 12:10:45 +01:00
Markus Heiser 2ade2ce10a Merge pull request #1855 from return42/fix-dead-links
docs: fix dead Searx-instance links to https://searx.space
2020-02-20 18:31:05 +00:00