modified: xsaf2.php

- ajout d'une limitation du nombre d'autoblogs crées
- remise en forme des messages de DEBUG
- exclusion des liens de flux avec redirection
- usage de get_headers pour $to_update
/!\ fiabilité de l'itération à vérifier
/!\ bug indéterminé toujours encore rencontré quand to_update actif: les dossiers de chaque autoblog sont crées avec un index.php de 0 octets dedans - peut être juste un cache à la con.
- ajout de "panneaux stop" (return à la fin de la fonction principale, et die à la fin de script) - il y a peut-être un break à ajouter ligne 138
This commit is contained in:
Mitsukarenai 2013-01-28 12:29:45 +01:00
parent 26b20e9f1d
commit 9a3ea6f195

View file

@ -1,5 +1,5 @@
<?php <?php
/* modtime 2013-01-23 */ /* modtime 2013-01-28 */
define('DEBUG', true); define('DEBUG', true);
@ -8,13 +8,12 @@ header('X-Robots-Tag: noindex'); /* more civilized method, but bots may not a
header('Content-type: text/plain'); header('Content-type: text/plain');
$expire = time() -7200 ; $lockfile = ".xsaflock"; /* defaut delay: 7200 (2 hours) */ $expire = time() -7200 ; $lockfile = ".xsaflock"; /* defaut delay: 7200 (2 hours) */
if (file_exists($lockfile)) if (file_exists($lockfile))
{ {
if (filemtime($lockfile) > $expire) if (filemtime($lockfile) > $expire)
{ echo "too early"; die; } { echo "too early"; die; }
else else
{ unlink($lockfile); } { unlink($lockfile); file_put_contents($lockfile, ''); }
} }
else file_put_contents($lockfile, ''); else file_put_contents($lockfile, '');
@ -35,10 +34,11 @@ function NoProtocolSiteURL($url)
$siteurlnoproto = str_replace($siteurlnoprototypes, "", $url); $siteurlnoproto = str_replace($siteurlnoprototypes, "", $url);
return $siteurlnoproto; return $siteurlnoproto;
} }
function xsafimport($xsafremote) function xsafimport($xsafremote, $iter)
{ {
$json_import = file_get_contents($xsafremote); echo "\n*Traitement $xsafremote avec $iter créations max";
if(!empty($json_import)){ $json_import = file_get_contents($xsafremote);
if(!empty($json_import)){
$to_update=array(); $to_update=array();
foreach (json_decode($json_import) as $value) { foreach (json_decode($json_import) as $value) {
$infos=""; $infos="";
@ -63,10 +63,15 @@ function xsafimport($xsafremote)
$sitedomain3=explode(".", $sitedomain2); $sitedomain3=explode(".", $sitedomain2);
$sitedomain3=array_reverse($sitedomain3); $sitedomain3=array_reverse($sitedomain3);
$sitedomain = $sitedomain3[1].'.'.$sitedomain3[0]; $sitedomain = $sitedomain3[1].'.'.$sitedomain3[0];
if(!file_exists($foldername) && !file_exists($foldername2)) { if(!file_exists($foldername) && !file_exists($foldername2) and $iter > 0) {
if ( mkdir('./'. $foldername, 0755, false) ) { if ( mkdir('./'. $foldername, 0755, false) ) {
$fp = fopen('./'. $foldername .'/index.php', 'w+'); $fp = fopen('./'. $foldername .'/index.php', 'w+');
$response = get_headers($rssurl, 1); // check for redirections
if(!empty($response['Location']))
{ $result="false"; }
else
{
$xml = simplexml_load_file($rssurl); // quick feed check $xml = simplexml_load_file($rssurl); // quick feed check
if (isset($xml->entry)) // ATOM feed. if (isset($xml->entry)) // ATOM feed.
{$result="true";} {$result="true";}
@ -76,12 +81,13 @@ elseif (isset($xml->channel->item)) // RSS 2.0
{$result="true";} {$result="true";}
else else
{$result="false";} {$result="false";}
}
/* autoblog */ /* autoblog */
if($social==FALSE and $result!=="false") if($social==FALSE and $result!=="false")
{ { $iter--;
if( !fwrite($fp, "<?php require_once dirname(__DIR__) . '/autoblog.php'; ?>") ){ if( !fwrite($fp, "<?php require_once dirname(__DIR__) . '/autoblog.php'; ?>") ){
$infos = "Impossible d'écrire le fichier index.php dans ".$foldername; $infos = "\nImpossible d'écrire le fichier index.php dans ".$foldername;
fclose($fp); fclose($fp);
}else{ }else{
fclose($fp); fclose($fp);
@ -93,19 +99,19 @@ SITE_URL="'. $siteurl .'"
FEED_URL="'. $rssurl .'" FEED_URL="'. $rssurl .'"
DOWNLOAD_MEDIA_FROM='.$sitedomain) ){ DOWNLOAD_MEDIA_FROM='.$sitedomain) ){
fclose($fp); fclose($fp);
$infos = "Impossible d'écrire le fichier vvb.ini dans ".$foldername; $infos = "\nImpossible d'écrire le fichier vvb.ini dans ".$foldername;
}else{ }else{
fclose($fp); fclose($fp);
$infos = "autoblog crée avec succès : $foldername"; $infos = "\n$iter/autoblog crée avec succès : $foldername";
$to_update[]=serverUrl().preg_replace("/(.*)\/(.*)$/i","$1/".$foldername , $_SERVER['SCRIPT_NAME']); // url of the new autoblog $to_update[]=serverUrl().preg_replace("/(.*)\/(.*)$/i","$1/".$foldername , $_SERVER['SCRIPT_NAME']); // url of the new autoblog
} }
} }
} }
/* automicroblog */ /* automicroblog */
else if($social!==FALSE and $result!=="false") else if($social!==FALSE and $result!=="false")
{ { $iter--;
if( !fwrite($fp, "<?php require_once dirname(__DIR__) . '/automicroblog.php'; ?>") ){ if( !fwrite($fp, "<?php require_once dirname(__DIR__) . '/automicroblog.php'; ?>") ){
$infos = "Impossible d'écrire le fichier index.php dans ".$foldername; $infos = "\nImpossible d'écrire le fichier index.php dans ".$foldername;
fclose($fp); fclose($fp);
}else{ }else{
fclose($fp); fclose($fp);
@ -116,39 +122,40 @@ SITE_DESCRIPTION="AutoMicroblog automatis&eacute; de "
SITE_URL="'. $siteurl .'" SITE_URL="'. $siteurl .'"
FEED_URL="'. $rssurl .'"') ){ FEED_URL="'. $rssurl .'"') ){
fclose($fp); fclose($fp);
$infos = "Impossible d'écrire le fichier vvb.ini dans ".$foldername; $infos = "\nImpossible d'écrire le fichier vvb.ini dans ".$foldername;
}else{ }else{
fclose($fp); fclose($fp);
$infos = "automicroblog crée avec succès : $foldername"; $infos = "\n$iter/automicroblog crée avec succès : $foldername";
$to_update[]=serverUrl().preg_replace("/(.*)\/(.*)$/i","$1/".$foldername , $_SERVER['SCRIPT_NAME']); // url of the new autoblog $to_update[]=serverUrl().preg_replace("/(.*)\/(.*)$/i","$1/".$foldername , $_SERVER['SCRIPT_NAME']); // url of the new autoblog
} }
} }
} else { $infos = "$rssurl -> flux invalide"; } } else { $infos = "\n$rssurl -> flux invalide"; }
/* end of file writing */ /* end of file writing */
}else { }else {
$infos = "Impossible de créer le répertoire ".$foldername; $infos = "\nImpossible de créer le répertoire ".$foldername;
} }
} else { /* $infos = "Le répertoire ".$foldername." existe déjà ($sitename;$siteurl;$rssurl)"; */ } } else { /*$infos = "\nFin d'itération ou Le répertoire ".$foldername." existe déjà ($sitename;$siteurl;$rssurl)";*/ }
if(DEBUG){ echo $infos."\n"; } if(DEBUG){ echo $infos; }
} }
} }
if(!empty($to_update)){ /*if(!empty($to_update)){
if(DEBUG){ echo "update of autoblogs ..."; } if(DEBUG){ echo "\nupdate of autoblogs ..."; }
// because it's could be very long, we finish by updating new autoblogs // because it's could be very long, we finish by updating new autoblogs
foreach ($to_update as $url) { foreach ($to_update as $url) {
file_get_contents($url); get_headers($url);
} }
if(DEBUG){ echo "done"; } if(DEBUG){ echo "done\n\n"; }
} }*/
} }
$iter=''; return;
} }
/* And now, the XSAF links to be imported ! */ /* And now, the XSAF links to be imported, with maximal import per run ! */
xsafimport('https://raw.github.com/mitsukarenai/xsaf-bootstrap/master/2.json'); xsafimport('https://raw.github.com/mitsukarenai/xsaf-bootstrap/master/2.json', 2);
//xsafimport('https://www.ecirtam.net/autoblogs/?export'); //xsafimport('https://www.ecirtam.net/autoblogs/?export', 2);
//xsafimport('https://autoblog.suumitsu.eu/?export'); //xsafimport('https://autoblog.suumitsu.eu/?export', 1);
if(DEBUG){ echo "\n\nXSAF import finished\n\n"; } if(DEBUG){ echo "\n\nXSAF import finished\n\n"; }
die;
?> ?>