Dedimania Challenge record set fix

This commit is contained in:
kremsy committed 2017-06-30 18:33:54 +02:00
1 parent 84af711e5d
commit 89fdba15ed
2 files changed
+33 -9

No files matched your search

+1 -1
View File
@@ -135,7 +135,6 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
throw new \Exception("This Plugin is only for Trackmania!");
}
$maxRecords = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MAX_RECORDS);
$dedimaniaData = new DedimaniaData($serverInfo->login, $dedimaniaCode, $serverInfo->path, $packMask, $serverVersion);
@@ -249,6 +248,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
* @internal
*/
public function handleBeginMap() {
$this->checkpoints = null;
$this->webHandler->getDedimaniaData()->unsetRecords();
$this->webHandler->maniaLinkUpdateNeeded();
$this->webHandler->fetchDedimaniaRecords(true);
@@ -168,7 +168,7 @@ class DedimaniaWebHandler implements TimerListener {
}
if ($record->vReplay == '' || !$record->vReplay) {
Logger::logInfo("Ignore time for " . $record->login . " no validation replay found");
Logger::logInfo("Dedimania Ignore time for " . $record->login . " no validation replay found");
continue;
}
@@ -178,13 +178,14 @@ class DedimaniaWebHandler implements TimerListener {
if (!isset($replays['VReplay'])) {
$replays['VReplay'] = $record->vReplay;
}
if (!isset($replays['Top1GReplay'])) {
$replays['Top1GReplay'] = $record->top1GReplay;
}
if (!isset($replays['VReplayChecks'])) {
$replays['VReplayChecks'] = '';
// TODO: VReplayChecks
}
if (!isset($replays['Top1GReplay'])) {
$replays['Top1GReplay'] = $record->top1GReplay;
}
}
xmlrpc_set_type($replays['VReplay'], 'base64');
@@ -260,9 +261,28 @@ class DedimaniaWebHandler implements TimerListener {
return;
}
//var_dump($this->dedimaniaData->sessionId);
$this->addRequest(self::DEDIMANIA_WARNINGSANDTTR2, array());
$content = xmlrpc_encode_request(self::XMLRPC_MULTICALL, array($this->requests), array('encoding' => 'UTF-8', 'escaping' => 'markup', 'verbosity' => 'no_white_space'));
$content = xmlrpc_encode_request(self::XMLRPC_MULTICALL, array($this->requests), array('encoding' => 'UTF-8', 'escaping' => 'cdata, non-ascii, non-print, markup', 'verbosity' => 'no_white_space'));
/* $content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><methodCall><methodName>system.multicall</methodName>
<params>
<param><value><array><data><value><struct><member><name>methodName</name><value>
<string>dedimania.SetChallengeTimes</string></value></member>
<member><name>params</name><value><array><data><value><string>".$this->dedimaniaData->sessionId."</string></value>
<value><struct><member><name>UId</name><value><string>ymBMv4ra0y81UM58_E4qfUpfSOd</string></value></member>
<member><name>Name</name><value><string>Sparkster's Canyon B12</string></value></member><member>
<name>Environment</name><value><string>Canyon</string></value></member><member><name>Author</name>
<value><string>sparkster</string></value></member><member><name>NbCheckpoints</name><value><int>3</int></value></member>
<member><name>NbLaps</name><value><int>0</int></value></member></struct></value><value><string>TA</string></value><value><array>
<data><value><struct><member><name>Login</name><value><string>kremsy</string></value></member><member><name>Best</name><value>
<int>271954</int></value></member><member><name>Checks</name><value><string>9092,17778,271954</string></value></member></struct></value></data></array></value><value><struct><member><name>VReplay</name><value><base64>R0JYBgBCVUNSADAJAwcDAAADAAAAADAJA5IAAAABMAkD2QEAgAIwCQOAAAAACAAAAAMAAAAA&#10;AABAGwAAAHltQk12NHJhMHk4MVVNNThfRTRxZlVwZlNPZAwAAAAAAABACQAAAHNwYXJrc3R&#10;lclImBAAvAAAA77u/JHokcyRpJDA5Zs+BJDAwMMK7JGFhYW9tYm8gJGZmZkx1ayQwOWbDqS&#10;DupaQGAAAAa3JlbXN5AQAAAEAIAAAAVE1DYW55b27VAQAAPGhlYWRlciB0eXBlPSJyZXBsY&#10;XkiIGV4ZXZlcj0iMy4zLjAiIGV4ZWJ1aWxkPSIyMDE3LTA1LTE2XzE5XzAwIiB0aXRsZT0i&#10;VE1DYW55b24iPjxtYXAgdWlkPSJ5bUJNdjRyYTB5ODFVTTU4X0U0cWZVcGZTT2QiIG5hbWU&#10;9IlNwYXJrc3RlciZhcG9zO3MgQ2FueW9uIEIxMiIgYXV0aG9yPSJzcGFya3N0ZXIiIGF1dG&#10;hvcnpvbmU9IldvcmxkfEV1cm9wZXxHZXJtYW55fFJoZWlubGFuZC1QZmFsenxLYWlzZXJzb&#10;GF1dGVybiIvPjxkZXNjIGVudmlyPSJDYW55b24iIG1vb2Q9IiIgbWFwdHlwZT0iVHJhY2tt&#10;YW5pYVxSYWNlIiBtYXBzdHlsZT0iIiBkaXNwbGF5Y29zdD0iMCIgbW9kPSIiIC8+PHBsYXl&#10;lcm1vZGVsIGlkPSJDYW55b25DYXIiLz48dGltZXMgYmVzdD0iMjcxOTU0IiByZXNwYXducz&#10;0iOSIgc3R1bnRzY29yZT0iNTIiIHZhbGlkYWJsZT0iMSIvPjxjaGVja3BvaW50cyBjdXI9I&#10;jMiIG9uZWxhcD0iMyIvPjwvaGVhZGVyPgEAAAAAAAAADQAAAHBhcmFnb25jYW55b24wAAAA&#10;JHckQURGUCQ5Q0ZhJDdCRnIkN0JGYSQ1QUZnJDJBRm8kMDlGbiRmZmYgQ2FueW9uKwAAAO+&#10;7v1dvcmxkfEV1cm9wZXxGcmFuY2V8w45sZS1kZS1GcmFuY2V8UGFyaXMAAAAAAgAAAAAAAA&#10;BpdQAAqmoAAAAIAjAJA/NZAABHQlgGAEJVQ1IAMAQDAAAAABxwAA0AAAAhawEA0lkAAAYNM&#10;AQDZAMH/ykAAAkRMAQDAWQEAOOwAQOMAAUAAAAB3sr6AowCAwUDAbAFA2gBKgwADwSwBQOd&#10;5gAAt8wAAOPEAADsurQDAAMIsAUDYOoAACUAAAAKsAUDUElLUxypAwAuvAD8BAENsAUDeRE&#10;O3AUABRsAAAAPAAAAVHJhY2ttYW5pYVxSYWNldAh4FGgTBAgAAAAYMASYC2wBbANtFBnMAg&#10;EpAAAAfAF8Aj8PAB8wBG0FQHwOAAp5bUJNdjRyYTB5ODFVTTU4X0U0cWZVcGZTT2QMoAkAA&#10;UAJAAAAc3BhcmtzdGVyFgAAAFPwAQ8ncyBDYW55b24gQjEyAAAAQAZ0AwJ1bnNldPAHDnwd&#10;AABwTmFkZW8gAAAAKAAAAHwAYAtpBcR3AwAAQHAFD1dhdGVyQ2xpZmYxMgEBAg5FEJgxDUA&#10;LAAAAVW5hc3NpZ25lZDFgImwnCgUAAEABAQIVhRACAAZsAcw83QIWeAcxXgAXBTS9ABg1HQ&#10;EZNb0AGjW+ABvFNH0BHC48AnQldB+YHgIAAgIOAC3gAAUHAABAAAICFTVdABs1XQAcM10AA&#10;zV9AQM1fgEDAjR9AQQ1HwEEAhQz3QEENX0BBTUdAQU1HQEFNR8BBgITM90BBjUdAQY1HQEH&#10;NR0BBzUdAQc1HQEINR0BCDUdAQg1HQEJNR0BCTUdAQk1HwEVAhYzfwQVAhc1XQAYNV0AGTV&#10;dABo1XAA0/ggVAjR+ChYCNH4BFgI0fQEWNX0KFjd9AR0znwIWAh41XQAfLlwAYIsBABYCIC&#10;6AD510FzW9Bhc1vQYXNb0GFzUdBBc1HQQXNR0EFzUeBBcCNB0EFzUeBBcCNB8EFwIgLmAUn&#10;SAYNR0EGDUdBBg1HQQYNTYsAAsfBBgCIC5gF50gGTUdBCgMAAb9Dhk1/g4ZAjRgAQE9BRk1&#10;NgwAA10JGjU9BWwAABgbNb0AHDVdAB01XQAIfi8AAI06CGwuJy8AGAAQJy0AGSktABonLQA&#10;JKe2sAAAcbDTNBwl8MicsACjvAAYCDScdAQZs5c8EBgIPKV0AECktABEpLQASJy0ABykdAa&#10;wAAh4BBwIoKBAAAx0BCCldAGwAAQkpXQBsAAoVKS0AFimNABYpXQAXzAABGCldAGwAARkpX&#10;QBsAAEaKV0AbAABGyldAGwAARwpXQBsAAEdKV0AbAABHildAGwAAFMfKV0AH7wCbMQFAyAC&#10;EUUQAADOARKFKJ0ICS5MGd1KCjVdAAs1XQAMNV0ADTVcADRtKQhsQCzwLN0REDMfAQkCBDV&#10;cADReAwkCNF4DCQI0XgMJAjRdAwlsWDGdAgl8WTNdAA81nGgCDgo1XwMKAgUzHwEKAgY1XQ&#10;AHZChkCgPdBBU1PQKsAAGdBRU1KAwAARY1PQKsAAJ+BBYCNCgQAAACfQQWNd0HFjU9CxZ8m&#10;zGdCBc1XQM+DAABGDVdAz4MAAEZNV0DNAwAAd0NGTUrDAABBBk13Y0AGpZxvQBkQ20AHIRE&#10;Ab0AHTWsAAEeNb0AbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&#10;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL&#10;gfMFwAzfEQLqwuIhBGCAQAAABEaXJ0AA4XL/0cCCINRg81XQAQNV0AETBcAHwPAQEUAgwu7&#10;DjdAg0uXALcAi/QSHwCAQMLAgYyHAEBAwsCBzJQSgEDCwIILqw23QgJLhwBfSEK3CEjKE4C&#10;OAEMDwcudQIJIrpNDA8vVAHdAgkuvAAjVSEKdGUlFSsKZGQnLQAMJ7UqCmRhJ10ADilcACj&#10;VKwp0OyeMACi1KgokBCbNDRMp7QAUKS0AFSktABYpLQAXKSwAKGUvCil1LgoipDQlVycLAg&#10;onhycLAgsuFAXVKwwuHATdAg01vQAONV0AEzX1BhQ1XQAVNR0BFjW9ABc1nQIYNb0AGTW8A&#10;DNIVAEDCwIbLhwB3UQKLhwB3QILNbwALzwF3QUNNbwAL3wE3QUVNbwAL8hY3AUvfATdAhg1&#10;/AIvfATdBRouvACViw0wtBDdBRsuvADdRwUylA8BARQCBS68AN0IBjW9AxwyXAABAA0PHTI&#10;eAQAONV8ADw8dMx0BEDW9ABE1vQASNFwAAgMTDx1JMmVcCyL0NSxUJ3wjAgALAhJAMr0ADD&#10;W/AAwCEjK8AwEBDA8TM90BDTUfAQ0CEi7cDY2RETW9ABEwvACfFxICEi48BZ8CEwISNdwHL&#10;7wDfD4BAw8PCS4cAdwCM98NAw8PM58LAw8PLxwQ3AgznwsDDw8vnAt/FwEQAi8cAd0CGTXc&#10;BDQlSxFssizcB50sEiJURTNcADRlWRM1vQATNX0BFDW9ABQwvAB/IwAPDy/kXZ4CEA8zHBY&#10;CARACFwkt3Ap8IwECEQIXLnwEngISAi+8Bp0CEzS/AAEUAi98E5wFARQCF8Ax3AECABACGo&#10;kyXgARAi+cF38aAhEPL5wXnpsRFy/EX38OABICL5wInQgSNR0BEjUdARM1PwITDxsuPAV/C&#10;wMTDy/cE34RARR8+yz8CNwCL1wDnwgPDxsunBGdHQ8wnAJ+BQIQNV0DEDC8AHwOAQMLAg8u&#10;/A7dAhAuvAZ/CwEMDyPEdCrIc3wCAQAMDw8uHAR8CAECDAIQLjwRnhcNFy+0SJ8IDQ8PLpw&#10;UnwgNAhAunAKdCA41HgEODy9cA50FDzW9AA8w3AGdBRA1vQAQNX0BETW9ABEwfAGfGhECEC&#10;7cDX8gAw8PM3wiAQMPDwwuPAh+CAEQIqwoMFwJAgAQAgvJLXwNfAsBAhAPDC48BZ2bESL8L&#10;DEfARECCy5cBp4IEQ8vvCSdCBI1HwESAgsuPAidCBIwHAGfAhMPDDN9HBM1fQETMHwBnREU&#10;NL4AARQijDAsvAN+DgMPItwxJBwuAgEQAgkFJnVVESKUPiVdMBIpLQATrAGPMRQCBie9ABS&#10;8Ao0QFSKkQM0HFSJ0QCctAAgnXTAVvAWOTw8XLwRQbxMADw8vhEudBRA1vQAQMGw1nxQQAg&#10;gubAWdCBE1HQERNBwBAQIRAgguDAudCBI1HwESDwcu7Al8EQECEgIIMmwIAQMTDwYy7AkBA&#10;xMPBzPNERMwPAJ8CwEBFAIHLpwCfAIBAhQCCDWtEwUufAF8LwECDQ8FLvwCnQIONV4ADw8z&#10;ziwCEDVdABE1XQASNX8BEw8FLhwHnxoKAgIuvAOfUAoCAy6kWJ8FFQICLlwDnQUVNb8AFgI&#10;CLlwGnQUWNb8AFwICLnwHnQUXNb0AGDX9Ahg1vQAZNX0BGTC8ACIEQgUTAAAAUm9hZCIM Line truncated
<name>Top1GReplay</name><value><base64></base64></value></member>
</struct></value></data></array></value></member></struct></value><value><struct><member><name>methodName</name><value><string>dedimania.WarningsAndTTR2</string></value></member><member><name>params</name><value><array><data/></array></value></member></struct></value></data></array></value></param></params></methodCall>";
*/ //TODO remove debug code later
$asyncHttpRequest = new AsyncHttpRequest($this->maniaControl, self::DEDIMANIA_URL);
$asyncHttpRequest->setCallable(function ($answerData, $error) {
@@ -272,6 +292,9 @@ class DedimaniaWebHandler implements TimerListener {
return;
}
//var_dump($error);
//var_dump($answerData);
$data = $this->decode($answerData);
if(!$data){
//TODO just Temporary
@@ -279,11 +302,10 @@ class DedimaniaWebHandler implements TimerListener {
var_dump($answerData);
}
if (!is_array($data) || empty($data) || !isset($data[0]) || !isset($data[0][0]) || $data[0][0] == false) {
if (!is_array($data) || empty($data) || !isset($data[0]) || !isset($data[0][0])) {
return;
}
//Get the Errors and Warnings to get the Method Order
$errorsAndWarnings = $data[count($data) - 1][0];
$methods = $errorsAndWarnings['methods'];
@@ -359,6 +381,8 @@ class DedimaniaWebHandler implements TimerListener {
}
}
}
//exit();
});
$asyncHttpRequest->setContent($content);
@@ -456,8 +480,8 @@ class DedimaniaWebHandler implements TimerListener {
$mapInfo = array();
$mapInfo['UId'] = $map->uid;
$mapInfo['Name'] = $map->rawName;
$mapInfo['Author'] = $map->authorLogin;
$mapInfo['Environment'] = $map->environment;
$mapInfo['Author'] = $map->authorLogin;
$mapInfo['NbCheckpoints'] = $map->nbCheckpoints;
$mapInfo['NbLaps'] = $map->nbLaps;
return $mapInfo;