$expire)
{ echo "too early"; die; }
else
{ unlink($lockfile); }
}
else file_put_contents($lockfile, '');
define('ROOT_DIR', __DIR__);
function escape($str)
{
return htmlspecialchars($str, ENT_COMPAT, 'UTF-8', false);
}
function serverUrl()
{
$https = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS'])=='on')) || $_SERVER["SERVER_PORT"]=='443'; // HTTPS detection.
$serverport = ($_SERVER["SERVER_PORT"]=='80' || ($https && $_SERVER["SERVER_PORT"]=='443') ? '' : ':'.$_SERVER["SERVER_PORT"]);
return 'http'.($https?'s':'').'://'.$_SERVER["SERVER_NAME"].$serverport;
}
function NoProtocolSiteURL($url)
{
$siteurlnoprototypes = array("http://", "https://");
$siteurlnoproto = str_replace($siteurlnoprototypes, "", $url);
return $siteurlnoproto;
}
function xsafimport($xsafremote)
{
$json_import = file_get_contents($xsafremote);
if(!empty($json_import)){
$to_update=array();
foreach (json_decode($json_import) as $value) {
$infos="";
if(count($value)==3 && !empty($value[0]) && !empty($value[1]) && !empty($value[2])){
$sitename = $value[0];
$siteurl = escape($value[1]);
$rssurl = escape($value[2]);
if(strpos($siteurl, 'twitter.com') !== FALSE or strpos($siteurl, 'identi.ca') !== FALSE or strpos($sitename, 'statusnet-') !== FALSE) {$social=TRUE;} else {$social=FALSE;}
if($social==FALSE)
{
$foldername = sha1(NoProtocolSiteURL($siteurl));
if(substr($siteurl, -1) == '/'){ $foldername2 = sha1(NoProtocolSiteURL(substr($siteurl, 0, -1))); }else{ $foldername2 = sha1(NoProtocolSiteURL($siteurl).'/');}
}
else
{
$foldername = $sitename;$foldername2 = $sitename;
}
$sitedomain1 = preg_split('/\//', $siteurl, 0);
$sitedomain2=$sitedomain1[2];
$sitedomain3=explode(".", $sitedomain2);
$sitedomain3=array_reverse($sitedomain3);
$sitedomain = $sitedomain3[1].'.'.$sitedomain3[0];
if(!file_exists($foldername) && !file_exists($foldername2)) {
if ( mkdir('./'. $foldername, 0755, false) ) {
$fp = fopen('./'. $foldername .'/index.php', 'w+');
$validator = "http://validator.w3.org/feed/check.cgi";$validator .= "?url=".$rssurl;$validator .= "&output=soap12";
$response = file_get_contents($validator);$a = strpos($response, '', 0)+12;$b = strpos($response, '', $a);$result = substr($response, $a, $b-$a);
/* autoblog */
if($social==FALSE and $result!=="false")
{
if( !fwrite($fp, "") ){
$infos = "Impossible d'écrire le fichier index.php dans ".$foldername;
fclose($fp);
}else{
fclose($fp);
$fp = fopen('./'. $foldername .'/vvb.ini', 'w+');
if( !fwrite($fp, '[VroumVroumBlogConfig]
SITE_TITLE="'. $sitename .'"
SITE_DESCRIPTION="Ce site n\'est pas le site officiel de '. $sitename .'
C\'est un blog automatisé qui réplique les articles de '. $sitename .'"
SITE_URL="'. $siteurl .'"
FEED_URL="'. $rssurl .'"
DOWNLOAD_MEDIA_FROM='.$sitedomain) ){
fclose($fp);
$infos = "Impossible d'écrire le fichier vvb.ini dans ".$foldername;
}else{
fclose($fp);
$infos = "autoblog crée avec succès : $foldername";
$to_update[]=serverUrl().preg_replace("/(.*)\/(.*)$/i","$1/".$foldername , $_SERVER['SCRIPT_NAME']); // url of the new autoblog
}
}
}
/* automicroblog */
else if($social!==FALSE and $result!=="false")
{
if( !fwrite($fp, "") ){
$infos = "Impossible d'écrire le fichier index.php dans ".$foldername;
fclose($fp);
}else{
fclose($fp);
$fp = fopen('./'. $foldername .'/vvb.ini', 'w+');
if( !fwrite($fp, '[VroumVroumBlogConfig]
SITE_TITLE="'. $sitename .'"
SITE_DESCRIPTION="AutoMicroblog automatisé de "
SITE_URL="'. $siteurl .'"
FEED_URL="'. $rssurl .'"') ){
fclose($fp);
$infos = "Impossible d'écrire le fichier vvb.ini dans ".$foldername;
}else{
fclose($fp);
$infos = "automicroblog crée avec succès : $foldername";
$to_update[]=serverUrl().preg_replace("/(.*)\/(.*)$/i","$1/".$foldername , $_SERVER['SCRIPT_NAME']); // url of the new autoblog
}
}
} else { $infos = "$rssurl -> flux invalide"; }
/* end of file writing */
}else {
$infos = "Impossible de créer le répertoire ".$foldername;
}
} else { /* $infos = "Le répertoire ".$foldername." existe déjà ($sitename;$siteurl;$rssurl)"; */ }
if(DEBUG){ echo $infos."\n"; }
}
}
if(!empty($to_update)){
if(DEBUG){ echo "update of autoblogs ..."; }
// because it's could be very long, we finish by updating new autoblogs
foreach ($to_update as $url) {
file_get_contents($url);
}
if(DEBUG){ echo "done"; }
}
}
}
/* And now, the XSAF links to be imported ! */
xsafimport('https://raw.github.com/mitsukarenai/xsaf-bootstrap/master/2.json');
//xsafimport('https://www.ecirtam.net/autoblogs/?export');
//xsafimport('https://autoblog.suumitsu.eu/?export');
if(DEBUG){ echo "\n\nXSAF import finished\n\n"; }
?>