MetaGerSearch.php 2.08 KB
Newer Older
Dominik Hebeler's avatar
Dominik Hebeler committed
1
2
3
4
<?php

namespace App\Http\Controllers;

5
use App;
6
use App\MetaGer;
7
use Illuminate\Http\Request;
Dominik Hebeler's avatar
Dominik Hebeler committed
8
9
10

class MetaGerSearch extends Controller
{
11
    public function search(Request $request, MetaGer $metager)
12
    {
13

14
        $focus = $request->input("focus", "web");
15

16
17
18
19
20
        if ($focus === "maps") {
            $searchinput = $request->input('eingabe', '');
            return redirect()->to('https://maps.metager.de/map/' . $searchinput . '/1240908.5493525574,6638783.2192695495,6');
        }

21
        /*if ($focus !== "angepasst" && $this->startsWith($focus, "focus_")) {
22
23
        $metager->parseFormData($request);
        return $metager->createView();
24
25
        }*/

26
        #die($request->header('User-Agent'));
27
        $time = microtime();
28
29
        # Mit gelieferte Formulardaten parsen und abspeichern:
        $metager->parseFormData($request);
30

31
32
        # Nach Spezialsuchen überprüfen:
        $metager->checkSpecialSearches($request);
33

34
35
36
        # Die Quicktips als Job erstellen
        $quicktips = $metager->createQuicktips();

37
        # Suche für alle zu verwendenden Suchmaschinen als Job erstellen,
38
        # auf Ergebnisse warten und die Ergebnisse laden
39
        $metager->createSearchEngines($request);
40

41
42
43
        # Versuchen die Ergebnisse der Quicktips zu laden
        $quicktipResults = $quicktips->loadResults();

44
45
46
        # Alle Ergebnisse vor der Zusammenführung ranken:
        $metager->rankAll();

47
        # Ergebnisse der Suchmaschinen kombinieren:
Phil Höfer's avatar
Phil Höfer committed
48
        $metager->prepareResults();
49

50
        # Die Ausgabe erstellen:
51
        return $metager->createView($quicktipResults);
Dominik Hebeler's avatar
Dominik Hebeler committed
52
53
    }

54
55
56
57
58
59
60
61
    public function botProtection($redirect)
    {
        $hash = md5(date('YmdHi'));
        return view('botProtection')
            ->with('hash', $hash)
            ->with('r', $redirect);
    }

62
63
    public function get($url)
    {
64
        $ctx = stream_context_create(array('http' => array('timeout' => 2)));
65
        return file_get_contents($url, false, $ctx);
66
    }
67
68
69
70
71
72

    private function startsWith($haystack, $needle)
    {
        $length = strlen($needle);
        return (substr($haystack, 0, $length) === $needle);
    }
73
}