From 8dfd91cf957e26792b80d440ba901fdeed316024 Mon Sep 17 00:00:00 2001
From: Dominik Pfennig <dominik@suma-ev.de>
Date: Mon, 15 May 2017 07:46:11 +0200
Subject: [PATCH] =?UTF-8?q?Timeout=20f=C3=BCr=20alle=20Abfragen=20aus=20de?=
 =?UTF-8?q?n=20Quictips=20eingef=C3=BChrt=20(2s)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Wikipedia läuft in einen Timeout- Vermutlich wurden wir gebannt.
Die Ursache konnte ich nicht beheben, aber den resultierenden Fehler.
---
 app/Http/Controllers/MetaGerSearch.php | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/app/Http/Controllers/MetaGerSearch.php b/app/Http/Controllers/MetaGerSearch.php
index 6ff189373..39e7d86bb 100644
--- a/app/Http/Controllers/MetaGerSearch.php
+++ b/app/Http/Controllers/MetaGerSearch.php
@@ -172,7 +172,12 @@ class MetaGerSearch extends Controller
 
         # Wikipedia Quicktip
         $url             = "https://" . APP::getLocale() . ".wikipedia.org/w/api.php?action=opensearch&search=" . urlencode($q) . "&limit=10&namespace=0&format=json&redirects=resolve";
-        $decodedResponse = json_decode($this->get($url), true);
+    	try{
+    		$content = $this->get($url);
+    	}catch(\ErrorException $e){
+    		$content = "";
+    	}
+        $decodedResponse = json_decode($content, true);
         if (isset($decodedResponse[1][0]) && isset($decodedResponse[2][0]) && isset($decodedResponse[3][0])) {
             $quicktip     = [];
             $firstSummary = $decodedResponse[2][0];
@@ -261,7 +266,8 @@ class MetaGerSearch extends Controller
 
     public function get($url)
     {
-        return file_get_contents($url);
+	   $ctx = stream_context_create(array('http'=>array('timeout' => 2,)));
+        return file_get_contents($url, false, $ctx);
     }
 
     private function startsWith($haystack, $needle)
-- 
GitLab