Advertisement
Guest User

Untitled

a guest
Oct 9th, 2017
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.01 KB | None | 0 0
  1. <?php
  2.  
  3. function downloadPapers($itemId, $paperSizes = array(60, 88, 120, 600)){
  4.     foreach($paperSizes as $paperSize){
  5.         $avatarPaperUri = sprintf('paper/image/%d/%d.png', $paperSize, $itemId);
  6.         $avatarPaperUrl = 'https://icer.ink/mobcdn.clubpenguin.com/game/items/images/' . $avatarPaperUri;
  7.         $paperCurl = curl_init($avatarPaperUrl);
  8.         curl_setopt($paperCurl, CURLOPT_FRESH_CONNECT, true);
  9.         curl_setopt($paperCurl, CURLOPT_RETURNTRANSFER, true);
  10.         $imageData = curl_exec($paperCurl);
  11.         $statusCode = curl_getinfo($paperCurl, CURLINFO_HTTP_CODE);
  12.         curl_close($paperCurl);
  13.         if($statusCode == 200){
  14.             file_put_contents($avatarPaperUri, $imageData);
  15.         } else {
  16.             return false;
  17.         }
  18.     }
  19. }
  20.  
  21. function cachePaper($itemId, $paperSize){
  22.     $downloadStatus = downloadPapers($itemId);
  23.    
  24.     if($downloadStatus !== false){
  25.         $paperImage = imagecreatefrompng(sprintf('paper/image/%d/%d.png', $paperSize, $itemId));
  26.         return $paperImage;
  27.     } else {
  28.         return false;
  29.     }
  30. }
  31.  
  32. function returnPaperResource($itemId, $paperSize = 120){
  33.     $avatarUnbiasUri = sprintf('paper/image/%d/%d.png', $paperSize, $itemId);
  34.     $paperImage = file_exists($avatarUnbiasUri) ? imagecreatefrompng($avatarUnbiasUri) : cachePaper($itemId, $paperSize);
  35.    
  36.     return $paperImage;
  37. }
  38.  
  39. $validPaperSizes = array(60, 88, 120, 600);
  40. $defaultPaperSize = 120;
  41.  
  42. if(isset($_GET['ID']) === false){
  43.     die();
  44. }
  45.  
  46. $playerSwid = $_GET['ID'];
  47.  
  48. if(isset($_GET['size']) === false){
  49.     $avatarPaperSize = 120;
  50. } else {
  51.     $avatarPaperSize = $_GET['size'];
  52. }
  53.  
  54. if(is_dir("paper/image/60/") === false){
  55.     mkdir("paper/image/60/", 0777, true);
  56. }
  57.  
  58. if(is_dir("paper/image/88/") === false){
  59.     mkdir("paper/image/88/", 0777, true);
  60. }
  61.  
  62. if(is_dir("paper/image/120/") === false){
  63.     mkdir("paper/image/120/", 0777, true);
  64. }
  65.  
  66. if(is_dir("paper/image/600/") === false){
  67.     mkdir("paper/image/600/", 0777, true);
  68. }
  69.  
  70. if(!in_array($avatarPaperSize, $validPaperSizes)){
  71.     $avatarPaperSize = $defaultPaperSize;
  72. }
  73.  
  74. $connectionString = 'mysql:dbname=luna;host=127.0.0.1';
  75. $databaseUser = 'root';
  76. $databasePass = 'Facuben10';
  77.  
  78. try {
  79.     $database = new PDO($connectionString, $databaseUser, $databasePass);
  80. } catch(PDOException $pdoException){
  81.     echo $pdoException->getMessage(), die();
  82. }
  83.  
  84. $playerQuery = 'SELECT ID FROM `users` WHERE SWID = ID';
  85. $playerStatement = $database->prepare($playerQuery);
  86. $playerStatement->bindValue('ID', $playerSwid);
  87. $playerStatement->execute();
  88. $rowCount = $playerStatement->rowCount();
  89. $playerStatement->closeCursor();
  90.  
  91. if($rowCount < 1){
  92.     echo 'Player doesn\'t exist', die();
  93. }
  94.  
  95. $clothingQuery = 'SELECT head, face, neck, body, hand, feet, photo, flag, colour FROM `users` WHERE SWID = ID';
  96. $clothingStatement = $database->prepare($clothingQuery);
  97. $clothingStatement->bindValue('ID', $playerSwid);
  98. $clothingStatement->execute();
  99. $playerClothing = $clothingStatement->fetch(PDO::FETCH_ASSOC);
  100. $clothingStatement->closeCursor();
  101.  
  102. header('Content-type: image/png');
  103.  
  104. $colorResource = returnPaperResource($playerClothing['Color'], $avatarPaperSize);
  105. unset($playerClothing['Color']);
  106.  
  107. if($playerClothing['photo'] != 0){
  108.     $imageResource = returnPaperResource($playerClothing['photo'], $avatarPaperSize);
  109.     if($imageResource === false) {
  110.         $imageResource = $colorResource;
  111.     } else {
  112.         imagecopyresampled($imageResource, $colorResource, 0, 0, 0, 0, imagesx($imageResource), imagesy($imageResource), imagesx($colorResource), imagesy($colorResource));
  113.     }
  114. } else {
  115.     $imageResource = $colorResource;
  116. }
  117.  
  118. unset($playerClothing['photo']);
  119.  
  120. foreach($playerClothing as $clothingPart => $itemId){
  121.     if($itemId != 0){
  122.         $clothingResource = returnPaperResource($itemId, $avatarPaperSize);
  123.         if($clothingResource !== false) {
  124.             imagecopyresampled($imageResource, $clothingResource, 0, 0, 0, 0, imagesx($imageResource), imagesy($imageResource), imagesx($clothingResource), imagesy($clothingResource));
  125.         }
  126.     }
  127. }
  128.  
  129. imagealphablending($imageResource, false);
  130. imagesavealpha($imageResource, true);
  131.  
  132. imagepng($imageResource);
  133. imagedestroy($imageResource);
  134.  
  135. unset($database);
  136.  
  137. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement