fixes #20 (foldername) and begin change to rss.json
WARNING: You really need to take a look at https://github.com/mitsukarenai/Projet-Autoblog/wiki/Mettre-%C3%A0-jour before updating
This commit is contained in:
parent
d9e6c5bcf8
commit
d47dd18f3a
5 changed files with 62 additions and 76 deletions
1
.gitignore
vendored
Normal file → Executable file
1
.gitignore
vendored
Normal file → Executable file
|
@ -2,6 +2,7 @@ config.php
|
|||
.versionlock
|
||||
.xsaflock
|
||||
resources/rss.xml
|
||||
resources/rss.json
|
||||
.project
|
||||
resources/user.css
|
||||
autoblogs/*
|
||||
|
|
|
@ -13,6 +13,7 @@ if (!defined('AUTOBLOGS_FOLDER')) define('AUTOBLOGS_FOLDER', './autoblogs/');
|
|||
if (!defined('DOC_FOLDER')) define('DOC_FOLDER', './docs/');
|
||||
if (!defined('RESOURCES_FOLDER')) define('RESOURCES_FOLDER', './resources/');
|
||||
if (!defined('RSS_FILE')) define('RSS_FILE', RESOURCES_FOLDER.'rss.xml');
|
||||
if (!defined('FOLDER_MAX_LENGTH')) define('FOLDER_MAX_LENGTH', 80);
|
||||
date_default_timezone_set('Europe/Paris');
|
||||
setlocale(LC_TIME, 'fr_FR.UTF-8', 'fr_FR', 'fr');
|
||||
|
||||
|
@ -77,16 +78,16 @@ function DetectRedirect($url)
|
|||
}
|
||||
}
|
||||
|
||||
function urlToFolder($url) {
|
||||
return sha1(NoProtocolSiteURL($url));
|
||||
function urlHash($rssurl) {
|
||||
return sha1(NoProtocolSiteURL($rssurl));
|
||||
}
|
||||
|
||||
function urlToFolderSlash($url) {
|
||||
return sha1(NoProtocolSiteURL($url).'/');
|
||||
function urlToFolder($siteurl, $rssurl) {
|
||||
return AUTOBLOGS_FOLDER . substr(preg_replace("/[^a-z0-9]/", '', strtolower(NoProtocolSiteURL($siteurl))), 0, FOLDER_MAX_LENGTH) .'_'. urlHash($rssurl) .'/';
|
||||
}
|
||||
|
||||
function folderExists($url) {
|
||||
return file_exists(AUTOBLOGS_FOLDER . urlToFolder($url)) || file_exists(AUTOBLOGS_FOLDER . urlToFolderSlash($url));
|
||||
function folderExists($siteurl, $rssurl) {
|
||||
return file_exists(urlToFolder($siteurl, $rssurl));
|
||||
}
|
||||
|
||||
function escape($str) {
|
||||
|
@ -103,25 +104,13 @@ function createAutoblog($type, $sitename, $siteurl, $rssurl) {
|
|||
}
|
||||
}
|
||||
|
||||
if(folderExists($siteurl)) {
|
||||
if(folderExists($siteurl, $rssurl)) {
|
||||
throw new Exception('Erreur : l\'autoblog '. $sitename .' existe déjà.');
|
||||
}
|
||||
|
||||
$foldername = AUTOBLOGS_FOLDER . urlToFolderSlash($siteurl);
|
||||
$foldername = urlToFolder($siteurl, $rssurl);
|
||||
|
||||
if ( mkdir($foldername, 0755, false) ) {
|
||||
|
||||
/**
|
||||
* RSS
|
||||
*/
|
||||
try { // à déplacer après la tentative de création de l'autoblog crée avec succès ?
|
||||
require_once('class_rssfeed.php');
|
||||
$rss = new AutoblogRSS(RSS_FILE);
|
||||
$rss->addNewAutoblog($sitename, $foldername, $siteurl, $rssurl);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
; // DO NOTHING
|
||||
}
|
||||
|
||||
$fp = fopen($foldername .'/index.php', 'w+');
|
||||
if( !fwrite($fp, "<?php require_once '../autoblog.php'; ?>") )
|
||||
|
@ -146,8 +135,10 @@ UPDATE_TIMEOUT="'. getTimeout( $type ) .'"') )
|
|||
|
||||
/* @Mitsu: Il faudrait remonter les erreurs d'I/O */
|
||||
/* Comme ça ? :) */
|
||||
if(updateXML('new_autoblog_added', 'new', $foldername, $sitename, $siteurl, $rssurl) === FALSE)
|
||||
{ throw new Exception('Impossible d\'écrire le fichier rss.json'); }
|
||||
/* Arthur 29/04/13 : En fait c'était une mauvaise idée : on rend de nouveau bloquant l'écrire du flux RSS, qui est une feature mineure */
|
||||
// if(updateXML('new_autoblog_added', 'new', $foldername, $sitename, $siteurl, $rssurl) === FALSE)
|
||||
// { throw new Exception('Impossible d\'écrire le fichier rss.json'); }
|
||||
updateXML('new_autoblog_added', 'new', $foldername, $sitename, $siteurl, $rssurl);
|
||||
}
|
||||
|
||||
function getArticlesPerPage( $type ) {
|
||||
|
|
33
index.php
33
index.php
|
@ -125,10 +125,10 @@ function create_from_opml($opml) {
|
|||
|
||||
createAutoblog( $sitetype, $sitename, $siteurl, $rssurl );
|
||||
|
||||
$message = 'Autoblog "'. $sitename .'" crée avec succès. → <a target="_blank" href="'. AUTOBLOGS_FOLDER . urlToFolderSlash( $siteurl ) .'">afficher l\'autoblog</a>.';
|
||||
$message = 'Autoblog "'. $sitename .'" crée avec succès. → <a target="_blank" href="'. urlToFolder( $siteurl, $rssurl ) .'">afficher l\'autoblog</a>.';
|
||||
// Do not print iframe on big import (=> heavy and useless)
|
||||
if( ++$cpt < 10 )
|
||||
$message .= '<iframe width="1" height="1" frameborder="0" src="'. AUTOBLOGS_FOLDER . urlToFolderSlash( $siteurl ) .'/index.php"></iframe>';
|
||||
$message .= '<iframe width="1" height="1" frameborder="0" src="'. urlToFolder( $siteurl, $rssurl ) .'/index.php"></iframe>';
|
||||
$success[] = $message;
|
||||
}
|
||||
catch (Exception $e) {
|
||||
|
@ -171,24 +171,13 @@ function versionCheck() {
|
|||
|
||||
/**
|
||||
* RSS Feed
|
||||
*
|
||||
**/
|
||||
if( !file_exists(RSS_FILE)) {
|
||||
require_once('class_rssfeed.php');
|
||||
$rss = new AutoblogRSS(RSS_FILE);
|
||||
$rss->create('Projet Autoblog'. ((strlen(HEAD_TITLE)>0) ? ' | '. HEAD_TITLE : ''), serverUrl(true),"Projet Autoblog - RSS : Ajouts et changements de disponibilité.", serverUrl(true) . RSS_FILE);
|
||||
}
|
||||
if (isset($_GET['rss'])) {
|
||||
require_once('class_rssfeed.php');
|
||||
$rss = new AutoblogRSS(RSS_FILE);
|
||||
$rss->displayXML();
|
||||
die;
|
||||
}
|
||||
|
||||
if( !file_exists(RESOURCES_FOLDER.'rss.json')) {
|
||||
file_put_contents(RESOURCES_FOLDER.'rss.json', '', LOCK_EX);
|
||||
}
|
||||
|
||||
if (isset($_GET['rss_tmp'])) {
|
||||
if (isset($_GET['rss'])) {
|
||||
displayXML_tmp();
|
||||
die;
|
||||
}
|
||||
|
@ -452,8 +441,8 @@ if(!empty($_GET['via_button']) && $_GET['number'] === '17' && ALLOW_NEW_AUTOBLOG
|
|||
createAutoblog( $sitetype, $sitename, $siteurl, $rssurl );
|
||||
|
||||
if( empty($error)) {
|
||||
$form .= '<iframe width="1" height="1" frameborder="0" src="'. AUTOBLOGS_FOLDER . urlToFolderSlash($siteurl) .'/index.php"></iframe>';
|
||||
$form .= '<p><span style="color:darkgreen">Autoblog <a href="'. AUTOBLOGS_FOLDER . urlToFolderSlash($siteurl) .'">'. $sitename .'</a> ajouté avec succès.</span><br>';
|
||||
$form .= '<iframe width="1" height="1" frameborder="0" src="'. urlToFolder( $siteurl, $rssurl ) .'/index.php"></iframe>';
|
||||
$form .= '<p><span style="color:darkgreen">Autoblog <a href="'. urlToFolder( $siteurl, $rssurl ) .'">'. $sitename .'</a> ajouté avec succès.</span><br>';
|
||||
}
|
||||
else {
|
||||
$form .= '<ul>';
|
||||
|
@ -559,7 +548,8 @@ if(!empty($_POST['socialaccount']) && !empty($_POST['socialinstance']) && ALLOW_
|
|||
}
|
||||
|
||||
createAutoblog($sitetype, ucfirst($socialinstance) .' - '. $socialaccount, $siteurl, $rssurl);
|
||||
$success[] = '<iframe width="1" height="1" frameborder="0" src="'. AUTOBLOGS_FOLDER . urlToFolderSlash( $siteurl ) .'/index.php"></iframe><b style="color:darkgreen">'.ucfirst($socialinstance) .' - '. $socialaccount.' <a href="'. AUTOBLOGS_FOLDER .urlToFolderSlash( $siteurl ).'">ajouté avec succès</a>.</b>';
|
||||
$success[] = '<iframe width="1" height="1" frameborder="0" src="'. urlToFolder( $siteurl, $rssurl ) .'/index.php"></iframe>
|
||||
<b style="color:darkgreen">'.ucfirst($socialinstance) .' - '. $socialaccount.' <a href="'. urlToFolder( $siteurl, $rssurl ) .'">ajouté avec succès</a>.</b>';
|
||||
}
|
||||
catch (Exception $e) {
|
||||
echo $error[] = $e->getMessage();
|
||||
|
@ -592,7 +582,8 @@ if( !empty($_POST['generic']) && ALLOW_NEW_AUTOBLOGS && ALLOW_NEW_AUTOBLOGS_BY_L
|
|||
|
||||
createAutoblog('generic', $sitename, $siteurl, $rssurl);
|
||||
|
||||
$success[] = '<iframe width="1" height="1" frameborder="0" src="'. AUTOBLOGS_FOLDER . urlToFolderSlash( $siteurl ) .'/index.php"></iframe><b style="color:darkgreen">Autoblog '. $sitename .' crée avec succès.</b> → <a target="_blank" href="'. AUTOBLOGS_FOLDER . urlToFolderSlash( $siteurl ) .'">afficher l\'autoblog</a>';
|
||||
$success[] = '<iframe width="1" height="1" frameborder="0" src="'. urlToFolder( $siteurl, $rssurl ) .'/index.php"></iframe>
|
||||
<b style="color:darkgreen">Autoblog '. $sitename .' crée avec succès.</b> → <a target="_blank" href="'. urlToFolder( $siteurl, $rssurl ) .'">afficher l\'autoblog</a>';
|
||||
}
|
||||
else {
|
||||
// checking procedure
|
||||
|
@ -605,7 +596,7 @@ if( !empty($_POST['generic']) && ALLOW_NEW_AUTOBLOGS && ALLOW_NEW_AUTOBLOGS_BY_L
|
|||
$siteurl = get_link_from_datafeed($datafeed);
|
||||
$sitename = get_title_from_datafeed($datafeed);
|
||||
|
||||
$form = '<span style="color:blue">Merci de vérifier les informations suivantes, corrigez si nécessaire.</span><br>
|
||||
$form = '<span style="color:blue">Merci de vérifier les informations suivantes, corrigez si nécessaire. Tous les champs doivent être renseignés.</span><br>
|
||||
<form method="POST"><input type="hidden" name="generic" value="1" />
|
||||
<input style="color:black" type="text" id="sitename" value="'.$sitename.'" '.( $datafeed === false?'':'disabled').'><label for="sitename">← titre du site (auto)</label><br>
|
||||
<input placeholder="Adresse du site" type="text" name="siteurl" id="siteurl" value="'.$siteurl.'"><label for="siteurl">← page d\'accueil (auto)</label><br>
|
||||
|
@ -678,7 +669,7 @@ if( !empty($_POST['opml_file']) && ALLOW_NEW_AUTOBLOGS && ALLOW_NEW_AUTOBLOGS_BY
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Projet Autoblog<?php if(strlen(HEAD_TITLE)>0) echo " | " . HEAD_TITLE; ?></title>
|
||||
<link rel="alternate" type="application/rss+xml" title="RSS" href="<?php echo serverUrl(true) . RSS_FILE;?>" />
|
||||
<link rel="alternate" type="application/rss+xml" title="RSS" href="<?php echo serverUrl(true) . '?rss_tmp';?>" />
|
||||
<link href="<?php echo RESOURCES_FOLDER; ?>autoblog.css" rel="stylesheet" type="text/css">
|
||||
<?php
|
||||
if(file_exists(RESOURCES_FOLDER .'user.css')){
|
||||
|
|
2
version
Normal file → Executable file
2
version
Normal file → Executable file
|
@ -1 +1 @@
|
|||
0.3.0-DEV Build 0
|
||||
0.3.0-DEV Build 1
|
67
xsaf3.php
67
xsaf3.php
|
@ -95,45 +95,48 @@ function xsafimport($xsafremote, $max_exec_time) {
|
|||
|
||||
/* autoblog */
|
||||
if( $result === true ) {
|
||||
$foldername = urlToFolderSlash($siteurl);
|
||||
$foldername = urlToFolder($sitename, $rssurl);
|
||||
|
||||
$errors = createAutoblog($sitetype, $sitename, $siteurl, $rssurl);
|
||||
foreach( $errors AS $value) {
|
||||
if( DEBUG )
|
||||
echo '<p>'. $value .'</p>';
|
||||
}
|
||||
if( empty($errors) && DEBUG ) {
|
||||
echo '<p>autoblog '. $sitename .' crée avec succès (DL DB : '. var_dump($get_remote_db) .' - DL media : '. var_dump($get_remote_media) .') : '. $foldername .'</p>';
|
||||
if( !ALLOW_REMOTE_DB_DL && !ALLOW_REMOTE_MEDIA_DL )
|
||||
echo '<iframe width="1" height="1" frameborder="0" src="'. $foldername .'/index.php"></iframe>';
|
||||
}
|
||||
try {
|
||||
createAutoblog($sitetype, $sitename, $siteurl, $rssurl);
|
||||
|
||||
/* ============================================================================================================================================================================== */
|
||||
/* récupération de la DB distante */
|
||||
if($get_remote_db == true && ALLOW_REMOTE_DB_DL ) {
|
||||
$remote_db = str_replace("?export", $foldername."/articles.db", $xsafremote);
|
||||
copy($remote_db, './'. $foldername .'/articles.db');
|
||||
}
|
||||
if( DEBUG ) {
|
||||
echo '<p>autoblog '. $sitename .' crée avec succès (DL DB : '. var_dump($get_remote_db) .' - DL media : '. var_dump($get_remote_media) .') : '. $foldername .'</p>';
|
||||
if( !ALLOW_REMOTE_DB_DL && !ALLOW_REMOTE_MEDIA_DL )
|
||||
echo '<iframe width="1" height="1" frameborder="0" src="'. urlToFolder( $siteurl, $rssurl ) .'/index.php"></iframe>';
|
||||
}
|
||||
|
||||
if($get_remote_media == true && ALLOW_REMOTE_MEDIA_DL ) {
|
||||
$remote_media=str_replace("?export", $foldername."/?media", $xsafremote);
|
||||
$json_media_import = file_get_contents($remote_media);
|
||||
if(!empty($json_media_import))
|
||||
{
|
||||
mkdir('./'.$foldername.'/media/');
|
||||
$json_media_import = json_decode($json_media_import, true);
|
||||
$media_path=$json_media_import['url'];
|
||||
if(!empty($json_media_import['files'])) {
|
||||
foreach ($json_media_import['files'] as $value) {
|
||||
copy($media_path.$value, './'.$foldername.'/media/'.$value);
|
||||
/* ============================================================================================================================================================================== */
|
||||
/* récupération de la DB distante */
|
||||
if($get_remote_db == true && ALLOW_REMOTE_DB_DL ) {
|
||||
$remote_db = str_replace("?export", $foldername."/articles.db", $xsafremote);
|
||||
copy($remote_db, './'. $foldername .'/articles.db');
|
||||
}
|
||||
|
||||
if($get_remote_media == true && ALLOW_REMOTE_MEDIA_DL ) {
|
||||
$remote_media=str_replace("?export", $foldername."/?media", $xsafremote);
|
||||
$json_media_import = file_get_contents($remote_media);
|
||||
if(!empty($json_media_import))
|
||||
{
|
||||
mkdir('./'.$foldername.'/media/');
|
||||
$json_media_import = json_decode($json_media_import, true);
|
||||
$media_path=$json_media_import['url'];
|
||||
if(!empty($json_media_import['files'])) {
|
||||
foreach ($json_media_import['files'] as $value) {
|
||||
copy($media_path.$value, './'.$foldername.'/media/'.$value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ============================================================================================================================================================================== */
|
||||
//TODO : tester si articles.db est une DB valide
|
||||
//$to_update[] = serverUrl().preg_replace("/(.*)\/(.*)$/i","$1/".$foldername , $_SERVER['SCRIPT_NAME']); // url of the new autoblog
|
||||
/* ============================================================================================================================================================================== */
|
||||
//TODO : tester si articles.db est une DB valide
|
||||
//$to_update[] = serverUrl().preg_replace("/(.*)\/(.*)$/i","$1/".$foldername , $_SERVER['SCRIPT_NAME']); // url of the new autoblog
|
||||
}
|
||||
catch (Exception $e) {
|
||||
if( DEBUG )
|
||||
echo $e->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
if( DEBUG )
|
||||
|
|
Loading…
Reference in a new issue