MetaGerSearch.php 2.12 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;
Phil Höfer's avatar
Phil Höfer committed
8
use LaravelLocalization;
Dominik Hebeler's avatar
Dominik Hebeler committed
9
10
11

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

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

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

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

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

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

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

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

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

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

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

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

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

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