diff --git a/app/Http/Controllers/AdminInterface.php b/app/Http/Controllers/AdminInterface.php index c7cd810f083ee94c55fa40ded411396d53ea5694..959b2ca2fed451eb5f4d9b718519c90b66417f2a 100644 --- a/app/Http/Controllers/AdminInterface.php +++ b/app/Http/Controllers/AdminInterface.php @@ -96,4 +96,37 @@ class AdminInterface extends Controller ->with('title', 'Wer sucht was? - MetaGer') ->with('q', $q); } + + public function engines() + { + # Wir laden den Inhalt der Log Datei und übergeben ihn an den view + $file = "/var/log/metager/engine.log"; + if (file_exists($file) && is_readable($file)) { + $engineStats = file_get_contents($file); + # Daten vom JSON Format dekodieren + $engineStats = json_decode($engineStats, true); + + # Eine Sortierung wäre nicht das verkehrteste + uasort($engineStats["recent"], function ($a, $b) { + if ($a["requests"] == $b["requests"]) { + return 0; + } + + return ($a["requests"] < $b["requests"]) ? 1 : -1; + }); + + uasort($engineStats["overall"], function ($a, $b) { + if ($a["requests"] == $b["requests"]) { + return 0; + } + + return ($a["requests"] < $b["requests"]) ? 1 : -1; + }); + return view('admin.engines') + ->with('engineStats', $engineStats) + ->with('title', "Suchmaschinenstatus - MetaGer"); + } else { + return redirect(url('admin')); + } + } } diff --git a/app/Http/routes.php b/app/Http/routes.php index 04074ed736c0486d83457bce14b3e25e2f61bf00..96423a88fa1b8f6c5c4d4c217890f28f94b4ed52 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -144,6 +144,7 @@ Route::group( Route::get('admin', 'AdminInterface@index'); Route::get('admin/count', 'AdminInterface@count'); Route::get('admin/check', 'AdminInterface@check'); + Route::get('admin/engines', 'AdminInterface@engines'); Route::get('settings', 'StartpageController@loadSettings'); diff --git a/resources/views/admin/engines.blade.php b/resources/views/admin/engines.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..43ad731e9ff502a9952ea24e7fef7f5326c793f7 --- /dev/null +++ b/resources/views/admin/engines.blade.php @@ -0,0 +1,54 @@ +@extends('layouts.subPages') + +@section('title', $title ) + +@section('content') +<h1>Suchmaschinenübersicht</h1> +<p>Diese Übersicht gibt Aufschluss darüber, welche Suchmaschinen wie oft abgefragt wurden und zusätzlich wie oft diese innerhalb unseres Timeouts geantwortet haben</p> +<table class="table table-bordered"> + <caption>Daten der letzten 10 Minuten</caption> + <thead> + <tr> + <th>Name</th> + <th>Anzahl der gesamten Abfragen</th> + <th>Davon tatsächlich beantwortet</th> + <th>Prozent</th> + </tr> + </thead> + <tbody> + @foreach($engineStats["recent"] as $name => $values) + @if($values["requests"] > 0) + <tr @if($values["requests"] === $values["answered"]) class="success" @else class="danger" @endif> + <td>{{$name}}</td> + <td>{{$values["requests"]}}</td> + <td>{{$values["answered"]}}</td> + <td>{{ floor(($values["answered"] / $values["requests"]) * 100) }}%</td> + </tr> + @endif + @endforeach + </tbody> +</table> +<table class="table table-bordered"> + <caption>Daten insgesamt</caption> + <thead> + <tr> + <th>Name</th> + <th>Anzahl der gesamten Abfragen</th> + <th>Davon tatsächlich beantwortet</th> + <th>Prozent</th> + </tr> + </thead> + <tbody> + @foreach($engineStats["overall"] as $name => $values) + @if($values["requests"] > 0) + <tr @if($values["requests"] === $values["answered"]) class="success" @else class="danger" @endif> + <td>{{$name}}</td> + <td>{{$values["requests"]}}</td> + <td>{{$values["answered"]}}</td> + <td>{{ floor(($values["answered"] / $values["requests"]) * 100) }}%</td> + </tr> + @endif + @endforeach + </tbody> +</table> +@endsection