Commit d9d10f97 authored by Dominik Hebeler's avatar Dominik Hebeler
Browse files

Merge remote-tracking branch 'origin/development' into 126-spendenaufruf-einbauen

parents 48bc5e43 af313829
......@@ -6,6 +6,7 @@ use Illuminate\Http\Request;
use App\Http\Requests;
use Redis;
use Response;
class AdminInterface extends Controller
{
......@@ -36,9 +37,71 @@ class AdminInterface extends Controller
}
#$data = [ 5 => "majm", 2 => "mngsn", 7 => "akljsd"];
#arsort($data);
return view('admin')
return view('admin.admin')
->with('data', $data)
->with('title', "Admin-Interface-MetaGer")
->with('time', $time);
}
public function count()
{
$logToday = "mg3.log";
if(file_exists("/var/log/metager/".$logToday))
{
$logToday = file("/var/log/metager/".$logToday);
}else
{
return redirect('');
}
$oldLogs = [];
$yesterday = 0;
$rekordTag = 0;
$rekordTagDate = "";
$size = 0;
$count = 0;
for($i = 1; $i <= 28; $i ++ )
{
$logDate = "/var/log/metager/archive/mg3.log.$i";
if( file_exists($logDate) )
{
$sameTime = exec("grep -n '" . date('H') . ":" . date('i') . ":' $logDate | tail -1 | cut -f1 -d':'");
$insgesamt = exec("wc -l $logDate | cut -f1 -d' '");
if($insgesamt > $rekordTag)
{
$rekordTag = $insgesamt;
$rekordTagSameTime = $sameTime;
$rekordTagDate = date("d.m.Y", mktime(date("H"),date("i"), date("s"), date("m"), date("d")-$i, date("Y")));
}
$oldLogs[$i]['sameTime'] = $sameTime;
$oldLogs[$i]['insgesamt'] = $insgesamt;
# Nun noch den median:
$count += $insgesamt;
$size++;
if($size > 0)
$oldLogs[$i]['median'] = ($count/$size);
}
}
return view('admin.count')
->with('title', 'Suchanfragen - MetaGer')
->with('today', number_format(floatval(sizeof($logToday)), 0, ",", "."))
->with('oldLogs', $oldLogs)
->with('rekordCount', number_format(floatval($rekordTag), 0, ",", "."))
->with('rekordTagSameTime', number_format(floatval($rekordTagSameTime), 0, ",", "."))
->with('rekordDate', $rekordTagDate);
}
public function check ()
{
$q = "";
$logFile = "/var/log/metager/mg3.log";
if( file_exists($logFile) )
{
$q = exec("tail -n 1 $logFile");
$q = substr($q, strpos($q, "search=")+7);
}
return view('admin.check')
->with('title', 'Wer sucht was? - MetaGer')
->with('q', $q);
}
}
......@@ -115,6 +115,8 @@
});
Route::get('admin', 'AdminInterface@index');
Route::get('admin/count', 'AdminInterface@count');
Route::get('admin/check', 'AdminInterface@check');
Route::get('settings', 'StartpageController@loadSettings');
......
......@@ -152,7 +152,7 @@ class MetaGer
private function createLogs()
{
$redis = Redis::connection('redisLogs');
if( $redis )
try
{
$logEntry = "";
$logEntry .= "[" . date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y"))) . "]";
......@@ -165,7 +165,8 @@ class MetaGer
.$this->request->header('HTTP_LANGUAGE')
.$this->request->header('User-Agent')
.$this->request->header('Keep-Alive')
.$this->request->header('X-Forwarded-For'));
.$this->request->header('X-Forwarded-For')
.date("H")); # Wichtig!! Den Parameter um die aktuelle Stunde erweitern. Ansonsten wäre die anonId dauerhaft einem Nutzer zuzuordnen.
$logEntry .= " anonId=$anonId";
$logEntry .= " ref=" . $this->request->header('Referer');
$useragent = $this->request->header('User-Agent');
......@@ -176,6 +177,9 @@ class MetaGer
$logEntry .= " iter= mm= time=" . round((microtime(true)-$this->starttime), 2) . " serv=" . $this->fokus . " which= hits= stringSearch= QuickTips= SSS= check=";
$logEntry .= " search=" . $this->eingabe;
$redis->rpush('logs.search', $logEntry);
}catch( \Exception $e)
{
return;
}
}
......
......@@ -28,25 +28,32 @@ class AppServiceProvider extends ServiceProvider
$today = strtotime(date(DATE_RFC822, mktime(0,0,0, date("m"), date("d"), date("Y"))));
$end = strtotime(date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y")))) - $today;
$expireAt = strtotime(date(DATE_RFC822, mktime(0,0,0, date("m"), date("d")+1, date("Y"))));
$redis = Redis::connection('redisLogs');
$p = getmypid();
$host = gethostname();
$begin = $this->begin - $today;
$redis->pipeline(function($pipe) use ($p, $expireAt, $host, $begin, $end)
{
for( $i = $begin; $i <= $end; $i++)
try{
$redis = Redis::connection('redisLogs');
if( !$redis )
return;
$p = getmypid();
$host = gethostname();
$begin = $this->begin - $today;
$redis->pipeline(function($pipe) use ($p, $expireAt, $host, $begin, $end)
{
$pipe->sadd("logs.worker.$host.$i", strval($p));
$pipe->expire("logs.worker.$host.$i", 10);
$pipe->eval("redis.call('hset', 'logs.worker.$host', '$i', redis.call('scard', 'logs.worker.$host.$i'))", 0);
$pipe->sadd("logs.worker", $host);
if( date("H") !== 0 )
for( $i = $begin; $i <= $end; $i++)
{
$pipe->expire("logs.worker.$host", $expireAt);
$pipe->expire("logs.worker", $expireAt);
$pipe->sadd("logs.worker.$host.$i", strval($p));
$pipe->expire("logs.worker.$host.$i", 10);
$pipe->eval("redis.call('hset', 'logs.worker.$host', '$i', redis.call('scard', 'logs.worker.$host.$i'))", 0);
$pipe->sadd("logs.worker", $host);
if( date("H") !== 0 )
{
$pipe->expire("logs.worker.$host", $expireAt);
$pipe->expire("logs.worker", $expireAt);
}
}
}
});
});
}catch( \Exception $e)
{
return;
}
});
}
......
......@@ -43,17 +43,6 @@ $(document).ready(function(){
$("#anpassen-label").click(function(){
window.location = "./settings/";
});
$(".cookie-box button").click(function(){
if(localStorage)
{
localStorage.setItem("cookie", "no");
}
});
if( localStorage && localStorage.getItem("cookie") == "no")
{
$(".cookie-box").addClass("hidden");
}
});
/*
......
@extends('layouts.subPages')
@section('title', $title )
@section('content')
<h1>Die letzte durchgeführte Suchanfrage bei MetaGer war:</h1>
<h2><span class="text-danger">{{ $q }}</span></h2>
<h3>Die gleiche Suche auf <a href="{{ action('MetaGerSearch@search') }}?eingabe={{ urlencode($q) }}&encoding=utf8&focus=web&lang=all" target="_blank">MetaGer</a>, oder <a href="https://www.google.de/?gws_rd=ssl#q={{ urlencode($q) }}" target="_blank">Google</a> durchführen.</h3>
@endsection
\ No newline at end of file
@extends('layouts.subPages')
@section('title', $title )
@section('content')
<h2>{{ exec("uptime") }}</h2>
<table class="table table-striped">
<caption>Daten der letzten Tage</caption>
<tr>
<th>Datum</th>
<th>Suchanfragen zur gleichen Zeit</th>
<th>Suchanfragen insgesamt</th>
<th>Mittelwert</th>
</tr>
@if( isset($today) )
<tr>
<td>{{ date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y"))) }}</td>
<td>{{ $today }}</td>
<td>???</td>
<td>???</td>
</tr>
@endif
@foreach($oldLogs as $key => $value)
<tr>
<td>{{ date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d")-$key, date("Y"))) }}</td>
<td>{{ $value['sameTime'] }}</td>
<td>{{ $value['insgesamt'] }}</td>
<td>{{ $value['median'] }}</td>
</tr>
@endforeach
</table>
@if( isset($rekordDate) && isset($rekordTagSameTime) && isset($rekordCount) )
<h3>Rekord am {{ $rekordDate }} zur gleichen Zeit <span class="text-info">{{ $rekordTagSameTime }}</span> - insgesamt <span class="text-danger">{{ $rekordCount }}</span></h3>
@endif
@endsection
\ No newline at end of file
......@@ -14,10 +14,6 @@
</li>
<li >
{{ trans('datenschutz.policy.5') }}
<ul class="bg-info text-info" style="text-align: left;">
<li>In der Zeit vom 07.07.2016 bis 15.07.2016 stellen wir unsere Serverkonfiguration auf ein verteiltes System um. Während dieser Umstellungszeit müssen wir hierfür einen Cookie setzen, der beschreibt, welcher Server welche Abfrage zu bearbeiten hat; in diesem Cookie werden keinerlei personenbeziehbaren Daten gespeichert, sondern lediglich eine Ziffer, welche den Antwort-Server referenziert (Sie können das in Ihrem Cookie nachprüfen). Spätestens nach oben genanntem Umstellungszeitraum verschwindet der Cookie wieder.
</li>
</ul>
</li>
<li>{{ trans('datenschutz.policy.6') }}</li>
<li>{{ trans('datenschutz.policy.7') }} <a href="http://forum.suma-ev.de/viewtopic.php?f=3&amp;t=43&amp;sid=c994b628153235dfef098ba6fea3d60e" target="_blank">{{ trans('datenschutz.policy.8') }}</a></li>
......
......@@ -121,13 +121,6 @@
@endforeach
@endif
<!--[if lte IE 8]><script type="text/javascript" src="/js/html5shiv.min.js"></script><![endif]-->
</div>
<div class="alert alert-info alert-dismissible cookie-box" role="alert" style="position:fixed; width:100%; bottom:0;">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
In der Zeit vom 07.07.2016 bis 15.07.2016 führen wir Wartungsarbeiten durch, die das Setzen eines nicht identifizierenden Cookies für diesen Zeitraum unvermeidbar machen. Weitere Informationen finden Sie auf unserer <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/datenschutz#cookie") }}">Datenschutz-Seite</a>.
</div>
</div>
</body>
</html>
[
{
"title" : "MetaGer4You:",
"descr" : "Wenn in Ihrer Firma täglich viele verschiedene Datenbanken und Suchdienste abzufragen sind - warum machen Sie es nicht einfacher? WIR programmieren Ihnen IHRE Metasuche nach Ihren Anforderungen! Fragen Sie uns: <a href=\"mailto:office@suma-ev.de\">office@suma-ev.de</a>",
"URL" : "mailto:office@suma-ev.de"
}
]
\ No newline at end of file
[
{
"title" : "Hinweis:",
"descr" : "In der Zeit vom 07.07.2016 bis 15.07.2016 führen wir Wartungsarbeiten durch, die das Setzen eines nicht identifizierenden Cookies für diesen Zeitraum unvermeidbar machen. Weitere Informationen finden Sie auf unserer <a href=\"/datenschutz#cookie\" target=\"_blank\">Datenschutz-Seite</a>.",
"URL" : "/datenschutz#cookie"
"title" : "MetaGer4You:",
"descr" : "Wenn in Ihrer Firma täglich viele verschiedene Datenbanken und Suchdienste abzufragen sind - warum machen Sie es nicht einfacher? WIR programmieren Ihnen IHRE Metasuche nach Ihren Anforderungen! Fragen Sie uns: <a href=\"mailto:office@suma-ev.de\">office@suma-ev.de</a>",
"URL" : "mailto:office@suma-ev.de"
}
]
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment