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
f33b2a0d
Commit
f33b2a0d
authored
Nov 06, 2020
by
Dominik Hebeler
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'development' into carsten-membership-form
parents
ac15ec9c
28ca0eef
Changes
263
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
263 changed files
with
4980 additions
and
19218 deletions
+4980
-19218
.gitignore
.gitignore
+4
-1
.gitlab-ci.yml
.gitlab-ci.yml
+12
-1
.gitlab/development-values.yaml
.gitlab/development-values.yaml
+19
-4
.gitlab/production-values.yaml
.gitlab/production-values.yaml
+26
-8
.gitlab/review-apps-values.yaml
.gitlab/review-apps-values.yaml
+17
-1
app/Console/Commands/RequestFetcher.php
app/Console/Commands/RequestFetcher.php
+59
-69
app/Http/Controllers/AdminInterface.php
app/Http/Controllers/AdminInterface.php
+21
-6
app/Http/Controllers/AdminSpamController.php
app/Http/Controllers/AdminSpamController.php
+6
-1
app/Http/Controllers/MetaGerSearch.php
app/Http/Controllers/MetaGerSearch.php
+24
-11
app/Http/Controllers/SettingsController.php
app/Http/Controllers/SettingsController.php
+166
-17
app/Http/Controllers/StartpageController.php
app/Http/Controllers/StartpageController.php
+7
-4
app/Http/Middleware/BrowserVerification.php
app/Http/Middleware/BrowserVerification.php
+4
-4
app/Jobs/ConvertCountFile.php
app/Jobs/ConvertCountFile.php
+6
-8
app/MetaGer.php
app/MetaGer.php
+165
-47
app/Models/Quicktips/Quicktips.php
app/Models/Quicktips/Quicktips.php
+49
-30
app/Models/Result.php
app/Models/Result.php
+10
-9
app/Models/Searchengine.php
app/Models/Searchengine.php
+8
-4
app/PrometheusExporter.php
app/PrometheusExporter.php
+1
-1
chart/requirements.lock
chart/requirements.lock
+3
-3
chart/requirements.yaml
chart/requirements.yaml
+3
-1
chart/templates/deployment.yaml
chart/templates/deployment.yaml
+9
-12
composer.json
composer.json
+1
-2
config/database.php
config/database.php
+1
-0
index.html
index.html
+2
-2
package-lock.json
package-lock.json
+0
-11090
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
+23
-0
resources/lang/de/plugin-desktop/desktop-edge.php
resources/lang/de/plugin-desktop/desktop-edge.php
+28
-0
resources/lang/de/plugin-desktop/desktop-firefox.php
resources/lang/de/plugin-desktop/desktop-firefox.php
+31
-0
resources/lang/de/plugin-desktop/desktop-ie.php
resources/lang/de/plugin-desktop/desktop-ie.php
+18
-0
resources/lang/de/plugin-desktop/desktop-opera.php
resources/lang/de/plugin-desktop/desktop-opera.php
+14
-0
resources/lang/de/plugin-desktop/desktop-safari.php
resources/lang/de/plugin-desktop/desktop-safari.php
+8
-0
resources/lang/de/plugin-desktop/desktop-vivaldi.php
resources/lang/de/plugin-desktop/desktop-vivaldi.php
+11
-0
resources/lang/de/plugin-mobile/mobile-chrome.php
resources/lang/de/plugin-mobile/mobile-chrome.php
+15
-0
resources/lang/de/plugin-mobile/mobile-edge.php
resources/lang/de/plugin-mobile/mobile-edge.php
+14
-0
resources/lang/de/plugin-mobile/mobile-firefox-klar.php
resources/lang/de/plugin-mobile/mobile-firefox-klar.php
+10
-0
resources/lang/de/plugin-mobile/mobile-firefox.php
resources/lang/de/plugin-mobile/mobile-firefox.php
+17
-0
resources/lang/de/plugin-mobile/mobile-opera.php
resources/lang/de/plugin-mobile/mobile-opera.php
+9
-0
resources/lang/de/plugin-page.php
resources/lang/de/plugin-page.php
+24
-79
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
+38
-22
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/de/tor.php
resources/lang/de/tor.php
+1
-0
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-chrome.php
resources/lang/en/plugin-desktop/desktop-chrome.php
+22
-0
resources/lang/en/plugin-desktop/desktop-edge.php
resources/lang/en/plugin-desktop/desktop-edge.php
+28
-0
resources/lang/en/plugin-desktop/desktop-firefox.php
resources/lang/en/plugin-desktop/desktop-firefox.php
+31
-0
resources/lang/en/plugin-desktop/desktop-ie.php
resources/lang/en/plugin-desktop/desktop-ie.php
+18
-0
resources/lang/en/plugin-desktop/desktop-opera.php
resources/lang/en/plugin-desktop/desktop-opera.php
+15
-0
resources/lang/en/plugin-desktop/desktop-safari.php
resources/lang/en/plugin-desktop/desktop-safari.php
+8
-0
resources/lang/en/plugin-desktop/desktop-vivaldi.php
resources/lang/en/plugin-desktop/desktop-vivaldi.php
+11
-0
resources/lang/en/plugin-mobile/mobile-chrome.php
resources/lang/en/plugin-mobile/mobile-chrome.php
+15
-0
resources/lang/en/plugin-mobile/mobile-edge.php
resources/lang/en/plugin-mobile/mobile-edge.php
+14
-0
resources/lang/en/plugin-mobile/mobile-firefox-klar.php
resources/lang/en/plugin-mobile/mobile-firefox-klar.php
+11
-0
resources/lang/en/plugin-mobile/mobile-firefox.php
resources/lang/en/plugin-mobile/mobile-firefox.php
+17
-0
resources/lang/en/plugin-mobile/mobile-opera.php
resources/lang/en/plugin-mobile/mobile-opera.php
+9
-0
resources/lang/en/plugin-page.php
resources/lang/en/plugin-page.php
+13
-65
resources/lang/en/result.php
resources/lang/en/result.php
+1
-0
resources/lang/en/settings.php
resources/lang/en/settings.php
+16
-0
resources/lang/en/sidebar.php
resources/lang/en/sidebar.php
+2
-0
resources/lang/en/tor.php
resources/lang/en/tor.php
+1
-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/tor.php
resources/lang/es/tor.php
+1
-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/plugin.less
resources/less/metager/pages/plugin.less
+4
-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
+50
-0
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
+89
-44
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
+3
-3
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
-11
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
+3
-3
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
+111
-152
resources/views/plugin/desktop/chrome/v49.blade.php
resources/views/plugin/desktop/chrome/v49.blade.php
+17
-0
resources/views/plugin/desktop/chrome/v53.blade.php
resources/views/plugin/desktop/chrome/v53.blade.php
+17
-0
resources/views/plugin/desktop/chrome/v59.blade.php
resources/views/plugin/desktop/chrome/v59.blade.php
+17
-0
resources/views/plugin/desktop/edge/v15.blade.php
resources/views/plugin/desktop/edge/v15.blade.php
+17
-0
resources/views/plugin/desktop/edge/v18.blade.php
resources/views/plugin/desktop/edge/v18.blade.php
+17
-0
resources/views/plugin/desktop/edge/v80.blade.php
resources/views/plugin/desktop/edge/v80.blade.php
+15
-0
resources/views/plugin/desktop/firefox/v52.blade.php
resources/views/plugin/desktop/firefox/v52.blade.php
+16
-0
resources/views/plugin/desktop/firefox/v57.blade.php
resources/views/plugin/desktop/firefox/v57.blade.php
+17
-0
resources/views/plugin/desktop/firefox/v61.blade.php
resources/views/plugin/desktop/firefox/v61.blade.php
+22
-0
resources/views/plugin/desktop/ie/v11.blade.php
resources/views/plugin/desktop/ie/v11.blade.php
+18
-0
resources/views/plugin/desktop/ie/v9.blade.php
resources/views/plugin/desktop/ie/v9.blade.php
+15
-0
resources/views/plugin/desktop/opera/v36.blade.php
resources/views/plugin/desktop/opera/v36.blade.php
+19
-0
resources/views/plugin/desktop/safari/v10.blade.php
resources/views/plugin/desktop/safari/v10.blade.php
+14
-0
resources/views/plugin/desktop/vivaldi/v3-3.blade.php
resources/views/plugin/desktop/vivaldi/v3-3.blade.php
+17
-0
resources/views/plugin/mobile/chrome/v83.blade.php
resources/views/plugin/mobile/chrome/v83.blade.php
+26
-0
resources/views/plugin/mobile/edge/v45.blade.php
resources/views/plugin/mobile/edge/v45.blade.php
+26
-0
resources/views/plugin/mobile/firefox-klar/v8-8.blade.php
resources/views/plugin/mobile/firefox-klar/v8-8.blade.php
+17
-0
resources/views/plugin/mobile/firefox/v80.blade.php
resources/views/plugin/mobile/firefox/v80.blade.php
+18
-0
resources/views/plugin/mobile/firefox/vlt80.blade.php
resources/views/plugin/mobile/firefox/vlt80.blade.php
+15
-0
resources/views/plugin/mobile/opera/v60.blade.php
resources/views/plugin/mobile/opera/v60.blade.php
+23
-0
resources/views/quicktips.blade.php
resources/views/quicktips.blade.php
+1
-15
resources/views/settings/allSettings.blade.php
resources/views/settings/allSettings.blade.php
+4
-0
resources/views/settings/index.blade.php
resources/views/settings/index.blade.php
+64
-16
resources/views/tor.blade.php
resources/views/tor.blade.php
+1
-1
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
routes/cookie.php
routes/cookie.php
+4
-1
routes/web.php
routes/web.php
+1
-0
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.
.gitignore
View file @
f33b2a0d
...
...
@@ -21,4 +21,7 @@ npm-debug.log
/.project
composer.lock
local.log
\ No newline at end of file
package-lock.json
local.log
browserstack.err
.gitlab-ci.yml
View file @
f33b2a0d
...
...
@@ -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 @
f33b2a0d
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
:
...
...
@@ -25,7 +40,7 @@ ingress:
annotations
:
cert-manager.io/cluster-issuer
:
letsencrypt-prod
nginx.ingress.kubernetes.io/configuration-snippet
:
|
more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self'; base-uri; manifest-src; plugin-types; report-uri; report-to";
more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self'
www.paypal.com
; base-uri; manifest-src; plugin-types; report-uri; report-to";
more_set_headers "X-Frame-Options: sameorigin";
more_set_headers "X-Content-Type-Options: nosniff";
more_set_headers "ReferrerPolicy: origin";
...
...
.gitlab/production-values.yaml
View file @
f33b2a0d
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,11 +16,34 @@ 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
nginx.ingress.kubernetes.io/configuration-snippet
:
|
more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self'; base-uri; manifest-src; plugin-types; report-uri; report-to";
more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self'
www.paypal.com
; base-uri; manifest-src; plugin-types; report-uri; report-to";
more_set_headers "X-Frame-Options: sameorigin";
more_set_headers "X-Content-Type-Options: nosniff";
more_set_headers "ReferrerPolicy: origin";
...
...
.gitlab/review-apps-values.yaml
View file @
f33b2a0d
---
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/Console/Commands/RequestFetcher.php
View file @
f33b2a0d
...
...
@@ -25,10 +25,9 @@ class RequestFetcher extends Command
protected
$shouldRun
=
true
;
protected
$multicurl
=
null
;
protected
$oldMultiCurl
=
null
;
protected
$maxFetchedDocuments
=
100000
;
protected
$fetchedDocuments
=
0
;
protected
$proxyhost
,
$proxyuser
,
$proxypassword
;
protected
$proxyhost
;
protected
$proxyuser
;
protected
$proxypassword
;
/**
* Create a new command instance.
...
...
@@ -43,7 +42,6 @@ class RequestFetcher extends Command
$this
->
proxyport
=
env
(
"PROXY_PORT"
,
""
);
$this
->
proxyuser
=
env
(
"PROXY_USER"
,
""
);
$this
->
proxypassword
=
env
(
"PROXY_PASSWORD"
,
""
);
}
/**
...
...
@@ -53,7 +51,6 @@ class RequestFetcher extends Command
*/
public
function
handle
()
{
$pidFile
=
"/tmp/fetcher"
;
pcntl_signal
(
SIGINT
,
[
$this
,
"sig_handler"
]);
pcntl_signal
(
SIGTERM
,
[
$this
,
"sig_handler"
]);
...
...
@@ -80,61 +77,16 @@ class RequestFetcher extends Command
}
try
{
$blocking
=
false
;
while
(
$this
->
shouldRun
)
{
$status
=
curl_multi_exec
(
$this
->
multicurl
,
$active
);
$currentJobs
=
[];
if
(
!
$blocking
)
{
$elements
=
Redis
::
pipeline
(
function
(
$redis
)
{
$redis
->
lrange
(
\
App\MetaGer
::
FETCHQUEUE_KEY
,
0
,
-
1
);
$redis
->
del
(
\
App\MetaGer
::
FETCHQUEUE_KEY
);
});
$currentJobs
=
$elements
[
0
];
}
else
{
$currentJob
=
Redis
::
blpop
(
\
App\MetaGer
::
FETCHQUEUE_KEY
,
1
);
if
(
!
empty
(
$currentJob
))
{
$currentJobs
[]
=
$currentJob
[
1
];
}
}
if
(
sizeof
(
$currentJobs
)
>
0
)
{
foreach
(
$currentJobs
as
$currentJob
)
{
$currentJob
=
json_decode
(
$currentJob
,
true
);
$ch
=
$this
->
getCurlHandle
(
$currentJob
);
if
(
curl_multi_add_handle
(
$this
->
multicurl
,
$ch
)
!==
0
)
{
$this
->
shouldRun
=
false
;
Log
::
error
(
"Couldn't add Handle to multicurl"
);
break
;
}
$this
->
fetchedDocuments
++
;
if
(
$this
->
fetchedDocuments
>
$this
->
maxFetchedDocuments
)
{
Log
::
info
(
"Reinitializing Multicurl after "
.
$this
->
fetchedDocuments
.
" requests."
);
$this
->
oldMultiCurl
=
$this
->
multicurl
;
$this
->
multicurl
=
curl_multi_init
();
$this
->
fetchedDocuments
=
0
;
}
$blocking
=
false
;
$active
=
true
;
}
}
$answerRead
=
$this
->
readMultiCurl
(
$this
->
multicurl
);
if
(
$this
->
oldMultiCurl
!=
null
)
{
$this
->
readMultiCurl
(
$this
->
oldMultiCurl
);
$messagesLeft
=
-
1
;
if
(
curl_multi_info_read
(
$this
->
oldMultiCurl
,
$messagesLeft
)
===
false
)
{
if
(
$messagesLeft
=
0
)
{
Log
::
debug
(
"Removing finished multicurl handle"
);
curl_multi_close
(
$this
->
oldMultiCurl
);
$this
->
oldMultiCurl
=
null
;
}
}
}
if
(
!
$active
&&
!
$answerRead
)
{
$blocking
=
true
;
}
else
{
usleep
(
50
*
1000
);
$operationsRunning
=
true
;
curl_multi_exec
(
$this
->
multicurl
,
$operationsRunning
);
$status
=
$this
->
readMultiCurl
(
$this
->
multicurl
);
$answersRead
=
$status
[
0
];
$messagesLeft
=
$status
[
1
];
$newJobs
=
$this
->
checkNewJobs
(
$operationsRunning
,
$messagesLeft
);
if
(
$newJobs
===
0
&&
$answersRead
===
0
)
{
usleep
(
10
*
1000
);
}
}
}
finally
{
...
...
@@ -143,21 +95,59 @@ class RequestFetcher extends Command
}
}
/**
* Checks the Redis queue if any new fetch jobs where submitted
* and adds them to multicurl if there are.
* Will be blocking call to redis if there are no running jobs in multicurl
*/
private
function
checkNewJobs
(
$operationsRunning
,
$messagesLeft
)
{
$newJobs
=
[];
if
(
$operationsRunning
===
0
&&
$messagesLeft
===
-
1
)
{
$newJob
=
Redis
::
blpop
(
\
App\MetaGer
::
FETCHQUEUE_KEY
,
1
);
if
(
!
empty
(
$newJob
))
{
$newJobs
[]
=
$newJob
[
1
];
}
}
else
{
$elements
=
Redis
::
pipeline
(
function
(
$redis
)
{
$redis
->
lrange
(
\
App\MetaGer
::
FETCHQUEUE_KEY
,
0
,
-
1
);
$redis
->
del
(
\
App\MetaGer
::
FETCHQUEUE_KEY
);
});
$newJobs
=
$elements
[
0
];
}
$addedJobs
=
0
;
foreach
(
$newJobs
as
$newJob
)
{
$newJob
=
json_decode
(
$newJob
,
true
);
$ch
=
$this
->
getCurlHandle
(
$newJob
);
if
(
curl_multi_add_handle
(
$this
->
multicurl
,
$ch
)
!==
0
)
{
$this
->
shouldRun
=
false
;
Log
::
error
(
"Couldn't add Handle to multicurl"
);
break
;
}
else
{
$addedJobs
++
;
}
}
return
$addedJobs
;
}
private
function
readMultiCurl
(
$mc
)
{
$answerRead
=
false
;
while
((
$info
=
curl_multi_info_read
(
$mc
))
!==
false
)
{
$messagesLeft
=
-
1
;
$answersRead
=
0
;
while
((
$info
=
curl_multi_info_read
(
$mc
,
$messagesLeft
))
!==
false
)
{
try
{
$answer
Read
=
true
;
$answer
sRead
++
;
$infos
=
curl_getinfo
(
$info
[
"handle"
],
CURLINFO_PRIVATE
);
$infos
=
explode
(
";"
,
$infos
);
$resulthash
=
$infos
[
0
];
$cacheDurationMinutes
=
intval
(
$infos
[
1
]);
$name
=
$infos
[
2
];
$responseCode
=
curl_getinfo
(
$info
[
"handle"
],
CURLINFO_HTTP_CODE
);
$body
=
""
;
$body
=
"
no-result
"
;
$totalTime
=
curl_getinfo
(
$info
[
"handle"
],
CURLINFO_TOTAL_TIME
);
$totalTime
=
curl_getinfo
(
$info
[
"handle"
],
CURLINFO_TOTAL_TIME
);
\
App\PrometheusExporter
::
Duration
(
$totalTime
,
$name
);
$error
=
curl_error
(
$info
[
"handle"
]);
...
...
@@ -166,13 +156,14 @@ class RequestFetcher extends Command
}
if
(
$responseCode
!==
200
)
{
Log
::
debug
(
$resulthash
);
Log
::
debug
(
"Got responsecode "
.
$responseCode
.
" fetching
\"
"
.
curl_getinfo
(
$info
[
"handle"
],
CURLINFO_EFFECTIVE_URL
)
.
"
\n
"
);
}
else
{
$body
=
\
curl_multi_getcontent
(
$info
[
"handle"
]);
}
Redis
::
pipeline
(
function
(
$pipe
)
use
(
$resulthash
,
$body
,
$cacheDurationMinutes
)
{
$pipe
->
set
(
$resulthash
,
$body
);
$pipe
->
lpush
(
$resulthash
,
$body
);
$pipe
->
expire
(
$resulthash
,
60
);
});
...
...
@@ -187,7 +178,7 @@ class RequestFetcher extends Command
\
curl_multi_remove_handle
(
$mc
,
$info
[
"handle"
]);
}
}
return
$answerRead
;
return
[
$answersRead
,
$messagesLeft
]
;
}
private
function
getCurlHandle
(
$job
)
...
...
@@ -234,7 +225,6 @@ class RequestFetcher extends Command
public
function
sig_handler
(
$sig
)
{
$this
->
shouldRun
=
false
;
echo
(
"Terminating Process
\n
"
);
echo
(
"Terminating Process
\n
"
);
}
}
app/Http/Controllers/AdminInterface.php
View file @
f33b2a0d
...
...
@@ -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/AdminSpamController.php
View file @
f33b2a0d
...
...
@@ -44,6 +44,9 @@ class AdminSpamController extends Controller
public
function
jsonQueries
()
{
$queries
=
$this
->
getQueries
();
# JSON encoding will fail if invalid UTF-8 Characters are in this string
# mb_convert_encoding will remove thise invalid characters for us
$queries
=
mb_convert_encoding
(
$queries
,
"UTF-8"
,
"UTF-8"
);
return
response
()
->
json
(
$queries
);
}
...
...
@@ -77,8 +80,10 @@ class AdminSpamController extends Controller
];
}
# JSON encoding will fail if invalid UTF-8 Characters are in this string
# mb_convert_encoding will remove thise invalid characters for us
$resultData
=
mb_convert_encoding
(
$resultData
,
"UTF-8"
,
"UTF-8"
);
return
response
()
->
json
(
$resultData
);
}
private
function
getQueries
()
...
...
app/Http/Controllers/MetaGerSearch.php
View file @
f33b2a0d
...
...
@@ -12,9 +12,11 @@ use View;
class
MetaGerSearch
extends
Controller
{
public
function
search
(
Request
$request
,
MetaGer
$metager
,
$timing
=
false
)
{
if
(
$request
->
filled
(
"chrome-plugin"
))
{
return
redirect
(
LaravelLocalization
::
getLocalizedURL
(
LaravelLocalization
::
getCurrentLocale
(),
"/plugin"
));
}
$timings
=
null
;
if
(
$timing
)
{
$timings
=
[
'starttime'
=>
microtime
(
true
)];
...
...
@@ -74,12 +76,23 @@ class MetaGerSearch extends Controller
return
response
(
$responseContent
);
}
$quicktips
=
$metager
->
createQuicktips
();
if
(
!
empty
(
$timings
))
{
$timings
[
"createQuicktips"
]
=
microtime
(
true
)
-
$time
;
}
# Suche für alle zu verwendenden Suchmaschinen als Job erstellen,
# auf Ergebnisse warten und die Ergebnisse laden
$metager
->
createSearchEngines
(
$request
,
$timings
);
$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
;
...
...
@@ -97,10 +110,7 @@ class MetaGerSearch extends Controller
}
# Ergebnisse der Suchmaschinen kombinieren:
$metager
->
prepareResults
();
if
(
!
empty
(
$timings
))
{
$timings
[
"prepareResults"
]
=
microtime
(
true
)
-
$time
;
}
$metager
->
prepareResults
(
$timings
);
$finished
=
true
;
foreach
(
$metager
->
getEngines
()
as
$engine
)
{
...
...
@@ -129,7 +139,7 @@ class MetaGerSearch extends Controller
}
# Die Ausgabe erstellen:
$resultpage
=
$metager
->
createView
();
$resultpage
=
$metager
->
createView
(
$quicktipResults
);
if
(
$spamEntry
!==
null
)
{
try
{
Cache
::
put
(
'spam.'
.
$metager
->
getFokus
()
.
"."
.
md5
(
$spamEntry
),
$resultpage
->
render
(),
604800
);
...
...
@@ -156,7 +166,7 @@ class MetaGerSearch extends Controller
// This might speed up page view time for users with slow network
$responseArray
=
str_split
(
$resultpage
->
render
(),
1024
);
foreach
(
$responseArray
as
$responsePart
)
{