diff --git a/_experimental/xsaf3.php b/_experimental/xsaf3.php
index 03e49ff..66650db 100755
--- a/_experimental/xsaf3.php
+++ b/_experimental/xsaf3.php
@@ -2,6 +2,8 @@
/* modtime 2013-02-04 */
define('DEBUG', true);
+define('XSAF_VERSION', 3);
+define('AUTOBLOG_FILE_NAME', 'autoblog-0.3.php');
header("HTTP/1.0 403 Forbidden"); /* Uncivilized method to prevent bot indexing, huh :) */
header('X-Robots-Tag: noindex'); /* more civilized method, but bots may not all take into account */
@@ -46,83 +48,96 @@ function xsafimport($xsafremote, $max_exec_time) {
$json_import = file_get_contents($xsafremote);
if(!empty($json_import)) {
$to_update=array();
- foreach (json_decode($json_import, true) as $value) {
- $infos="";
- if(count($value)==3 && !empty($value['SITE_TYPE']) && !empty($value['SITE_TITLE']) && !empty($value['SITE_URL']) && !empty($value['FEED_URL'])) {
- $sitetype = $value['SITE_TYPE'];
- $sitename = $value['SITE_TITLE'];
- $siteurl = escape($value['SITE_URL']);
- $rssurl = escape($value['FEED_URL']);
+ $json_import = json_decode($json_import, true);
- $foldername = $sitename;$foldername2 = $sitename;
+ if(!isset($json_import['meta']) || !isset($json_import['meta']['xsaf-version']) || $json_import['meta']['xsaf-version'] != XSAF_VERSION){
+ if(DEBUG){
+ echo "\nxsaf-version différentes !";
+ }
+ return false;
+ }
+ if(!empty($json_import['autoblogs'])) {
+ foreach ($json_import['autoblogs'] as $value) {
+ $infos="";
+ if(count($value)==4 && !empty($value['SITE_TYPE']) && !empty($value['SITE_TITLE']) && !empty($value['SITE_URL']) && !empty($value['FEED_URL'])) {
+ $sitetype = $value['SITE_TYPE'];
+ $sitename = $value['SITE_TITLE'];
+ $siteurl = escape($value['SITE_URL']);
+ $rssurl = escape($value['FEED_URL']);
- if(!file_exists($foldername) && !file_exists($foldername2)) {
- if ( mkdir('./'. $foldername, 0755, false) ) {
- $fp = fopen('./'. $foldername .'/index.php', 'w+');
+ $foldername = $sitename;$foldername2 = $sitename;
- $response = get_headers($rssurl, 1); // check for redirections
- if(!empty($response['Location'])) {
- $result="false";
- }else{
- $xml = simplexml_load_file($rssurl); // quick feed check
+ if(!file_exists($foldername) && !file_exists($foldername2)) {
+ if ( mkdir('./'. $foldername, 0755, false) ) {
+ $fp = fopen('./'. $foldername .'/index.php', 'w+');
- if($xml === FALSE){
+ $response = get_headers($rssurl, 1); // check for redirections
+ if(!empty($response['Location'])) {
$result="false";
- }elseif (isset($xml->entry)) { // ATOM feed.
- $result="true";
- }elseif (isset($xml->item)) { // RSS 1.0 /RDF
- $result="true";
- }elseif (isset($xml->channel->item)) { // RSS 2.0
- $result="true";
}else{
- $result="false";
- }
- }
+ $xml = simplexml_load_file($rssurl); // quick feed check
- /* autoblog */
- if($result!=="false") {
- if( !fwrite($fp, "") ) {
- $infos = "\nImpossible d'écrire le fichier index.php dans ".$foldername;
- fclose($fp);
- }else{
- fclose($fp);
- $fp = fopen('./'. $foldername .'/vvb.ini', 'w+');
- if( !fwrite($fp, '[VroumVroumBlogConfig]
+ if($xml === FALSE){
+ $result="false";
+ }elseif (isset($xml->entry)) { // ATOM feed.
+ $result="true";
+ }elseif (isset($xml->item)) { // RSS 1.0 /RDF
+ $result="true";
+ }elseif (isset($xml->channel->item)) { // RSS 2.0
+ $result="true";
+ }else{
+ $result="false";
+ }
+ }
+
+ /* autoblog */
+ if($result!=="false") {
+ if( !fwrite($fp, "") ) {
+ $infos = "\nImpossible d'écrire le fichier index.php dans ".$foldername;
+ fclose($fp);
+ }else{
+ fclose($fp);
+ $fp = fopen('./'. $foldername .'/vvb.ini', 'w+');
+ if( !fwrite($fp, '[VroumVroumBlogConfig]
SITE_TYPE="'. $sitetype .'"
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 .'"') ){
- fclose($fp);
- $infos = "\nImpossible d'écrire le fichier vvb.ini dans ".$foldername;
- }else{
- fclose($fp);
-/* ============================================================================================================================================================================== */
-/* récupération de la DB distante */ $remote_db=str_replace("?export", $foldername."/articles.db", $xsafremote); copy($remote_db, './'. $foldername .'/articles.db');
-/* ============================================================================================================================================================================== */
- $infos = "\nautoblog crée avec succès : $foldername";
- $to_update[]=serverUrl().preg_replace("/(.*)\/(.*)$/i","$1/".$foldername , $_SERVER['SCRIPT_NAME']); // url of the new autoblog
+ fclose($fp);
+ $infos = "\nImpossible d'écrire le fichier vvb.ini dans ".$foldername;
+ }else{
+ fclose($fp);
+ /* ============================================================================================================================================================================== */
+ /* récupération de la DB distante */ $remote_db=str_replace("?export", $foldername."/articles.db", $xsafremote); copy($remote_db, './'. $foldername .'/articles.db');
+ /* ============================================================================================================================================================================== */
+
+ //TODO : tester si articles.db est une DB valide
+
+ $infos = "\nautoblog crée avec succès : $foldername";
+ $to_update[]=serverUrl().preg_replace("/(.*)\/(.*)$/i","$1/".$foldername , $_SERVER['SCRIPT_NAME']); // url of the new autoblog
+ }
}
+ } else {
+ $infos = "\n$rssurl -> flux invalide";
}
- } else {
- $infos = "\n$rssurl -> flux invalide";
+ /* end of file writing */
+ }else {
+ $infos = "\nImpossible de créer le répertoire ".$foldername;
}
- /* end of file writing */
- }else {
- $infos = "\nImpossible de créer le répertoire ".$foldername;
+ } else {
+ /*$infos = "\nFin d'itération ou Le répertoire ".$foldername." existe déjà ($sitename;$siteurl;$rssurl)";*/
+ }
+ if(DEBUG){
+ echo $infos;
}
- } else {
- /*$infos = "\nFin d'itération ou Le répertoire ".$foldername." existe déjà ($sitename;$siteurl;$rssurl)";*/
- }
- if(DEBUG){
- echo $infos;
- }
- }
- echo "\n time : ".(time() - $max_exec_time);
- if(time() >= $max_exec_time){
- break;
- }
- }
+ }
+ echo "\n time : ".(time() - $max_exec_time);
+ if(time() >= $max_exec_time){
+ break;
+ }
+ }
+ }
/*if(!empty($to_update)){
if(DEBUG){
echo "\nupdate of autoblogs ...";
@@ -140,7 +155,7 @@ FEED_URL="'. $rssurl .'"') ){
}
/* And now, the XSAF links to be imported, with maximal execusion time for import in second ! */
-xsafimport('https://raw.github.com/mitsukarenai/xsaf-bootstrap/master/2.json', 5);
+xsafimport('https://raw.github.com/mitsukarenai/xsaf-bootstrap/master/3.json', 5);
//xsafimport('https://www.ecirtam.net/autoblogs/?export', 5);
//xsafimport('https://autoblog.suumitsu.eu/?export', 5);