diff --git a/methode/hashes/robot.php b/methode/hashes/robot.php index 7c8210b..82e8766 100644 --- a/methode/hashes/robot.php +++ b/methode/hashes/robot.php @@ -51,7 +51,7 @@ $img_h = $height+(2*$bandeau); // création d'une image plus haute pour inclure bandeaux haut et bas $img = imagecreatetruecolor($img_w, $img_h); -$paramHeader = blockchain::DrawBlockHeaderFooter($the_block, $img, $bandeau); +$paramHeader = blockchain::DrawBlockHeaderFooter($the_block, $img, $bandeau, $mode); imagefilledrectangle($img, 0, $bandeau, $width, $bandeau + $height, $paramHeader[2]); diff --git a/methode/hashes/robot.sh b/methode/hashes/robot.sh index 17aec2f..8d5945b 100755 --- a/methode/hashes/robot.sh +++ b/methode/hashes/robot.sh @@ -11,18 +11,12 @@ fi touch $flag cd $APPS_PATH/methode/$METHODE -for TYPE in CACHE LAST +for BLOCK in `awk '{print $2}' $DATA_PATH/block_list.txt` do - for BLOCK in `grep $TYPE $DATA_PATH/block_list.txt | awk '{print $2}'` - do - BLOCK_HEIGHT=`grep $BLOCK $DATA_PATH/block_list.txt | awk '{print $3}'` - BNAME=`grep $BLOCK $DATA_PATH/block_list.txt | awk '{print $1}'` - - if [ ! -f $DATA_PATH/$METHODE/$BLOCK.png ] - then - php robot.php $BLOCK $((RANDOM % 6)) - fi - done + if [ ! -f $DATA_PATH/$METHODE/$BLOCK.png ] + then + php robot.php $BLOCK $((RANDOM % 6)) + fi done rm -f $flag diff --git a/methode/hashes2hashes/robot.php b/methode/hashes2hashes/robot.php index d7923d2..4e2326e 100644 --- a/methode/hashes2hashes/robot.php +++ b/methode/hashes2hashes/robot.php @@ -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'); diff --git a/methode/hashes2hashes/robot.sh b/methode/hashes2hashes/robot.sh index 2c800eb..bd78409 100755 --- a/methode/hashes2hashes/robot.sh +++ b/methode/hashes2hashes/robot.sh @@ -11,20 +11,16 @@ fi touch $flag cd $APPS_PATH/methode/$METHODE +SIZE=6 +BLOCK=`grep LAST $DATA_PATH/block_list.txt | awk '{print $2}'` +HEIGHT=`grep LAST $DATA_PATH/block_list.txt | awk '{print $3}'` -mv $DATA_PATH/$METHODE/liste.txt $DATA_PATH/$METHODE/liste.new -sort -k1 -n $DATA_PATH/$METHODE/liste.new > $DATA_PATH/$METHODE/liste.txt -rm -f $DATA_PATH/$METHODE/liste.new - -BLOCK=`head -n 1 $DATA_PATH/$METHODE/liste.txt | awk '{print $2}'` -COMPTEUR=`wc -l $DATA_PATH/$METHODE/liste.txt | awk '{print $1}'` - -if [ $COMPTEUR -gt 5 ] +if [ $((HEIGHT % SIZE)) -eq 0 ] then - php robot.php - - rm -f $DATA_PATH/$METHODE/liste.old - mv $DATA_PATH/$METHODE/liste.txt $DATA_PATH/$METHODE/liste.old + if [ ! -f $DATA_PATH/$METHODE/$BLOCK.png ] + then + php robot.php $BLOCK $SIZE + fi fi rm -f $flag