|
|
|
@ -14,11 +14,27 @@ require_once '../../global/inc/config.php'; |
|
|
|
// ---
|
|
|
|
require TOPISTO_PATH.'/ressources/vendor/autoload.php';
|
|
|
|
|
|
|
|
// ---
|
|
|
|
// --- Internal dependances
|
|
|
|
// ---
|
|
|
|
require_once APP_PATH.'/blockchain/inc/block.php';
|
|
|
|
|
|
|
|
// ---
|
|
|
|
// --- Par défaut on cherche le dernier block
|
|
|
|
// ---
|
|
|
|
$block_hash = 'LAST';
|
|
|
|
|
|
|
|
// ---
|
|
|
|
// --- Le cas échéant, on cherche block passé en argument
|
|
|
|
// ---
|
|
|
|
if (isset($argv[1])) $block_hash = $argv[1];
|
|
|
|
|
|
|
|
$nb_max=6;
|
|
|
|
if (isset($argv[2])) $nb_max=intval($argv[2]);
|
|
|
|
|
|
|
|
$width = 840;
|
|
|
|
$height = 104;
|
|
|
|
$final_hash = 'default';
|
|
|
|
$nb_max = 6;
|
|
|
|
$numprev = 0;
|
|
|
|
|
|
|
|
$img = imagecreatetruecolor($width, $height*$nb_max);
|
|
|
|
|
|
|
|
@ -29,41 +45,24 @@ $tr = imagecolorallocate($img, 220, 220, 220); |
|
|
|
imagecolortransparent($img, $tr);
|
|
|
|
imagefilledrectangle($img, 0, 0, $width, $height*$nb_max, $tr);
|
|
|
|
|
|
|
|
$handle = fopen(DATA_PATH.'/hashes2hashes/liste.txt', 'r');
|
|
|
|
if ($handle) {
|
|
|
|
while (($nb_max > 0)&&(($hash = fgets($handle, 4096)) !== false)) {
|
|
|
|
|
|
|
|
$hash = preg_replace('~[[:cntrl:]]~', '', $hash);
|
|
|
|
$split = explode(' ', $hash);
|
|
|
|
$numero = intval($split[0]);
|
|
|
|
$hash = $split[1];
|
|
|
|
|
|
|
|
if ($final_hash == 'default') $final_hash = $hash;
|
|
|
|
|
|
|
|
if (($numprev != 0) && ($numprev != ($numero - 1))) {
|
|
|
|
imagefilledrectangle($img, 0, $height*$nb_max, $width, $height*($nb_max-1), $gris);
|
|
|
|
imagerectangle($img, 0, $height*$nb_max, $width, $height*($nb_max-1), $noir);
|
|
|
|
echo $nb_max.' '.($numprev+1).' manquant !'.PHP_EOL;
|
|
|
|
$nb_max -= 1;
|
|
|
|
}
|
|
|
|
$numprev = $numero;
|
|
|
|
|
|
|
|
$nb_max -= 1;
|
|
|
|
echo $nb_max.' '.$numero.' '.$hash.PHP_EOL;
|
|
|
|
|
|
|
|
$hash = DATA_PATH.'/hashes/'.$hash.'.png';
|
|
|
|
if (file_exists($hash))
|
|
|
|
for($i=0; $i<$nb_max; $i++)
|
|
|
|
{
|
|
|
|
$the_block = blockchain::getBlockWithHash($block_hash);
|
|
|
|
if ($the_block === FALSE) die();
|
|
|
|
|
|
|
|
$hash=DATA_PATH.'/hashes/'.$the_block->hash.'.png';
|
|
|
|
$block_hash = $the_block->prev_block;
|
|
|
|
|
|
|
|
if (file_exists($hash))
|
|
|
|
{
|
|
|
|
$src_img = imagecreatefrompng($hash);
|
|
|
|
if ($src_img)
|
|
|
|
{
|
|
|
|
$src_img = imagecreatefrompng($hash);
|
|
|
|
if ($src_img)
|
|
|
|
{
|
|
|
|
if (FALSE === imagecopy($img, $src_img, 0, $height*$nb_max, 0, 0, $width, $height))
|
|
|
|
echo "Erreur : problème de copie image".PHP_EOL;
|
|
|
|
} else echo "Erreur: ".$hash." ne semble pas être une image PNG".PHP_EOL;
|
|
|
|
} else echo "Erreur: ".$hash." n'a pas été trouvé".PHP_EOL;
|
|
|
|
}
|
|
|
|
fclose($handle);
|
|
|
|
} else echo "Erreur: fopen('".DATA_PATH."/hashes2hashes/liste.txt') a échoué".PHP_EOL;
|
|
|
|
if (FALSE === imagecopy($img, $src_img, 0, ($height*$i), 0, 0, $width, $height))
|
|
|
|
echo "Erreur : problème de copie image".PHP_EOL;
|
|
|
|
} else echo "Erreur: ".$hash." ne semble pas être une image PNG".PHP_EOL;
|
|
|
|
} else echo "Erreur: ".$hash." n'a pas été trouvé".PHP_EOL;
|
|
|
|
}
|
|
|
|
|
|
|
|
imagepng($img, DATA_PATH.'/hashes2hashes/'.$final_hash.'.png');
|
|
|
|
|
|
|
|
|