From 84cfe9afa056fc70d47a5cf4119cceb911a3e042 Mon Sep 17 00:00:00 2001 From: ErickSkrauch Date: Sun, 5 Apr 2015 00:11:42 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3,=20=D1=83=D0=B4=D0=B0=D0=BB=D1=91?= =?UTF-8?q?=D0=BD=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B8=D0=B9=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=BE=D0=B4=20/minecraft.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.php | 110 ++++++++++++++++++-------------------------------------- 1 file changed, 35 insertions(+), 75 deletions(-) diff --git a/app.php b/app.php index 6725b95..8a9e8ab 100644 --- a/app.php +++ b/app.php @@ -1,48 +1,49 @@ get('/skins/{nickname}', function ($nickname) use ($app) { - $systemVersion = $app->request->get("version", "int"); - $minecraftVersion = $app->request->get("minecraft_version", "string"); + $systemVersion = $app->request->get('version', 'int'); + $minecraftVersion = $app->request->get('minecraft_version', 'string'); // На всякий случай проверка на наличие .png для файла - if (strrpos($nickname, ".png") != -1) { - $nickname = explode(".", $nickname)[0]; + if (strrpos($nickname, '.png') != -1) { + $nickname = explode('.', $nickname)[0]; } // TODO: восстановить функцию деградации скинов $skin = Skins::findFirst(array(array( - "nickname" => mb_convert_case($nickname, MB_CASE_LOWER, ENCODING) + 'nickname' => mb_convert_case($nickname, MB_CASE_LOWER, ENCODING) ))); - if (!$skin || $skin->skinId == 0) - return $app->response->redirect("http://skins.minecraft.net/MinecraftSkins/".$nickname.".png", true); + if (!$skin || $skin->skinId == 0) { + return $app->response->redirect('http://skins.minecraft.net/MinecraftSkins/' . $nickname . '.png', true); + } return $app->response->redirect($skin->url); -})->setName("skinSystem"); +})->setName('skinSystem'); $app->get('/cloaks/{nickname}', function ($nickname) use ($app) { // На всякий случай проверка на наличие .png для файла - if (strrpos($nickname, ".png") != -1) { - $nickname = explode(".", $nickname)[0]; + if (strrpos($nickname, '.png') != -1) { + $nickname = explode('.', $nickname)[0]; } return $app->response->redirect('http://skins.minecraft.net/MinecraftCloaks/'.$nickname.'.png'); }); -$app->get("/textures/{nickname}", function($nickname) use ($app) { +$app->get('/textures/{nickname}', function($nickname) use ($app) { $skin = Skins::findFirst(array(array( - "nickname" => mb_convert_case($nickname, MB_CASE_LOWER, ENCODING) + 'nickname' => mb_convert_case($nickname, MB_CASE_LOWER, ENCODING) ))); if ($skin && $skin->skinId != 0) { $url = $skin->url; $hash = $skin->hash; } else { - $url = "http://skins.minecraft.net/MinecraftSkins/".$nickname.".png"; - $hash = md5("non-ely-".mktime(date("H"), 0, 0)."-".$nickname); + $url = 'http://skins.minecraft.net/MinecraftSkins/'.$nickname.'.png'; + $hash = md5('non-ely-'.mktime(date('H'), 0, 0).'-'.$nickname); } $textures = array( @@ -50,7 +51,7 @@ $app->get("/textures/{nickname}", function($nickname) use ($app) { 'url' => $url, 'hash' => $hash, 'metadata' => array( - 'model' => ($skin && $skin->isSlim) ? "slim" : "default" + 'model' => ($skin && $skin->isSlim) ? 'slim' : 'default' ) ), 'CAPE' => array( @@ -62,75 +63,34 @@ $app->get("/textures/{nickname}", function($nickname) use ($app) { return $app->response->setJsonContent($textures); }); -/** - * Должно проксироваться средствами nginx, но мало-ли - */ -$app->get("/minecraft.php", function() use ($app) { - $nickname = $app->request->get("name", "string"); - $type = $app->request->get("type", "string"); - $minecraft_version = str_replace('_', '.', $app->request->get("mine_ver", "string", NULL)); - $authlib_version = $app->request->get("auth_lib", "string", NULL); - $version = $app->request->get("ver", "string"); - - if ($version == "1_0_0") - $version = "1"; - - if ($type === "cloack" || $type === "cloak") - return $app->response->redirect('http://skins.minecraft.net/MinecraftCloaks/'.$nickname.'.png'); - - // Если запрос идёт через authlib, то мы не знаем версию Minecraft - if ($authlib_version && !$minecraft_version) { - $auth_to_mine = array( - "1.3" => "1.7.2", - "1.2" => "1.7.4", - "1.3.1" => "1.7.5", - "1.5.13" => "1.7.9", - "1.5.16" => "1.7.10", - "1.5.17" => "1.8.1" - ); - - if (array_key_exists($authlib_version, $auth_to_mine)) - $minecraft_version = $auth_to_mine[$authlib_version]; - } - - // Отправляем на новую систему скинов в правильном формате - return $app->response->redirect($app->url->get( - array( - "for" => "skinSystem", - "nickname" => $nickname - ), array( - "minecraft_version" => $minecraft_version, - "version" => $version - ) - ), true); -})->setName("fallbackSkinSystem"); - -$app->post("/system/setSkin", function() use ($app) { +$app->post('/system/setSkin', function() use ($app) { $headers = getallheaders(); - if (!array_key_exists("X-Ely-key", $headers) || $headers['X-Ely-key'] != "43fd2ce61b3f5704dfd729c1f2d6ffdb") - return $app->response->setStatusCode(403, "Forbidden")->setContent("Хорошая попытка, мерзкий хакер."); + if (!array_key_exists('X-Ely-key', $headers) || $headers['X-Ely-key'] != '43fd2ce61b3f5704dfd729c1f2d6ffdb') { + return $app->response->setStatusCode(403, 'Forbidden')->setContent('Хорошая попытка, мерзкий хакер.'); + } $request = $app->request; $skin = Skins::findFirst(array(array( - "userId" => (int) $request->getPost("userId", "int") + 'userId' => (int) $request->getPost('userId', 'int') ))); if (!$skin) { $skin = new Skins(); - $skin->userId = (int) $request->getPost("userId", "int"); + $skin->userId = (int) $request->getPost('userId', 'int'); } - $skin->nickname = mb_convert_case($request->getPost("nickname", "string"), MB_CASE_LOWER, ENCODING); - $skin->skinId = (int) $request->getPost("skinId", "int"); - $skin->hash = $request->getPost("hash", "string"); - $skin->is1_8 = (bool) $request->getPost("is1_8", "int"); - $skin->isSlim = (bool) $request->getPost("isSlim", "int"); - $skin->url = $request->getPost("url", "string"); + $skin->nickname = mb_convert_case($request->getPost('nickname', 'string'), MB_CASE_LOWER, ENCODING); + $skin->skinId = (int) $request->getPost('skinId', 'int'); + $skin->hash = $request->getPost('hash', 'string'); + $skin->is1_8 = (bool) $request->getPost('is1_8', 'int'); + $skin->isSlim = (bool) $request->getPost('isSlim', 'int'); + $skin->url = $request->getPost('url', 'string'); - if ($skin->save()) - echo "OK"; - else - echo "ERROR"; + if ($skin->save()) { + echo 'OK'; + } else { + echo 'ERROR'; + } }); /** @@ -138,7 +98,7 @@ $app->post("/system/setSkin", function() use ($app) { */ $app->notFound(function () use ($app) { $app->response - ->setStatusCode(404, "Not Found") + ->setStatusCode(404, 'Not Found') ->setContent('Not Found
Система скинов Ely.by.') ->send(); });