From cca865961811764bdaf8a78fe9195dcdacd3539b Mon Sep 17 00:00:00 2001 From: Dominik Hebeler <dominik@suma-ev.de> Date: Wed, 14 Oct 2020 08:41:40 +0000 Subject: [PATCH] Merge branch '1024-optimize-request-fetcher' into 'development' Resolve "Optimize Request fetcher" Closes #1024 See merge request open-source/MetaGer!1706 (cherry picked from commit 40a4c53a81bf8893931274e2776498a812ffbf95) 1a48e785 Added missing Cache import 44e48c90 fixed invalid UTF-8 characters in json response --- app/Http/Controllers/AdminSpamController.php | 7 ++++++- app/Http/Controllers/MetaGerSearch.php | 8 +++++--- app/Http/Middleware/BrowserVerification.php | 8 ++++---- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/AdminSpamController.php b/app/Http/Controllers/AdminSpamController.php index e4a514ce3..43ccfc0be 100644 --- a/app/Http/Controllers/AdminSpamController.php +++ b/app/Http/Controllers/AdminSpamController.php @@ -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() diff --git a/app/Http/Controllers/MetaGerSearch.php b/app/Http/Controllers/MetaGerSearch.php index afadcafdf..22289cad8 100644 --- a/app/Http/Controllers/MetaGerSearch.php +++ b/app/Http/Controllers/MetaGerSearch.php @@ -12,7 +12,6 @@ use View; class MetaGerSearch extends Controller { - public function search(Request $request, MetaGer $metager, $timing = false) { if ($request->filled("chrome-plugin")) { @@ -156,7 +155,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) { - echo ($responsePart); + echo($responsePart); flush(); } $requestTime = microtime(true) - $time; @@ -182,7 +181,6 @@ class MetaGerSearch extends Controller if ($request->filled('loadMore') && $request->filled('script') && $request->input('script') === "yes") { return $this->loadMoreJS($request); } - } private function loadMoreJS(Request $request) @@ -296,6 +294,10 @@ class MetaGerSearch extends Controller ], "engines" => $metager->getEngines(), ], 1 * 60); + + # JSON encoding will fail if invalid UTF-8 Characters are in this string + # mb_convert_encoding will remove thise invalid characters for us + $result = mb_convert_encoding($result, "UTF-8", "UTF-8"); return response()->json($result); } diff --git a/app/Http/Middleware/BrowserVerification.php b/app/Http/Middleware/BrowserVerification.php index 00182c225..f8ec4a32f 100644 --- a/app/Http/Middleware/BrowserVerification.php +++ b/app/Http/Middleware/BrowserVerification.php @@ -5,6 +5,7 @@ namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Redis; use Jenssegers\Agent\Agent; +use Cache; class BrowserVerification { @@ -59,12 +60,12 @@ class BrowserVerification $key = md5($request->ip() . microtime(true)); - echo (view('layouts.resultpage.verificationHeader')->with('key', $key)->render()); + echo(view('layouts.resultpage.verificationHeader')->with('key', $key)->render()); flush(); $answer = Redis::connection("cache")->blpop($key, 2); if ($answer !== null) { - echo (view('layouts.resultpage.resources')->render()); + echo(view('layouts.resultpage.resources')->render()); flush(); $request->request->add(["headerPrinted" => true, "jskey" => $key]); return $next($request); @@ -74,9 +75,8 @@ class BrowserVerification $params["mgv"] = $key; $url = route("resultpage", $params); - echo (view('layouts.resultpage.unverifiedResultPage') + echo(view('layouts.resultpage.unverifiedResultPage') ->with('url', $url) ->render()); - } } -- GitLab