Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
MetaGer
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
56
Issues
56
List
Boards
Labels
Service Desk
Milestones
Merge Requests
9
Merge Requests
9
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
open-source
MetaGer
Commits
653286c1
Commit
653286c1
authored
Nov 06, 2020
by
Dominik Hebeler
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'development' into phil-1010-add-quotes-and-did-you-know-to-metager-patch-52193
parents
6051ac95
28ca0eef
Changes
219
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
219 changed files
with
3640 additions
and
7704 deletions
+3640
-7704
.gitlab-ci.yml
.gitlab-ci.yml
+12
-1
.gitlab/development-values.yaml
.gitlab/development-values.yaml
+18
-3
.gitlab/production-values.yaml
.gitlab/production-values.yaml
+25
-7
.gitlab/review-apps-values.yaml
.gitlab/review-apps-values.yaml
+17
-1
app/Http/Controllers/AdminInterface.php
app/Http/Controllers/AdminInterface.php
+21
-6
app/Http/Controllers/MetaGerSearch.php
app/Http/Controllers/MetaGerSearch.php
+9
-3
app/Http/Controllers/SettingsController.php
app/Http/Controllers/SettingsController.php
+39
-16
app/Http/Controllers/StartpageController.php
app/Http/Controllers/StartpageController.php
+6
-3
app/Jobs/ConvertCountFile.php
app/Jobs/ConvertCountFile.php
+6
-8
app/MetaGer.php
app/MetaGer.php
+56
-5
app/Models/Quicktips/Quicktips.php
app/Models/Quicktips/Quicktips.php
+49
-30
app/Models/Result.php
app/Models/Result.php
+10
-9
chart/requirements.lock
chart/requirements.lock
+3
-3
chart/requirements.yaml
chart/requirements.yaml
+3
-1
chart/templates/deployment.yaml
chart/templates/deployment.yaml
+4
-12
index.html
index.html
+2
-2
public/img/App.svg
public/img/App.svg
+89
-0
public/img/Key-verified.svg
public/img/Key-verified.svg
+53
-0
public/img/app-icon.svg
public/img/app-icon.svg
+89
-0
public/img/caret.svg
public/img/caret.svg
+35
-0
public/img/donate-icon.svg
public/img/donate-icon.svg
+48
-0
public/img/heart.svg
public/img/heart.svg
+45
-0
public/img/help-icon.svg
public/img/help-icon.svg
+45
-0
public/img/icon-contact.svg
public/img/icon-contact.svg
+57
-0
public/img/icon-filter.svg
public/img/icon-filter.svg
+36
-0
public/img/icon-language.svg
public/img/icon-language.svg
+53
-0
public/img/icon-lupe.svg
public/img/icon-lupe.svg
+66
-0
public/img/icon-map.svg
public/img/icon-map.svg
+47
-0
public/img/icon-outlink.svg
public/img/icon-outlink.svg
+51
-0
public/img/icon-services.svg
public/img/icon-services.svg
+76
-0
public/img/icon-settings.svg
public/img/icon-settings.svg
+70
-0
public/img/key-icon.svg
public/img/key-icon.svg
+66
-0
public/img/key-verified.svg
public/img/key-verified.svg
+53
-0
public/img/leaf.svg
public/img/leaf.svg
+31
-0
public/img/lock.svg
public/img/lock.svg
+23
-0
public/img/member-icon.svg
public/img/member-icon.svg
+58
-0
public/img/plug-in.svg
public/img/plug-in.svg
+65
-0
public/img/rainbow.svg
public/img/rainbow.svg
+24
-56
public/img/story-plugin.svg
public/img/story-plugin.svg
+200
-0
resources/lang/de/hilfe.php
resources/lang/de/hilfe.php
+25
-19
resources/lang/de/index.php
resources/lang/de/index.php
+3
-3
resources/lang/de/mg-story.php
resources/lang/de/mg-story.php
+34
-0
resources/lang/de/plugin-desktop/desktop-chrome.php
resources/lang/de/plugin-desktop/desktop-chrome.php
+3
-3
resources/lang/de/plugin-desktop/desktop-edge.php
resources/lang/de/plugin-desktop/desktop-edge.php
+6
-6
resources/lang/de/plugin-desktop/desktop-firefox.php
resources/lang/de/plugin-desktop/desktop-firefox.php
+5
-5
resources/lang/de/plugin-desktop/desktop-ie.php
resources/lang/de/plugin-desktop/desktop-ie.php
+1
-1
resources/lang/de/plugin-desktop/desktop-opera.php
resources/lang/de/plugin-desktop/desktop-opera.php
+2
-2
resources/lang/de/plugin-mobile/mobile-chrome.php
resources/lang/de/plugin-mobile/mobile-chrome.php
+2
-2
resources/lang/de/plugin-mobile/mobile-edge.php
resources/lang/de/plugin-mobile/mobile-edge.php
+4
-4
resources/lang/de/plugin-mobile/mobile-firefox-klar.php
resources/lang/de/plugin-mobile/mobile-firefox-klar.php
+3
-3
resources/lang/de/plugin-mobile/mobile-firefox.php
resources/lang/de/plugin-mobile/mobile-firefox.php
+5
-5
resources/lang/de/plugin-page.php
resources/lang/de/plugin-page.php
+10
-10
resources/lang/de/plugin.php
resources/lang/de/plugin.php
+1
-1
resources/lang/de/result.php
resources/lang/de/result.php
+1
-0
resources/lang/de/resultPage.php
resources/lang/de/resultPage.php
+1
-1
resources/lang/de/settings.php
resources/lang/de/settings.php
+7
-0
resources/lang/de/sidebar.php
resources/lang/de/sidebar.php
+2
-0
resources/lang/de/staticPages.php
resources/lang/de/staticPages.php
+1
-1
resources/lang/en/hilfe.php
resources/lang/en/hilfe.php
+23
-16
resources/lang/en/index.php
resources/lang/en/index.php
+2
-2
resources/lang/en/mg-story.php
resources/lang/en/mg-story.php
+33
-0
resources/lang/en/plugin-desktop/desktop-edge.php
resources/lang/en/plugin-desktop/desktop-edge.php
+1
-1
resources/lang/en/plugin-desktop/desktop-firefox.php
resources/lang/en/plugin-desktop/desktop-firefox.php
+5
-5
resources/lang/en/plugin-desktop/desktop-ie.php
resources/lang/en/plugin-desktop/desktop-ie.php
+2
-2
resources/lang/en/plugin-desktop/desktop-vivaldi.php
resources/lang/en/plugin-desktop/desktop-vivaldi.php
+2
-2
resources/lang/en/plugin-mobile/mobile-chrome.php
resources/lang/en/plugin-mobile/mobile-chrome.php
+3
-3
resources/lang/en/plugin-mobile/mobile-edge.php
resources/lang/en/plugin-mobile/mobile-edge.php
+3
-3
resources/lang/en/plugin-mobile/mobile-firefox.php
resources/lang/en/plugin-mobile/mobile-firefox.php
+2
-2
resources/lang/en/plugin-mobile/mobile-opera.php
resources/lang/en/plugin-mobile/mobile-opera.php
+1
-1
resources/lang/en/plugin-page.php
resources/lang/en/plugin-page.php
+5
-2
resources/lang/en/result.php
resources/lang/en/result.php
+1
-0
resources/lang/en/settings.php
resources/lang/en/settings.php
+7
-0
resources/lang/en/sidebar.php
resources/lang/en/sidebar.php
+2
-0
resources/lang/es/app.php
resources/lang/es/app.php
+24
-0
resources/lang/es/index.php
resources/lang/es/index.php
+39
-36
resources/lang/es/mg-story.php
resources/lang/es/mg-story.php
+34
-0
resources/lang/es/passwords.php
resources/lang/es/passwords.php
+9
-0
resources/lang/es/plugin-desktop/desktop-chrome.php
resources/lang/es/plugin-desktop/desktop-chrome.php
+17
-0
resources/lang/es/plugin-desktop/desktop-safari.php
resources/lang/es/plugin-desktop/desktop-safari.php
+7
-0
resources/lang/es/plugin-page.php
resources/lang/es/plugin-page.php
+4
-44
resources/lang/es/results.php
resources/lang/es/results.php
+9
-5
resources/lang/es/sidebar.php
resources/lang/es/sidebar.php
+2
-0
resources/lang/es/spendenaufruf.php
resources/lang/es/spendenaufruf.php
+8
-0
resources/lang/es/zitatsuche.php
resources/lang/es/zitatsuche.php
+8
-0
resources/lang/fr/index.php
resources/lang/fr/index.php
+1
-1
resources/lang/fr/plugin-page.php
resources/lang/fr/plugin-page.php
+4
-3
resources/less/bootstrap/alerts.less
resources/less/bootstrap/alerts.less
+0
-73
resources/less/bootstrap/badges.less
resources/less/bootstrap/badges.less
+0
-66
resources/less/bootstrap/bootstrap.less
resources/less/bootstrap/bootstrap.less
+0
-55
resources/less/bootstrap/breadcrumbs.less
resources/less/bootstrap/breadcrumbs.less
+0
-26
resources/less/bootstrap/button-groups.less
resources/less/bootstrap/button-groups.less
+0
-244
resources/less/bootstrap/buttons.less
resources/less/bootstrap/buttons.less
+0
-166
resources/less/bootstrap/carousel.less
resources/less/bootstrap/carousel.less
+0
-262
resources/less/bootstrap/close.less
resources/less/bootstrap/close.less
+0
-34
resources/less/bootstrap/code.less
resources/less/bootstrap/code.less
+0
-69
resources/less/bootstrap/component-animations.less
resources/less/bootstrap/component-animations.less
+0
-33
resources/less/bootstrap/dropdowns.less
resources/less/bootstrap/dropdowns.less
+0
-216
resources/less/bootstrap/forms.less
resources/less/bootstrap/forms.less
+0
-613
resources/less/bootstrap/grid.less
resources/less/bootstrap/grid.less
+0
-84
resources/less/bootstrap/input-groups.less
resources/less/bootstrap/input-groups.less
+0
-171
resources/less/bootstrap/jumbotron.less
resources/less/bootstrap/jumbotron.less
+0
-54
resources/less/bootstrap/labels.less
resources/less/bootstrap/labels.less
+0
-64
resources/less/bootstrap/list-group.less
resources/less/bootstrap/list-group.less
+0
-130
resources/less/bootstrap/media.less
resources/less/bootstrap/media.less
+0
-66
resources/less/bootstrap/mixins.less
resources/less/bootstrap/mixins.less
+0
-40
resources/less/bootstrap/mixins/alerts.less
resources/less/bootstrap/mixins/alerts.less
+0
-14
resources/less/bootstrap/mixins/background-variant.less
resources/less/bootstrap/mixins/background-variant.less
+0
-9
resources/less/bootstrap/mixins/border-radius.less
resources/less/bootstrap/mixins/border-radius.less
+0
-18
resources/less/bootstrap/mixins/buttons.less
resources/less/bootstrap/mixins/buttons.less
+0
-65
resources/less/bootstrap/mixins/center-block.less
resources/less/bootstrap/mixins/center-block.less
+0
-7
resources/less/bootstrap/mixins/clearfix.less
resources/less/bootstrap/mixins/clearfix.less
+0
-22
resources/less/bootstrap/mixins/gradients.less
resources/less/bootstrap/mixins/gradients.less
+0
-59
resources/less/bootstrap/mixins/grid-framework.less
resources/less/bootstrap/mixins/grid-framework.less
+0
-91
resources/less/bootstrap/mixins/grid.less
resources/less/bootstrap/mixins/grid.less
+0
-122
resources/less/bootstrap/mixins/hide-text.less
resources/less/bootstrap/mixins/hide-text.less
+0
-21
resources/less/bootstrap/mixins/image.less
resources/less/bootstrap/mixins/image.less
+0
-33
resources/less/bootstrap/mixins/labels.less
resources/less/bootstrap/mixins/labels.less
+0
-12
resources/less/bootstrap/mixins/list-group.less
resources/less/bootstrap/mixins/list-group.less
+0
-30
resources/less/bootstrap/mixins/nav-vertical-align.less
resources/less/bootstrap/mixins/nav-vertical-align.less
+0
-9
resources/less/bootstrap/mixins/opacity.less
resources/less/bootstrap/mixins/opacity.less
+0
-8
resources/less/bootstrap/mixins/pagination.less
resources/less/bootstrap/mixins/pagination.less
+0
-24
resources/less/bootstrap/mixins/panels.less
resources/less/bootstrap/mixins/panels.less
+0
-24
resources/less/bootstrap/mixins/progress-bar.less
resources/less/bootstrap/mixins/progress-bar.less
+0
-10
resources/less/bootstrap/mixins/reset-text.less
resources/less/bootstrap/mixins/reset-text.less
+0
-18
resources/less/bootstrap/mixins/resize.less
resources/less/bootstrap/mixins/resize.less
+0
-6
resources/less/bootstrap/mixins/responsive-visibility.less
resources/less/bootstrap/mixins/responsive-visibility.less
+0
-15
resources/less/bootstrap/mixins/size.less
resources/less/bootstrap/mixins/size.less
+0
-10
resources/less/bootstrap/mixins/tab-focus.less
resources/less/bootstrap/mixins/tab-focus.less
+0
-9
resources/less/bootstrap/mixins/table-row.less
resources/less/bootstrap/mixins/table-row.less
+0
-28
resources/less/bootstrap/mixins/text-emphasis.less
resources/less/bootstrap/mixins/text-emphasis.less
+0
-9
resources/less/bootstrap/mixins/text-overflow.less
resources/less/bootstrap/mixins/text-overflow.less
+0
-8
resources/less/bootstrap/mixins/vendor-prefixes.less
resources/less/bootstrap/mixins/vendor-prefixes.less
+0
-227
resources/less/bootstrap/modals.less
resources/less/bootstrap/modals.less
+0
-150
resources/less/bootstrap/navbar.less
resources/less/bootstrap/navbar.less
+0
-660
resources/less/bootstrap/navs.less
resources/less/bootstrap/navs.less
+0
-242
resources/less/bootstrap/normalize.less
resources/less/bootstrap/normalize.less
+0
-424
resources/less/bootstrap/pager.less
resources/less/bootstrap/pager.less
+0
-54
resources/less/bootstrap/pagination.less
resources/less/bootstrap/pagination.less
+0
-89
resources/less/bootstrap/panels.less
resources/less/bootstrap/panels.less
+0
-271
resources/less/bootstrap/popovers.less
resources/less/bootstrap/popovers.less
+0
-131
resources/less/bootstrap/print.less
resources/less/bootstrap/print.less
+0
-101
resources/less/bootstrap/progress-bars.less
resources/less/bootstrap/progress-bars.less
+0
-87
resources/less/bootstrap/responsive-embed.less
resources/less/bootstrap/responsive-embed.less
+0
-35
resources/less/bootstrap/responsive-utilities.less
resources/less/bootstrap/responsive-utilities.less
+0
-194
resources/less/bootstrap/scaffolding.less
resources/less/bootstrap/scaffolding.less
+0
-161
resources/less/bootstrap/tables.less
resources/less/bootstrap/tables.less
+0
-234
resources/less/bootstrap/theme.less
resources/less/bootstrap/theme.less
+0
-291
resources/less/bootstrap/thumbnails.less
resources/less/bootstrap/thumbnails.less
+0
-36
resources/less/bootstrap/tooltip.less
resources/less/bootstrap/tooltip.less
+0
-101
resources/less/bootstrap/type.less
resources/less/bootstrap/type.less
+0
-302
resources/less/bootstrap/utilities.less
resources/less/bootstrap/utilities.less
+0
-55
resources/less/bootstrap/wells.less
resources/less/bootstrap/wells.less
+0
-29
resources/less/metager/bs-variables.less
resources/less/metager/bs-variables.less
+3
-3
resources/less/metager/general/base.less
resources/less/metager/general/base.less
+7
-14
resources/less/metager/general/forms.less
resources/less/metager/general/forms.less
+23
-1
resources/less/metager/general/general.less
resources/less/metager/general/general.less
+1
-0
resources/less/metager/metager-dark.less
resources/less/metager/metager-dark.less
+9
-1
resources/less/metager/metager.less
resources/less/metager/metager.less
+8
-1
resources/less/metager/mixins/forms.less
resources/less/metager/mixins/forms.less
+11
-53
resources/less/metager/mixins/grid.less
resources/less/metager/mixins/grid.less
+6
-0
resources/less/metager/mixins/mixins.less
resources/less/metager/mixins/mixins.less
+7
-0
resources/less/metager/mixins/nav-divider.less
resources/less/metager/mixins/nav-divider.less
+10
-0
resources/less/metager/mixins/reset-filter.less
resources/less/metager/mixins/reset-filter.less
+0
-0
resources/less/metager/mixins/tab-focus.less
resources/less/metager/mixins/tab-focus.less
+8
-0
resources/less/metager/mixins/text-emphasis.less
resources/less/metager/mixins/text-emphasis.less
+8
-0
resources/less/metager/mixins/vendor-prefixes.less
resources/less/metager/mixins/vendor-prefixes.less
+56
-0
resources/less/metager/pages/count-dark.less
resources/less/metager/pages/count-dark.less
+7
-0
resources/less/metager/pages/count/style-dark.less
resources/less/metager/pages/count/style-dark.less
+7
-0
resources/less/metager/pages/count/style.less
resources/less/metager/pages/count/style.less
+7
-0
resources/less/metager/pages/key-dark.less
resources/less/metager/pages/key-dark.less
+27
-0
resources/less/metager/pages/key.less
resources/less/metager/pages/key.less
+2
-0
resources/less/metager/pages/resultpage.less
resources/less/metager/pages/resultpage.less
+1
-0
resources/less/metager/pages/resultpage/quicktips.less
resources/less/metager/pages/resultpage/quicktips.less
+6
-7
resources/less/metager/pages/resultpage/result-page.less
resources/less/metager/pages/resultpage/result-page.less
+7
-2
resources/less/metager/pages/resultpage/result.less
resources/less/metager/pages/resultpage/result.less
+11
-0
resources/less/metager/pages/settings.less
resources/less/metager/pages/settings.less
+7
-2
resources/less/metager/pages/start-page.less
resources/less/metager/pages/start-page.less
+0
-68
resources/less/metager/parts/alert.less
resources/less/metager/parts/alert.less
+27
-0
resources/less/metager/parts/bitpay.less
resources/less/metager/parts/bitpay.less
+2
-2
resources/less/metager/parts/button.less
resources/less/metager/parts/button.less
+56
-0
resources/less/metager/parts/dropdowns.less
resources/less/metager/parts/dropdowns.less
+217
-0
resources/less/metager/parts/scaffolding.less
resources/less/metager/parts/scaffolding.less
+39
-0
resources/less/metager/parts/searchbar.less
resources/less/metager/parts/searchbar.less
+38
-15
resources/less/metager/parts/sidebar.less
resources/less/metager/parts/sidebar.less
+63
-3
resources/less/metager/parts/type.less
resources/less/metager/parts/type.less
+92
-0
resources/less/metager/startpage-only-dark.less
resources/less/metager/startpage-only-dark.less
+2
-0
resources/less/metager/startpage-only-light.less
resources/less/metager/startpage-only-light.less
+2
-0
resources/less/metager/startpage-only.less
resources/less/metager/startpage-only.less
+483
-0
resources/less/metager/variables-dark.less
resources/less/metager/variables-dark.less
+23
-2
resources/less/metager/variables.less
resources/less/metager/variables.less
+20
-0
resources/views/admin/count.blade.php
resources/views/admin/count.blade.php
+14
-3
resources/views/assoziator/asso.blade.php
resources/views/assoziator/asso.blade.php
+2
-5
resources/views/hilfe.blade.php
resources/views/hilfe.blade.php
+23
-15
resources/views/index.blade.php
resources/views/index.blade.php
+86
-45
resources/views/key.blade.php
resources/views/key.blade.php
+10
-2
resources/views/layouts/ad.blade.php
resources/views/layouts/ad.blade.php
+1
-1
resources/views/layouts/atom10ad.blade.php
resources/views/layouts/atom10ad.blade.php
+1
-1
resources/views/layouts/image_result.blade.php
resources/views/layouts/image_result.blade.php
+1
-1
resources/views/layouts/researchandtabs.blade.php
resources/views/layouts/researchandtabs.blade.php
+2
-0
resources/views/layouts/result.blade.php
resources/views/layouts/result.blade.php
+9
-5
resources/views/layouts/resultPage.blade.php
resources/views/layouts/resultPage.blade.php
+12
-4
resources/views/layouts/resultpage/resources.blade.php
resources/views/layouts/resultpage/resources.blade.php
+10
-2
resources/views/layouts/rich/ad.blade.php
resources/views/layouts/rich/ad.blade.php
+1
-1
resources/views/layouts/rich/result.blade.php
resources/views/layouts/rich/result.blade.php
+1
-1
resources/views/layouts/staticPages.blade.php
resources/views/layouts/staticPages.blade.php
+30
-9
resources/views/parts/filter.blade.php
resources/views/parts/filter.blade.php
+3
-3
resources/views/parts/searchbar.blade.php
resources/views/parts/searchbar.blade.php
+2
-2
resources/views/parts/sidebar.blade.php
resources/views/parts/sidebar.blade.php
+44
-16
resources/views/plugin-page.blade.php
resources/views/plugin-page.blade.php
+1
-1
resources/views/settings/allSettings.blade.php
resources/views/settings/allSettings.blade.php
+2
-0
resources/views/settings/index.blade.php
resources/views/settings/index.blade.php
+13
-3
resources/views/widget/sitesearch.blade.php
resources/views/widget/sitesearch.blade.php
+1
-0
resources/views/widget/websearch.blade.php
resources/views/widget/websearch.blade.php
+7
-5
resources/views/widget/widget.blade.php
resources/views/widget/widget.blade.php
+1
-1
resources/views/zitatsuche.blade.php
resources/views/zitatsuche.blade.php
+1
-7
tests/Browser/Pages/App.php
tests/Browser/Pages/App.php
+1
-1
tests/Browser/Pages/HomePage.php
tests/Browser/Pages/HomePage.php
+9
-6
tests/Browser/Pages/Plugin.php
tests/Browser/Pages/Plugin.php
+1
-1
webpack.mix.js
webpack.mix.js
+14
-8
No files found.
.gitlab-ci.yml
View file @
653286c1
...
...
@@ -33,6 +33,8 @@ stages:
-
integrationtest
-
cleanup
.auto-deploy
:
image
:
"
registry.gitlab.com/gitlab-org/cluster-integration/auto-deploy-image:v1.0.6"
build
:
services
:
...
...
@@ -75,6 +77,10 @@ review:
variables
:
HELM_UPGRADE_VALUES_FILE
:
.gitlab/review-apps-values.yaml
ROLLOUT_RESOURCE_TYPE
:
deployment
environment
:
name
:
review/$CI_COMMIT_REF_NAME
on_stop
:
stop_review
auto_stop_in
:
2 days
rules
:
-
if
:
'
$CI_KUBERNETES_ACTIVE
==
null
||
$CI_KUBERNETES_ACTIVE
==
""'
when
:
never
...
...
@@ -87,6 +93,11 @@ review:
-
if
:
'
$CI_COMMIT_TAG
||
$CI_COMMIT_BRANCH'
stop_review
:
variables
:
GIT_STRATEGY
:
none
environment
:
name
:
review/$CI_COMMIT_REF_NAME
action
:
stop
rules
:
-
if
:
'
$CI_KUBERNETES_ACTIVE
==
null
||
$CI_KUBERNETES_ACTIVE
==
""'
when
:
never
...
...
@@ -163,4 +174,4 @@ integrationtest:
-
sed -i "s#^APP_URL=.*#APP_URL=$URL#g" .env
-
sed -i "s#^BRANCH_NAME=.*#BRANCH_NAME=$CI_COMMIT_REF_NAME#g" .env
-
sed -i "s#^COMMIT_NAME=.*#COMMIT_NAME=$CI_COMMIT_REF_SLUG#g" .env
-
php artisan dusk
\ No newline at end of file
-
php artisan dusk
.gitlab/development-values.yaml
View file @
653286c1
postgresql
:
enabled
:
false
service
:
externalPort
:
80
internalPort
:
80
...
...
@@ -5,13 +7,26 @@ hpa:
enabled
:
true
minReplicas
:
1
maxReplicas
:
5
resources
:
limi
ts
:
resources
Phpfpm
:
reques
ts
:
cpu
:
500m
memory
:
500M
limits
:
resourcesNginx
:
requests
:
cpu
:
100m
memory
:
100M
limits
:
resourcesRedis
:
requests
:
cpu
:
100m
memory
:
1Gi
limits
:
resourcesFetcher
:
requests
:
cpu
:
500m
memory
:
1Gi
memory
:
100M
limits
:
podDisruptionBudget
:
enabled
:
true
minAvailable
:
...
...
.gitlab/production-values.yaml
View file @
653286c1
postgresql
:
enabled
:
false
service
:
externalPort
:
80
internalPort
:
80
...
...
@@ -5,13 +7,6 @@ hpa:
enabled
:
true
minReplicas
:
3
maxReplicas
:
100
resources
:
limits
:
cpu
:
500m
memory
:
1Gi
requests
:
cpu
:
500m
memory
:
1Gi
podDisruptionBudget
:
enabled
:
true
minAvailable
:
...
...
@@ -21,6 +16,29 @@ podAnnotations:
prometheus.io/path
:
/metrics
prometheus.io/port
:
"
80"
deploymentApiVersion
:
apps/v1
resources
:
requests
:
limits
:
resourcesPhpfpm
:
requests
:
cpu
:
500m
memory
:
500M
limits
:
resourcesNginx
:
requests
:
cpu
:
100m
memory
:
100M
limits
:
resourcesRedis
:
requests
:
cpu
:
100m
memory
:
1Gi
limits
:
resourcesFetcher
:
requests
:
cpu
:
500m
memory
:
100M
limits
:
ingress
:
annotations
:
cert-manager.io/cluster-issuer
:
letsencrypt-prod
...
...
.gitlab/review-apps-values.yaml
View file @
653286c1
---
postgresql
:
enabled
:
false
hpa
:
enabled
:
false
resources
:
requests
:
limits
:
ingress
:
annotations
:
kubernetes.io/tls-acme
:
"
false"
...
...
@@ -21,3 +25,15 @@ service:
externalPort
:
80
internalPort
:
80
deploymentApiVersion
:
apps/v1
resourcesPhpfpm
:
requests
:
limits
:
resourcesNginx
:
requests
:
limits
:
resourcesRedis
:
requests
:
limits
:
resourcesFetcher
:
requests
:
limits
:
\ No newline at end of file
app/Http/Controllers/AdminInterface.php
View file @
653286c1
...
...
@@ -31,7 +31,6 @@ class AdminInterface extends Controller
if
(
strstr
(
$key
,
"_time"
))
{
$stati
[
$name
][
"fetcher"
][
$pid
][
"connection"
][
$key
]
=
$val
;
}
}
$stati
[
$name
][
"fetcher"
][
$pid
][
"poptime"
]
=
$value
[
1
];
}
...
...
@@ -157,7 +156,7 @@ class AdminInterface extends Controller
$now
->
minute
=
0
;
$now
->
second
=
0
;
while
(
$now
->
lessThanOrEqualTo
(
Carbon
::
now
()))
{
while
(
$now
->
lessThanOrEqualTo
(
Carbon
::
now
()))
{
$sameTime
+=
empty
(
$stats
->
time
->
{
$now
->
format
(
'H:i'
)}
->
{
$interface
})
?
0
:
$stats
->
time
->
{
$now
->
format
(
'H:i'
)}
->
{
$interface
};
$now
->
addMinutes
(
5
);
}
...
...
@@ -178,19 +177,38 @@ class AdminInterface extends Controller
if
(
$size
>
0
)
{
$oldLogs
[
$key
][
'median'
]
=
number_format
(
floatval
(
round
(
$count
/
$size
)),
0
,
","
,
"."
);
}
}
$sameTimes
=
[];
$sum
=
0
;
foreach
(
$oldLogs
as
$index
=>
$oldLog
)
{
if
(
$index
%
7
===
0
)
{
$sameTime
=
$oldLog
[
"sameTime"
];
$sameTime
=
str_replace
(
"."
,
""
,
$sameTime
);
$sameTime
=
\
intval
(
$sameTime
);
$sameTimes
[]
=
(
$logToday
-
$sameTime
);
$sum
+=
(
$logToday
-
$sameTime
);
}
}
$averageIncrease
=
0
;
if
(
sizeof
(
$sameTimes
)
>
0
)
{
$averageIncrease
=
$sum
/
sizeof
(
$sameTimes
);
}
if
(
$request
->
input
(
'out'
,
'web'
)
===
"web"
)
{
return
view
(
'admin.count'
)
->
with
(
'title'
,
'Suchanfragen - MetaGer'
)
->
with
(
'today'
,
number_format
(
floatval
(
$logToday
),
0
,
","
,
"."
))
->
with
(
'averageIncrease'
,
$averageIncrease
)
->
with
(
'oldLogs'
,
$oldLogs
)
->
with
(
'minCount'
,
$minCount
)
->
with
(
'rekordCount'
,
number_format
(
floatval
(
$rekordTag
),
0
,
","
,
"."
))
->
with
(
'rekordTagSameTime'
,
number_format
(
floatval
(
$rekordTagSameTime
),
0
,
","
,
"."
))
->
with
(
'rekordDate'
,
$rekordTagDate
)
->
with
(
'days'
,
$days
);
->
with
(
'days'
,
$days
)
->
with
(
'css'
,
[
mix
(
'/css/count/style.css'
)])
->
with
(
'darkcss'
,
[
mix
(
'/css/count/dark.css'
)]);
}
else
{
$result
=
""
;
foreach
(
$oldLogs
as
$key
=>
$value
)
{
...
...
@@ -203,9 +221,7 @@ class AdminInterface extends Controller
return
response
(
$result
,
200
)
->
header
(
'Content-Type'
,
'text/csv'
)
->
header
(
'Content-Disposition'
,
'attachment; filename="count.csv"'
);
}
}
public
function
countGraphToday
()
...
...
@@ -235,7 +251,6 @@ class AdminInterface extends Controller
return
response
()
->
view
(
'admin.countGraphToday'
,
[
"data"
=>
$result
],
200
)
->
header
(
'Content-Type'
,
"image/svg+xml"
);
}
public
function
engineStats
()
...
...
app/Http/Controllers/MetaGerSearch.php
View file @
653286c1
...
...
@@ -93,6 +93,12 @@ class MetaGerSearch extends Controller
$metager
->
startSearch
(
$timings
);
# Versuchen die Ergebnisse der Quicktips zu laden
$quicktipResults
=
$quicktips
->
loadResults
();
if
(
!
empty
(
$timings
))
{
$timings
[
"Loaded Quicktip Results"
]
=
microtime
(
true
)
-
$time
;
}
$metager
->
waitForMainResults
();
if
(
!
empty
(
$timings
))
{
$timings
[
"waitForMainResults"
]
=
microtime
(
true
)
-
$time
;
...
...
@@ -245,11 +251,11 @@ class MetaGerSearch extends Controller
$newResults
=
0
;
foreach
(
$metager
->
getResults
()
as
$index
=>
$resultTmp
)
{
if
(
$resultTmp
->
new
||
$resultTmp
->
adgoalC
hanged
)
{
if
(
$resultTmp
->
new
||
$resultTmp
->
c
hanged
)
{
if
(
$metager
->
getFokus
()
!==
"bilder"
)
{
$view
=
View
::
make
(
'layouts.result'
,
[
'index'
=>
$index
,
'result'
=>
$resultTmp
,
'metager'
=>
$metager
]);
$html
=
$view
->
render
();
if
(
!
$resultTmp
->
new
&&
$resultTmp
->
adgoalC
hanged
)
{
if
(
!
$resultTmp
->
new
&&
$resultTmp
->
c
hanged
)
{
$result
[
'changedResults'
][
$index
]
=
$html
;
}
else
{
$result
[
'newResults'
][
$index
]
=
$html
;
...
...
@@ -258,7 +264,7 @@ class MetaGerSearch extends Controller
}
else
{
$view
=
View
::
make
(
'layouts.image_result'
,
[
'index'
=>
$index
,
'result'
=>
$resultTmp
,
'metager'
=>
$metager
]);
$html
=
$view
->
render
();
if
(
!
$resultTmp
->
new
&&
$resultTmp
->
adgoalC
hanged
)
{
if
(
!
$resultTmp
->
new
&&
$resultTmp
->
c
hanged
)
{
$result
[
'changedResults'
][
$index
]
=
$html
;
}
else
{
$result
[
'newResults'
][
$index
]
=
$html
;
...
...
app/Http/Controllers/SettingsController.php
View file @
653286c1
...
...
@@ -56,7 +56,7 @@ class SettingsController extends Controller
$cookies
=
Cookie
::
get
();
$settingActive
=
false
;
foreach
(
$cookies
as
$key
=>
$value
)
{
if
(
\
starts_with
(
$key
,
[
$fokus
.
"_engine_"
,
$fokus
.
"_setting_"
])
||
strpos
(
$key
,
$fokus
.
'_blpage'
)
===
0
)
{
if
(
\
starts_with
(
$key
,
[
$fokus
.
"_engine_"
,
$fokus
.
"_setting_"
])
||
strpos
(
$key
,
$fokus
.
'_blpage'
)
===
0
||
$key
===
'dark_mode'
)
{
$settingActive
=
true
;
}
}
...
...
@@ -209,23 +209,32 @@ class SettingsController extends Controller
$fokus
=
$request
->
input
(
'fokus'
,
''
);
$url
=
$request
->
input
(
'url'
,
''
);
// Currently only the setting for quotes is supported
$quotes
=
$request
->
input
(
'zitate'
,
''
);
if
(
empty
(
$fokus
)
||
empty
(
$quotes
))
{
abort
(
404
);
if
(
!
empty
(
$quotes
)){
if
(
$quotes
===
"off"
){
$path
=
\
Request
::
path
();
$cookiePath
=
"/"
.
substr
(
$path
,
0
,
strpos
(
$path
,
"meta/"
)
+
5
);
Cookie
::
queue
(
$fokus
.
"_setting_zitate"
,
"off"
,
0
,
$cookiePath
,
null
,
false
,
false
);
}
elseif
(
$quotes
===
"on"
)
{
$path
=
\
Request
::
path
();
$cookiePath
=
"/"
.
substr
(
$path
,
0
,
strpos
(
$path
,
"meta/"
)
+
5
);
Cookie
::
queue
(
$fokus
.
"_setting_zitate"
,
""
,
0
,
$cookiePath
,
null
,
false
,
false
);
}
}
if
(
$quotes
===
"off"
){
$path
=
\
Request
::
path
();
$cookiePath
=
"/"
.
substr
(
$path
,
0
,
strpos
(
$path
,
"meta/"
)
+
5
);
Cookie
::
queue
(
$fokus
.
"_setting_zitate"
,
"off"
,
0
,
$cookiePath
,
null
,
false
,
false
);
}
elseif
(
$quotes
===
"on"
)
{
$path
=
\
Request
::
path
();
$cookiePath
=
"/"
.
substr
(
$path
,
0
,
strpos
(
$path
,
"meta/"
)
+
5
);
Cookie
::
queue
(
$fokus
.
"_setting_zitate"
,
""
,
0
,
$cookiePath
,
null
,
false
,
false
);
}
else
{
abort
(
404
);
$darkmode
=
$request
->
input
(
'dm'
);
if
(
!
empty
(
$darkmode
)){
if
(
$darkmode
===
"off"
){
Cookie
::
queue
(
'dark_mode'
,
'1'
,
0
,
'/'
,
null
,
false
,
false
);
}
elseif
(
$darkmode
===
"on"
)
{
Cookie
::
queue
(
'dark_mode'
,
'2'
,
0
,
'/'
,
null
,
false
,
false
);
}
elseif
(
$darkmode
===
"system"
){
Cookie
::
queue
(
'dark_mode'
,
''
,
0
,
'/'
,
null
,
false
,
false
);
}
}
return
redirect
(
LaravelLocalization
::
getLocalizedURL
(
LaravelLocalization
::
getCurrentLocale
(),
route
(
'settings'
,
[
"fokus"
=>
$fokus
,
"url"
=>
$url
])));
}
...
...
@@ -244,6 +253,10 @@ class SettingsController extends Controller
$cookiePath
=
"/"
.
substr
(
$path
,
0
,
strpos
(
$path
,
"meta/"
)
+
5
);
Cookie
::
queue
(
$key
,
""
,
0
,
$cookiePath
,
null
,
false
,
false
);
}
if
(
$key
===
'dark_mode'
){
Cookie
::
queue
(
$key
,
""
,
0
,
'/'
,
null
,
false
,
false
);
}
}
$this
->
clearBlacklist
(
$request
);
...
...
@@ -266,8 +279,11 @@ class SettingsController extends Controller
$key
=
$request
->
input
(
'key'
,
''
);
$path
=
\
Request
::
path
();
$cookiePath
=
"/"
.
substr
(
$path
,
0
,
strpos
(
$path
,
"meta/"
)
+
5
);
Cookie
::
queue
(
$key
,
""
,
0
,
$cookiePath
,
null
,
false
,
false
);
if
(
$key
===
'dark_mode'
){
Cookie
::
queue
(
$key
,
""
,
0
,
'/'
,
null
,
false
,
false
);
}
else
{
Cookie
::
queue
(
$key
,
""
,
0
,
$cookiePath
,
null
,
false
,
false
);
}
return
redirect
(
$request
->
input
(
'url'
,
'https://metager.de'
));
}
...
...
@@ -278,7 +294,11 @@ class SettingsController extends Controller
$cookiePath
=
"/"
.
substr
(
$path
,
0
,
strpos
(
$path
,
"meta/"
)
+
5
);
foreach
(
Cookie
::
get
()
as
$key
=>
$value
)
{
Cookie
::
queue
(
$key
,
""
,
0
,
$cookiePath
,
null
,
false
,
false
);
if
(
$key
===
'dark_mode'
){
Cookie
::
queue
(
$key
,
""
,
0
,
'/'
,
null
,
false
,
false
);
}
else
{
Cookie
::
queue
(
$key
,
""
,
0
,
$cookiePath
,
null
,
false
,
false
);
}
}
return
redirect
(
$request
->
input
(
'url'
,
'https://metager.de'
));
}
...
...
@@ -384,6 +404,9 @@ class SettingsController extends Controller
if
(
$blpage
){
continue
;
}
if
(
$key
===
'dark_mode'
){
Cookie
::
queue
(
$key
,
$value
,
0
,
'/'
,
null
,
false
,
false
);
}
foreach
(
$sumaFile
[
'filter'
][
'parameter-filter'
]
as
$suma
=>
$filter
){
if
(
$key
===
$suma
&&
$value
===
$filter
){
Cookie
::
queue
(
$key
,
$value
,
0
,
$cookiePath
,
null
,
false
,
false
);
...
...
app/Http/Controllers/StartpageController.php
View file @
653286c1
...
...
@@ -3,6 +3,7 @@
namespace
App\Http\Controllers
;
use
App
;
use
Cookie
;
use
Illuminate\Http\Request
;
use
Jenssegers\Agent\Agent
;
use
LaravelLocalization
;
...
...
@@ -52,7 +53,8 @@ class StartpageController extends Controller
->
with
(
'request'
,
$request
->
input
(
'request'
,
'GET'
))
->
with
(
'option_values'
,
$option_values
)
->
with
(
'autocomplete'
,
$autocomplete
)
->
with
(
'pluginmodal'
,
$request
->
input
(
'plugin-modal'
,
'off'
));
->
with
(
'pluginmodal'
,
$request
->
input
(
'plugin-modal'
,
'off'
))
->
with
(
'darkcss'
,
[
mix
(
'css/themes/startpage-only-dark.css'
)]);
}
public
function
loadPage
(
$subpage
)
...
...
@@ -87,8 +89,9 @@ class StartpageController extends Controller
}
$response
=
Response
::
make
(
view
(
'plugin'
)
->
with
(
'link'
,
$link
)
,
"200"
);
->
with
(
'link'
,
$link
),
"200"
);
$response
->
header
(
'Content-Type'
,
"application/opensearchdescription+xml"
);
return
$response
;
}
...
...
app/Jobs/ConvertCountFile.php
View file @
653286c1
...
...
@@ -95,15 +95,13 @@ class ConvertCountFile implements ShouldQueue
fclose
(
$fh
);
}
if
(
!
$error
)
{
$oldUmask
=
umask
(
0
);
// Write the result to a File
if
(
!
file_exists
(
$this
->
files
[
"countPath"
]))
{
mkdir
(
$this
->
files
[
"countPath"
],
0777
,
true
);
}
file_put_contents
(
$this
->
files
[
"countFile"
],
json_encode
(
$result
,
JSON_PRETTY_PRINT
));
umask
(
$oldUmask
);
$oldUmask
=
umask
(
0
);
// Write the result to a File
if
(
!
file_exists
(
$this
->
files
[
"countPath"
]))
{
mkdir
(
$this
->
files
[
"countPath"
],
0777
,
true
);
}
file_put_contents
(
$this
->
files
[
"countFile"
],
json_encode
(
$result
,
JSON_PRETTY_PRINT
));
umask
(
$oldUmask
);
Redis
::
del
(
md5
(
$this
->
files
[
"countFile"
]));
}
...
...
app/MetaGer.php
View file @
653286c1
...
...
@@ -297,6 +297,11 @@ class MetaGer
if
(
!
empty
(
$timings
))
{
$timings
[
"prepareResults"
][
"validated results"
]
=
microtime
(
true
)
-
$timings
[
"starttime"
];
}
$this
->
duplicationCheck
();
if
(
!
empty
(
$timings
))
{
$timings
[
"prepareResults"
][
"duplications checked"
]
=
microtime
(
true
)
-
$timings
[
"starttime"
];
}
# Validate Advertisements
$newResults
=
[];
foreach
(
$this
->
ads
as
$ad
)
{
...
...
@@ -399,6 +404,41 @@ class MetaGer
}
}
public
function
duplicationCheck
()
{
$arr
=
[];
for
(
$i
=
0
;
$i
<
count
(
$this
->
results
);
$i
++
)
{
$link
=
$this
->
results
[
$i
]
->
link
;
if
(
strpos
(
$link
,
"http://"
)
===
0
)
{
$link
=
substr
(
$link
,
7
);
}
if
(
strpos
(
$link
,
"https://"
)
===
0
)
{
$link
=
substr
(
$link
,
8
);
}
if
(
strpos
(
$link
,
"www."
)
===
0
)
{
$link
=
substr
(
$link
,
4
);
}
$link
=
trim
(
$link
,
"/"
);
$hash
=
md5
(
$link
);
if
(
isset
(
$arr
[
$link
]))
{
$arr
[
$link
]
->
gefVon
[]
=
$this
->
results
[
$i
]
->
gefVon
[
0
];
$arr
[
$link
]
->
gefVonLink
[]
=
$this
->
results
[
$i
]
->
gefVonLink
[
0
];
array_splice
(
$this
->
results
,
$i
,
1
);
$i
--
;
if
(
$arr
[
$link
]
->
new
===
true
||
$this
->
results
[
$i
]
->
new
===
true
)
{
$arr
[
$link
]
->
changed
=
true
;
}
}
else
{
$arr
[
$link
]
=
&
$this
->
results
[
$i
];
}
}
}
public
function
startAdgoal
(
&
$results
)
{
$publicKey
=
getenv
(
'adgoal_public'
);
...
...
@@ -505,7 +545,7 @@ class MetaGer
$newLink
=
"https://api.smartredirect.de/api_v2/ClickGate.php?p="
.
urlencode
(
$publicKey
)
.
"&k="
.
urlencode
(
$gateHash
)
.
"&url="
.
urlencode
(
$targetUrl
)
.
"&q="
.
urlencode
(
$query
);
$result
->
link
=
$newLink
;
$result
->
partnershop
=
true
;
$result
->
adgoalC
hanged
=
true
;
$result
->
c
hanged
=
true
;
}
}
}
...
...
@@ -939,7 +979,7 @@ class MetaGer
$mainEngines
=
$this
->
sumaFile
->
foki
->
{
$this
->
fokus
}
->
main
;
foreach
(
$mainEngines
as
$mainEngine
)
{
foreach
(
$engines
as
$engine
)
{
if
(
$engine
->
name
===
$mainEngine
&&
!
$engine
->
loaded
)
{
if
(
$engine
->
name
===
$mainEngine
)
{
$enginesToWaitFor
[]
=
$engine
->
hash
;
}
}
...
...
@@ -950,6 +990,17 @@ class MetaGer
foreach
(
$engines
as
$engine
)
{
$enginesToWaitFor
[]
=
$engine
->
hash
;
}
}
else
{
$newEnginesToWaitFor
=
[];
// Don't wait for engines that are already loaded in Cache
foreach
(
$enginesToWaitFor
as
$engineToWaitFor
)
{
foreach
(
$engines
as
$engine
)
{
if
(
$engine
->
hash
===
$engineToWaitFor
&&
!
$engine
->
loaded
)
{
$newEnginesToWaitFor
[]
=
$engineToWaitFor
;
}
}
}
$enginesToWaitFor
=
$newEnginesToWaitFor
;
}
$timeStart
=
microtime
(
true
);
...
...
@@ -1048,7 +1099,7 @@ class MetaGer
$this
->
eingabe
=
trim
(
$request
->
input
(
'eingabe'
,
''
));
$this
->
q
=
$this
->
eingabe
;
if
(
$request
->
filled
(
"mgv"
))
{
if
(
$request
->
filled
(
"mgv"
)
||
$request
->
input
(
"out"
,
""
)
===
"results-with-style"
)
{
$this
->
framed
=
true
;
}
else
{
$this
->
framed
=
false
;
...
...
@@ -1213,10 +1264,10 @@ class MetaGer
}
}
public
function
createQuicktips
()
public
function
createQuicktips
()
{
# Die quicktips werden als job erstellt und zur Abarbeitung freigegeben
$quicktips
=
new
\
App\Models\Quicktips\Quicktips
(
$this
->
q
,
LaravelLocalization
::
getCurrentLocale
(),
$this
->
getTime
());
$quicktips
=
new
\
App\Models\Quicktips\Quicktips
(
$this
->
q
,
LaravelLocalization
::
getCurrentLocale
(),
$this
->
getTime
()
,
$this
->
sprueche
);
return
$quicktips
;
}
...
...
app/Models/Quicktips/Quicktips.php
View file @
653286c1
...
...
@@ -3,53 +3,59 @@
namespace
App\Models\Quicktips
;
use
Cache
;
use
LaravelLocalization
;
use
Illuminate\Foundation\Bus\DispatchesJobs
;
use
Illuminate\Support\Facades\Redis
;
use
Log
;
class
Quicktips
{
use
DispatchesJobs
;
private
$quicktipUrl
=
"/1.1/quicktips.xml"
;
private
$results
=
[];
const
QUICKTIP_NAME
=
"quicktips"
;
const
CACHE_DURATION
=
60
*
60
;