error reporting

This commit is contained in:
kremsy 2014-02-08 19:33:26 +01:00 committed by Steffen Schröder
parent fd0790fc71
commit 0e118840fe
2 changed files with 80 additions and 34 deletions

View File

@ -1,5 +1,7 @@
<?php <?php
use ManiaControl\Files\FileUtil;
use ManiaControl\ManiaControl; use ManiaControl\ManiaControl;
use ManiaControl\UpdateManager;
/** /**
* Error and Exception Manager Class * Error and Exception Manager Class
@ -30,6 +32,25 @@ class ErrorHandler {
public function exceptionHandler(\Exception $ex) { public function exceptionHandler(\Exception $ex) {
$message = "[ManiaControl EXCEPTION]: {$ex->getMessage()} Trace: {$ex->getTraceAsString()}!"; $message = "[ManiaControl EXCEPTION]: {$ex->getMessage()} Trace: {$ex->getTraceAsString()}!";
logMessage($message); logMessage($message);
$error = array();
$error["Type"] = "Exception";
$error["Message"] = $message;
$error['ManiaControlVersion'] = ManiaControl::VERSION;
$error['OperatingSystem'] = php_uname();
$error['PHPVersion'] = phpversion();
$error['SeverLogin'] = null;
$json = json_encode($error);
$info = base64_encode($json);
$url = UpdateManager::URL_WEBSERVICE . "errorreport?error=" . $info;
$success = FileUtil::loadFile($url);
if (!json_decode($success)) {
logMessage("Exception-Report failed");
}
exit(); exit();
} }
@ -52,6 +73,25 @@ class ErrorHandler {
$message = "{$errorTag}: {$errorString} in File '{$errorFile}' on Line {$errorLine}!"; $message = "{$errorTag}: {$errorString} in File '{$errorFile}' on Line {$errorLine}!";
logMessage($message); logMessage($message);
if ($errorNumber == E_ERROR || $errorNumber == E_USER_ERROR) { if ($errorNumber == E_ERROR || $errorNumber == E_USER_ERROR) {
$error = array();
$error["Type"] = "Error";
$error["Message"] = $message;
$error['ManiaControlVersion'] = ManiaControl::VERSION;
$error['OperatingSystem'] = php_uname();
$error['PHPVersion'] = phpversion();
$error['SeverLogin'] = $this->maniaControl->server->login;
$json = json_encode($error);
$info = base64_encode($json);
$url = UpdateManager::URL_WEBSERVICE . "errorreport?error=" . $info;
$success = FileUtil::loadFile($url);
if (!json_decode($success)) {
logMessage("Error-Report failed");
}
logMessage('Stopping execution...'); logMessage('Stopping execution...');
exit(); exit();
} }

View File

@ -2,6 +2,8 @@
namespace ManiaControl\ManiaExchange; namespace ManiaControl\ManiaExchange;
use ManiaControl\Formatter;
/** /**
* Mania Exchange Map Info Object * Mania Exchange Map Info Object
* *
@ -11,7 +13,7 @@ namespace ManiaControl\ManiaExchange;
class MXMapInfo { class MXMapInfo {
public $prefix, $id, $uid, $name, $userid, $author, $uploaded, $updated, $type, $maptype; public $prefix, $id, $uid, $name, $userid, $author, $uploaded, $updated, $type, $maptype;
public $titlepack, $style, $envir, $mood, $dispcost, $lightmap, $modname, $exever; public $titlepack, $style, $envir, $mood, $dispcost, $lightmap, $modname, $exever;
public $exebld, $routes, $length, $unlimiter, $laps, $diffic, $lbrating, $trkvalue; public $exebld, $routes, $length, $unlimiter, $laps, $difficulty, $lbrating, $trkvalue;
public $replaytyp, $replayid, $replaycnt, $acomment, $awards, $comments, $rating; public $replaytyp, $replayid, $replaycnt, $acomment, $awards, $comments, $rating;
public $ratingex, $ratingcnt, $pageurl, $replayurl, $imageurl, $thumburl, $dloadurl; public $ratingex, $ratingcnt, $pageurl, $replayurl, $imageurl, $thumburl, $dloadurl;
@ -37,40 +39,44 @@ class MXMapInfo {
$this->id = $mx->MapID; $this->id = $mx->MapID;
} }
$this->name = $mx->Name; if (!isset($mx->GbxMapName) || $mx->GbxMapName == '') {
$this->name = $mx->Name;
} else {
$this->name = Formatter::stripDirtyCodes($mx->GbxMapName);
}
$this->uid = isset($mx->MapUID) ? $mx->MapUID : ''; $this->uid = isset($mx->MapUID) ? $mx->MapUID : '';
$this->userid = $mx->UserID; $this->userid = $mx->UserID;
$this->author = $mx->Username; $this->author = $mx->Username;
$this->uploaded = $mx->UploadedAt; $this->uploaded = $mx->UploadedAt;
$this->updated = $mx->UpdatedAt; $this->updated = $mx->UpdatedAt;
$this->type = $mx->TypeName; $this->type = $mx->TypeName;
$this->maptype = isset($mx->MapType) ? $mx->MapType : ''; $this->maptype = isset($mx->MapType) ? $mx->MapType : '';
$this->titlepack = isset($mx->TitlePack) ? $mx->TitlePack : ''; $this->titlepack = isset($mx->TitlePack) ? $mx->TitlePack : '';
$this->style = isset($mx->StyleName) ? $mx->StyleName : ''; $this->style = isset($mx->StyleName) ? $mx->StyleName : '';
$this->envir = $mx->EnvironmentName; $this->envir = $mx->EnvironmentName;
$this->mood = $mx->Mood; $this->mood = $mx->Mood;
$this->dispcost = $mx->DisplayCost; $this->dispcost = $mx->DisplayCost;
$this->lightmap = $mx->Lightmap; $this->lightmap = $mx->Lightmap;
$this->modname = isset($mx->ModName) ? $mx->ModName : ''; $this->modname = isset($mx->ModName) ? $mx->ModName : '';
$this->exever = $mx->ExeVersion; $this->exever = $mx->ExeVersion;
$this->exebld = $mx->ExeBuild; $this->exebld = $mx->ExeBuild;
$this->routes = isset($mx->RouteName) ? $mx->RouteName : ''; $this->routes = isset($mx->RouteName) ? $mx->RouteName : '';
$this->length = isset($mx->LengthName) ? $mx->LengthName : ''; $this->length = isset($mx->LengthName) ? $mx->LengthName : '';
$this->unlimiter = isset($mx->UnlimiterRequired) ? $mx->UnlimiterRequired : false; $this->unlimiter = isset($mx->UnlimiterRequired) ? $mx->UnlimiterRequired : false;
$this->laps = isset($mx->Laps) ? $mx->Laps : 0; $this->laps = isset($mx->Laps) ? $mx->Laps : 0;
$this->diffic = $mx->DifficultyName; $this->difficulty = $mx->DifficultyName;
$this->lbrating = isset($mx->LBRating) ? $mx->LBRating : 0; $this->lbrating = isset($mx->LBRating) ? $mx->LBRating : 0;
$this->trkvalue = isset($mx->TrackValue) ? $mx->TrackValue : 0; $this->trkvalue = isset($mx->TrackValue) ? $mx->TrackValue : 0;
$this->replaytyp = isset($mx->ReplayTypeName) ? $mx->ReplayTypeName : ''; $this->replaytyp = isset($mx->ReplayTypeName) ? $mx->ReplayTypeName : '';
$this->replayid = isset($mx->ReplayWRID) ? $mx->ReplayWRID : 0; $this->replayid = isset($mx->ReplayWRID) ? $mx->ReplayWRID : 0;
$this->replaycnt = isset($mx->ReplayCount) ? $mx->ReplayCount : 0; $this->replaycnt = isset($mx->ReplayCount) ? $mx->ReplayCount : 0;
$this->acomment = $mx->Comments; $this->acomment = $mx->Comments;
$this->awards = isset($mx->AwardCount) ? $mx->AwardCount : 0; $this->awards = isset($mx->AwardCount) ? $mx->AwardCount : 0;
$this->comments = $mx->CommentCount; $this->comments = $mx->CommentCount;
$this->rating = isset($mx->Rating) ? $mx->Rating : 0.0; $this->rating = isset($mx->Rating) ? $mx->Rating : 0.0;
$this->ratingex = isset($mx->RatingExact) ? $mx->RatingExact : 0.0; $this->ratingex = isset($mx->RatingExact) ? $mx->RatingExact : 0.0;
$this->ratingcnt = isset($mx->RatingCount) ? $mx->RatingCount : 0; $this->ratingcnt = isset($mx->RatingCount) ? $mx->RatingCount : 0;
if ($this->trkvalue == 0 && $this->lbrating > 0) { if ($this->trkvalue == 0 && $this->lbrating > 0) {
$this->trkvalue = $this->lbrating; $this->trkvalue = $this->lbrating;