diff --git a/addrelease.php b/addrelease.php
index 805bccf..af15223 100755
--- a/addrelease.php
+++ b/addrelease.php
@@ -20,7 +20,7 @@ function addRelease($input) {
$url = 'http://s3.amazonaws.com/MinecraftDownload/minecraft.jar';
} else {
$type = 'apr';
- $url = 'http://assets.minecraft.net/'.$input.'/minecraft.zip';
+ $url = 'http://assets.minecraft.net/'.$input.'/minecraft.jar';
}
// Chargement du XML
@@ -43,28 +43,13 @@ function addRelease($input) {
// Extraction et copie de minecraft.jar
$directory = $id.' - '.$lastVersions_e[0].' ('.rand(1, 1000).')';
if (!mkdir($directory) OR !copy($url, $directory.'/minecraft.jar')) { return 'ERREUR Impossible de copier le fichier ou de cr�er un nouveau dossier.';}
- if ($type == 'r') {
- $zip = new ZipArchive;
- if ($zip->open($directory.'/minecraft.jar') AND mkdir($directory.'/content')) {
- $zip->extractTo($directory.'/content');
- $zip->close();
- }
- } else {
- $zip = new ZipArchive;
- if ($zip->open($directory.'/minecraft.jar') AND mkdir($directory.'/extract')) {
- $zip->extractTo($directory.'/extract');
- $zip->close();
- $zip2 = new ZipArchive;
- if ($zip2->open($directory.'/extract/bin/minecraft.jar') AND mkdir($directory.'/content')) {
- $zip2->extractTo($directory.'/content');
- $zip2->close();
- } else {
- return 'ERREUR Impossible d\'extraire le fichier ou de cr�er un nouveau dossier².';
- }
- } else {
- return 'ERREUR Impossible d\'extraire le fichier ou de cr�er un nouveau dossier.';
- }
- }
+ $zip = new ZipArchive;
+ if ($zip->open($directory.'/minecraft.jar') AND mkdir($directory.'/content')) {
+ $zip->extractTo($directory.'/content');
+ $zip->close();
+ } else {
+ return 'ERREUR Impossible d\'extraire le fichier ou de cr�er un nouveau dossier.';
+ }
$md5 = md5_file($directory.'/minecraft.jar');
directoryConstruct($directory.'/content', $files, $data, directoryOld($release));
diff --git a/data.xml b/data.xml
index 10aa7c3..8e36723 100755
--- a/data.xml
+++ b/data.xml
@@ -1,5 +1,5 @@
-
+
@@ -24,4 +24,4 @@
-
+
diff --git a/index.php b/index.php
index 19d0864..e787596 100755
--- a/index.php
+++ b/index.php
@@ -1,236 +1,236 @@
-load('data.xml');
-$dataNode = $data->getElementsByTagName('data')->item(0);
-$mcupdatesNode = $dataNode->getElementsByTagName('mcupdates')->item(0);
-$releaseS = $mcupdatesNode->getElementsByTagName('release');
-$text = '';
-for ($i = $releaseS->length; $i > 1; $i--) {
- $release = $releaseS->item($i-1);
- $releaseInfos = $release->getElementsByTagName('infos')->item(0);
- $text .= '
Minecraft '.$release->getAttribute('name').' ';
- if (isset($prevRelease)) {
- if ($release->getAttribute('name') == $prevRelease->getAttribute('name')) {
- $text .= '(version enterrée) ';
- }
- }
- $shortDescription = $releaseInfos->getAttribute('shortDescription');
- if ($shortDescription == 'false') {
- $shortDescription = 'Pas de description.';
- }
- $text .= '
';
- $prevRelease = $release;
-}
-?>
-
-
-
-Minecraft Checker
-
-
-
-
-
-Minecraft Checker
-
-
Rechercher des versions
-
-
-
Versions référencées
-
-
-
-
-
-
-
+load('data.xml');
+$dataNode = $data->getElementsByTagName('data')->item(0);
+$mcupdatesNode = $dataNode->getElementsByTagName('mcupdates')->item(0);
+$releaseS = $mcupdatesNode->getElementsByTagName('release');
+$text = '';
+for ($i = $releaseS->length; $i > 1; $i--) {
+ $release = $releaseS->item($i-1);
+ $releaseInfos = $release->getElementsByTagName('infos')->item(0);
+ $text .= 'Minecraft '.$release->getAttribute('name').' ';
+ if (isset($prevRelease)) {
+ if ($release->getAttribute('name') == $prevRelease->getAttribute('name')) {
+ $text .= '(version enterrée) ';
+ }
+ }
+ $shortDescription = $releaseInfos->getAttribute('shortDescription');
+ if ($shortDescription == 'false') {
+ $shortDescription = 'Pas de description.';
+ }
+ $text .= '
';
+ $prevRelease = $release;
+}
+?>
+
+
+
+Minecraft Checker
+
+
+
+
+
+Minecraft Checker
+
+
Rechercher des versions
+
+
+
Versions référencées
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lastVersions.txt b/lastVersions.txt
index 59b955b..2165398 100755
--- a/lastVersions.txt
+++ b/lastVersions.txt
@@ -1 +1 @@
-1336223378|1.2.5|8e8778078a175a33603a585257f28563|12w18a|37d778548796dd95c4d0ea49a015be06|27|12w18a|apr
\ No newline at end of file
+1341566731|1.2.5|8e8778078a175a33603a585257f28563|UP|ac908492cdfe6c1d81183d2d2d7959a1|34|12w24a|apr
\ No newline at end of file
diff --git a/preRelease.php b/preRelease.php
index b5b1d6e..f08fd3a 100755
--- a/preRelease.php
+++ b/preRelease.php
@@ -1,178 +1,178 @@
-load('data.xml');
- $dataNode = $data->getElementsByTagName('data')->item(0);
- $mcupdatesNode = $dataNode->getElementsByTagName('mcupdates')->item(0);
- $id = $mcupdatesNode->getAttribute('total')+1;
- $releaseS = $mcupdatesNode->getElementsByTagName('release');
- $release = $releaseS->item($releaseS->length-1);
-
- // Creation du noeud XML
- $releaseNode = $data->createElement('release');
- $mcupdatesNode->appendChild($releaseNode);
- $infosNode = $data->createElement('infos');
- $releaseNode->appendChild($infosNode);
- $files = $data->createElement('files');
- $releaseNode->appendChild($files);
-
- // Extraction et copie de minecraft.jar
- $directory = $id.' - '.$lastVersions_e[0].' ('.rand(1, 1000).')';
- if (!mkdir($directory) OR !copy($url, $directory.'/minecraft.jar')) { return 'ERREUR Impossible de copier le fichier ou de créer un nouveau dossier.';}
- $zip = new ZipArchive;
- if ($zip->open($directory.'/minecraft.jar') AND mkdir($directory.'/content')) {
- $zip->extractTo($directory.'/content');
- $zip->close();
- } else {
- return 'ERREUR Impossible d\'extraire le fichier ou de créer un nouveau dossier.';
- }
- $md5 = md5_file($directory.'/minecraft.jar');
- directoryConstruct($directory.'/content', $files, $data, directoryOld($release));
-
- // Detection de $givenName
- // Code par @EphysPatato
- $minecraft_class = file_get_contents($directory.'/content/net/minecraft/client/Minecraft.class');
- $givenName = 'false';
- if (preg_match('/Minecraft Minecraft (.+)Minecraft main/', $minecraft_class, $matches)) {
- $givenName = '';
- $givenName_w = $matches[count($matches)-1];
- for( $i = 0 ; $i < strlen($givenName_w) ; $i++ )
- {
- $givenName_cw = substr($givenName_w, $i, 1);
- if(($givenName_cw >= 'a' && $givenName_cw <= 'z') || ($givenName_cw >= 'A' && $givenName_cw <= 'Z') || ($givenName_cw >= '0' && $givenName_cw <= '9') || $givenName_cw == '|' || $givenName_cw == '.' || $givenName_cw == '_' || $givenName_cw == '-')
- $givenName .= $givenName_cw;
- }
- }
- // Spécifications selon le type de release
- if ($type == 'r') {
- $name = $givenName;
- $lastVersions_e[1] = $name;
- $lastVersions_e[2] = $md5;
- $infosNode->setAttribute('wiki', 'http://www.minecraftwiki.net/wiki/Version_history#'.$name);
- } else {
- $name = $input;
- $lastVersions_e[3] = $name;
- $lastVersions_e[4] = $md5;
- $infosNode->setAttribute('wiki', 'http://www.minecraftwiki.net/wiki/Version_history/Development_versions#'.$name);
- }
-
- // Mise des infos dans le XML
- $releaseNode->setAttribute('id', $id);
- $releaseNode->setAttribute('name', $name);
- $releaseNode->setAttribute('type', $type);
- $infosNode->setAttribute('givenName', $givenName);
- $infosNode->setAttribute('directory', $directory);
- $infosNode->setAttribute('link', $url);
- $infosNode->setAttribute('size', filesize($directory.'/minecraft.jar'));
- $infosNode->setAttribute('md5', $md5);
- $infosNode->setAttribute('sha1', sha1_file($directory.'/minecraft.jar'));
- $infosNode->setAttribute('date', $lastVersions_e[0]);
- $infosNode->setAttribute('shortDescription', 'false');
- $mcupdatesNode->setAttribute('total', $id);
-
- // Sauvegarde finale
- $lastVersions_e[0] = time();
- $lastVersions_e[5] = $id;
- $lastVersions_e[6] = $name;
- $lastVersions_e[7] = $type;
- $id = $mcupdatesNode->setAttribute('total', $id);
- $lastVersions_f = fopen('lastVersions.txt', 'w');
- $lastError = error_get_last();
- if ($debug) { echo substr($lastError['file'], -14); }
- if ($lastError /*AND $lastError['type']!= 2 */AND substr($lastError['file'], -14) == 'addrelease.php') {
- fwrite($lastVersions_f, implode('|', $lastVersions_e_backup));
- rrmdir($directory);
- return 'ERREUR "'.$lastError['message'].'" (type : '.$lastError['type'].') dans '.$lastError['file'].' ligne '.$lastError['line'].'.';
- } else {
- $data->save('data.xml');
- fwrite($lastVersions_f, implode('|', $lastVersions_e));
- fclose($lastVersions_f);
- return implode('|', $lastVersions_e);
- }
-}
-function directoryConstruct($directoryName, $XML, $data, $array) {
- $directory = opendir($directoryName);
- while($file = readdir($directory)) {
- if ($file != '.' AND $file != '..') {
- if (is_dir($directoryName.'/'.$file)) {
- $newDirectory = $data->createElement('dir');
- $XML->appendChild($newDirectory);
- $newDirectory->setAttribute('name', $file);
- if (isset($array[$file])) {
- $newDirectory->setAttribute('comparaison', 'same');
- directoryConstruct($directoryName.'/'.$file, $newDirectory, $data, $array[$file]);
- } else {
- $newDirectory->setAttribute('comparaison', 'added');
- directoryConstruct($directoryName.'/'.$file, $newDirectory, $data, array());
- }
- } else {
- $fileXML = $data->createElement('file');
- $XML->appendChild($fileXML);
- $fileXML->setAttribute('name', $file);
- $fileXML->setAttribute('md5', md5_file($directoryName.'/'.$file));
- if (isset($array[$file])) {
- if ($array[$file] == md5_file($directoryName.'/'.$file)) {
- $fileXML->setAttribute('comparaison', 'same');
- } else {
- $fileXML->setAttribute('comparaison', 'change');
- }
- } else {
- $fileXML->setAttribute('comparaison', 'added');
- }
- // TODO Verifier si un fichier a été supprimé
- }
- }
- }
-}
-function directoryOld($XML) {
-$array = array();
- $dirS = $XML->getElementsByTagName('dir');
- for ($c = $dirS->length, $i = 0; $i < $c; $i++) {
- $dir = $dirS->item($i);
- $array[$dir->getAttribute('name')]= directoryOld($dir);
- }
- $fileS = $XML->getElementsByTagName('file');
- for ($c = $fileS->length, $i = 0; $i < $c; $i++) {
- $file = $fileS->item($i);
- $array[$file->getAttribute('name')] = $file->getAttribute('md5');
- }
- return $array;
-}
-function rrmdir($dir) { // Par holger1@NOSPAMzentralplan.de
- if (is_dir($dir)) {
- $objects = scandir($dir);
- foreach ($objects as $object) {
- if ($object != "." && $object != "..") {
- if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
- }
- }
- reset($objects);
- rmdir($dir);
- }
- }
+load('data.xml');
+ $dataNode = $data->getElementsByTagName('data')->item(0);
+ $mcupdatesNode = $dataNode->getElementsByTagName('mcupdates')->item(0);
+ $id = $mcupdatesNode->getAttribute('total')+1;
+ $releaseS = $mcupdatesNode->getElementsByTagName('release');
+ $release = $releaseS->item($releaseS->length-1);
+
+ // Creation du noeud XML
+ $releaseNode = $data->createElement('release');
+ $mcupdatesNode->appendChild($releaseNode);
+ $infosNode = $data->createElement('infos');
+ $releaseNode->appendChild($infosNode);
+ $files = $data->createElement('files');
+ $releaseNode->appendChild($files);
+
+ // Extraction et copie de minecraft.jar
+ $directory = $id.' - '.$lastVersions_e[0].' ('.rand(1, 1000).')';
+ if (!mkdir($directory) OR !copy($url, $directory.'/minecraft.jar')) { return 'ERREUR Impossible de copier le fichier ou de créer un nouveau dossier.';}
+ $zip = new ZipArchive;
+ if ($zip->open($directory.'/minecraft.jar') AND mkdir($directory.'/content')) {
+ $zip->extractTo($directory.'/content');
+ $zip->close();
+ } else {
+ return 'ERREUR Impossible d\'extraire le fichier ou de créer un nouveau dossier.';
+ }
+ $md5 = md5_file($directory.'/minecraft.jar');
+ directoryConstruct($directory.'/content', $files, $data, directoryOld($release));
+
+ // Detection de $givenName
+ // Code par @EphysPatato
+ $minecraft_class = file_get_contents($directory.'/content/net/minecraft/client/Minecraft.class');
+ $givenName = 'false';
+ if (preg_match('/Minecraft Minecraft (.+)Minecraft main/', $minecraft_class, $matches)) {
+ $givenName = '';
+ $givenName_w = $matches[count($matches)-1];
+ for( $i = 0 ; $i < strlen($givenName_w) ; $i++ )
+ {
+ $givenName_cw = substr($givenName_w, $i, 1);
+ if(($givenName_cw >= 'a' && $givenName_cw <= 'z') || ($givenName_cw >= 'A' && $givenName_cw <= 'Z') || ($givenName_cw >= '0' && $givenName_cw <= '9') || $givenName_cw == '|' || $givenName_cw == '.' || $givenName_cw == '_' || $givenName_cw == '-')
+ $givenName .= $givenName_cw;
+ }
+ }
+ // Spécifications selon le type de release
+ if ($type == 'r') {
+ $name = $givenName;
+ $lastVersions_e[1] = $name;
+ $lastVersions_e[2] = $md5;
+ $infosNode->setAttribute('wiki', 'http://www.minecraftwiki.net/wiki/Version_history#'.$name);
+ } else {
+ $name = $input;
+ $lastVersions_e[3] = $name;
+ $lastVersions_e[4] = $md5;
+ $infosNode->setAttribute('wiki', 'http://www.minecraftwiki.net/wiki/Version_history/Development_versions#'.$name);
+ }
+
+ // Mise des infos dans le XML
+ $releaseNode->setAttribute('id', $id);
+ $releaseNode->setAttribute('name', $name);
+ $releaseNode->setAttribute('type', $type);
+ $infosNode->setAttribute('givenName', $givenName);
+ $infosNode->setAttribute('directory', $directory);
+ $infosNode->setAttribute('link', $url);
+ $infosNode->setAttribute('size', filesize($directory.'/minecraft.jar'));
+ $infosNode->setAttribute('md5', $md5);
+ $infosNode->setAttribute('sha1', sha1_file($directory.'/minecraft.jar'));
+ $infosNode->setAttribute('date', $lastVersions_e[0]);
+ $infosNode->setAttribute('shortDescription', 'false');
+ $mcupdatesNode->setAttribute('total', $id);
+
+ // Sauvegarde finale
+ $lastVersions_e[0] = time();
+ $lastVersions_e[5] = $id;
+ $lastVersions_e[6] = $name;
+ $lastVersions_e[7] = $type;
+ $id = $mcupdatesNode->setAttribute('total', $id);
+ $lastVersions_f = fopen('lastVersions.txt', 'w');
+ $lastError = error_get_last();
+ if ($debug) { echo substr($lastError['file'], -14); }
+ if ($lastError /*AND $lastError['type']!= 2 */AND substr($lastError['file'], -14) == 'addrelease.php') {
+ fwrite($lastVersions_f, implode('|', $lastVersions_e_backup));
+ rrmdir($directory);
+ return 'ERREUR "'.$lastError['message'].'" (type : '.$lastError['type'].') dans '.$lastError['file'].' ligne '.$lastError['line'].'.';
+ } else {
+ $data->save('data.xml');
+ fwrite($lastVersions_f, implode('|', $lastVersions_e));
+ fclose($lastVersions_f);
+ return implode('|', $lastVersions_e);
+ }
+}
+function directoryConstruct($directoryName, $XML, $data, $array) {
+ $directory = opendir($directoryName);
+ while($file = readdir($directory)) {
+ if ($file != '.' AND $file != '..') {
+ if (is_dir($directoryName.'/'.$file)) {
+ $newDirectory = $data->createElement('dir');
+ $XML->appendChild($newDirectory);
+ $newDirectory->setAttribute('name', $file);
+ if (isset($array[$file])) {
+ $newDirectory->setAttribute('comparaison', 'same');
+ directoryConstruct($directoryName.'/'.$file, $newDirectory, $data, $array[$file]);
+ } else {
+ $newDirectory->setAttribute('comparaison', 'added');
+ directoryConstruct($directoryName.'/'.$file, $newDirectory, $data, array());
+ }
+ } else {
+ $fileXML = $data->createElement('file');
+ $XML->appendChild($fileXML);
+ $fileXML->setAttribute('name', $file);
+ $fileXML->setAttribute('md5', md5_file($directoryName.'/'.$file));
+ if (isset($array[$file])) {
+ if ($array[$file] == md5_file($directoryName.'/'.$file)) {
+ $fileXML->setAttribute('comparaison', 'same');
+ } else {
+ $fileXML->setAttribute('comparaison', 'change');
+ }
+ } else {
+ $fileXML->setAttribute('comparaison', 'added');
+ }
+ // TODO Verifier si un fichier a été supprimé
+ }
+ }
+ }
+}
+function directoryOld($XML) {
+$array = array();
+ $dirS = $XML->getElementsByTagName('dir');
+ for ($c = $dirS->length, $i = 0; $i < $c; $i++) {
+ $dir = $dirS->item($i);
+ $array[$dir->getAttribute('name')]= directoryOld($dir);
+ }
+ $fileS = $XML->getElementsByTagName('file');
+ for ($c = $fileS->length, $i = 0; $i < $c; $i++) {
+ $file = $fileS->item($i);
+ $array[$file->getAttribute('name')] = $file->getAttribute('md5');
+ }
+ return $array;
+}
+function rrmdir($dir) { // Par holger1@NOSPAMzentralplan.de
+ if (is_dir($dir)) {
+ $objects = scandir($dir);
+ foreach ($objects as $object) {
+ if ($object != "." && $object != "..") {
+ if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
+ }
+ }
+ reset($objects);
+ rmdir($dir);
+ }
+ }
?>
\ No newline at end of file
diff --git a/test.php b/test.php
index 52a2198..00a0ab0 100755
--- a/test.php
+++ b/test.php
@@ -50,7 +50,7 @@ if (substr($lastVersions_e[3], 0, 2) == substr(date('Y'), 2, 2) AND substr($last
if (true) {
// if (((date('D') == 'Thu') AND $nextAPR_firstOfWeek AND time()-$lastVersions_e[0] >= 5) OR time()-$lastVersions_e[0] >= 10) {
debug('nextAPR check 1');
- if (@fopen('http://assets.minecraft.net/'.$nextAPR.'/minecraft.zip', 'r')) {
+ if (@fopen('http://assets.minecraft.net/'.$nextAPR.'/minecraft.jar', 'r')) {
include_once('addrelease.php');
echo addRelease($nextAPR);
exit();
@@ -70,7 +70,7 @@ if (true) {
if (true) {
//if ((time()-$lastVersions_e[0] <= 20 AND !$nextAPR_firstOfWeek) OR (time()-$lastVersions_e[0] >= 60)) {
debug('lastAPR re-check');
- if (@md5_file('http://assets.minecraft.net/'.$lastVersions_e[3].'/minecraft.zip') != $lastVersions_e[4]) {
+ if (@md5_file('http://assets.minecraft.net/'.$lastVersions_e[3].'/minecraft.jar') != $lastVersions_e[4]) {
include_once('addrelease.php');
echo addRelease($lastVersions_e[3]);
exit();