SebSauvage et Bohwaz.'); // Functions function NoProtocolSiteURL($url) { $protocols = array("http://", "https://"); $siteurlnoproto = str_replace($protocols, "", $url); // Remove the / at the end of string if ( $siteurlnoproto[strlen($siteurlnoproto) - 1] == '/' ) $siteurlnoproto = substr($siteurlnoproto, 0, -1); // Remove index.php/html at the end of string if( strpos($url, 'index.php') || strpos($url, 'index.html') ) { $siteurlnoproto = preg_replace('#(.*)/index\.(html|php)$#', '$1', $siteurlnoproto); } return $siteurlnoproto; } function DetectRedirect($url) { if(parse_url($url, PHP_URL_HOST)==FALSE) { //die('Not a URL'); throw new Exception('Not a URL: '. escape ($url) ); } $response = get_headers($url, 1); if(!empty($response['Location'])) { $response2 = get_headers($response['Location'], 1); if(!empty($response2['Location'])) { //die('too much redirection'); throw new Exception('too much redirection: '. escape ($url) ); } else { return $response['Location']; } } else { return $url; } } function urlToFolder($url) { return sha1(NoProtocolSiteURL($url)); } function urlToFolderSlash($url) { return sha1(NoProtocolSiteURL($url).'/'); } function folderExists($url) { return file_exists(AUTOBLOGS_FOLDER . urlToFolder($url)) || file_exists(AUTOBLOGS_FOLDER . urlToFolderSlash($url)); } function escape($str) { return htmlspecialchars($str, ENT_COMPAT, 'UTF-8', false); } function createAutoblog($type, $sitename, $siteurl, $rssurl, $error = array()) { if( $type == 'generic' || empty( $type )) { $var = updateType( $siteurl ); $type = $var['type']; if( !empty( $var['name']) ) { if( !stripos($siteurl, $var['name'] === false) ) $sitename = ucfirst($var['name']) . ' - ' . $sitename; } } if(folderExists($siteurl)) { $error[] = 'Erreur : l\'autoblog '. $sitename .' existe déjà.'; return $error; } $foldername = AUTOBLOGS_FOLDER . urlToFolderSlash($siteurl); if ( mkdir($foldername, 0755, false) ) { /** * RSS **/ try { require_once('class_rssfeed.php'); $rss = new AutoblogRSS(RSS_FILE); $rss->addNewAutoblog($sitename, $foldername, $siteurl, $rssurl); } catch (Exception $e) { ; } $fp = fopen($foldername .'/index.php', 'w+'); if( !fwrite($fp, "") ) $error[] = "Impossible d'écrire le fichier index.php"; fclose($fp); $fp = fopen($foldername .'/vvb.ini', 'w+'); if( !fwrite($fp, '[VroumVroumBlogConfig] SITE_TYPE="'. $type .'" SITE_TITLE="'. $sitename .'" SITE_DESCRIPTION="Site original : '. $sitename .'" SITE_URL="'. $siteurl .'" FEED_URL="'. $rssurl .'" ARTICLES_PER_PAGE="'. getArticlesPerPage( $type ) .'" UPDATE_INTERVAL="'. getInterval( $type ) .'" UPDATE_TIMEOUT="'. getTimeout( $type ) .'"') ) $error[] = "Impossible d'écrire le fichier vvb.ini"; fclose($fp); } else $error[] = "Impossible de créer le répertoire."; return $error; } function getArticlesPerPage( $type ) { switch( $type ) { case 'microblog': return 20; case 'shaarli': return 20; default: return 5; } } function getInterval( $type ) { switch( $type ) { case 'microblog': return 300; case 'shaarli': return 1800; default: return 3600; } } function getTimeout( $type ) { switch( $type ) { case 'microblog': return 30; case 'shaarli': return 30; default: return 30; } } function updateType($siteurl) { if( strpos($siteurl, 'twitter.com') !== FALSE ) { return array('type' => 'twitter', 'name' => 'twitter'); } elseif ( strpos( $siteurl, 'identi.ca') !== FALSE ) { return array('type' => 'identica', 'name' => 'identica'); } elseif( strpos( $siteurl, 'shaarli' ) !== FALSE ) { return array('type' => 'shaarli', 'name' => 'shaarli'); } else return array('type' => 'generic', 'name' => ''); } function debug($data) { echo '
';
	var_dump($data);
	echo '
'; } function __($str) { switch ($str) { case 'Search': return 'Recherche'; case 'Update': return 'Mise à jour'; case 'Updating database... Please wait.': return 'Mise à jour de la base de données, veuillez patienter...'; case '%d results for %s': return '%d résultats pour la recherche %s'; case 'Not Found': return 'Introuvable'; case 'Article not found.': return 'Cet article n\'a pas été trouvé.'; case 'Older': return 'Plus anciens'; case 'Newer': return 'Plus récents'; case 'ATOM Feed': return 'Flux ATOM'; case 'Update complete!': return 'Mise à jour terminée !'; case 'Click here to reload this webpage.': return 'Cliquez ici pour recharger cette page.'; case 'Source:': return 'Source :'; case '_date_format': return '%A %e %B %Y à %H:%M'; case 'configuration': case 'articles': return $str; case 'Media export': return 'Export fichiers media'; default: return $str; } } function displayXML_tmp() { header('Content-type: application/rss+xml; charset=utf-8'); echo ' '; echo ''.serverUrl(true).'Projet Autoblog'. ((strlen(HEAD_TITLE)>0) ? ' | '. HEAD_TITLE : '').''.serverUrl(true),"Projet Autoblog - RSS : Ajouts et changements de disponibilité.".''; if(file_exists(RESOURCES_FOLDER.'rss.json')) { $json = json_decode(file_get_contents(RESOURCES_FOLDER.'rss.json'), true); foreach ($json as $item) { echo ''; echo ''.$item[autoblog_title].''; echo ''.$item[status].$item[response_code].$item[autoblog_url].$item[autoblog_title].$item[autoblog_sourceurl].$item[autoblog_sourcefeed].''; echo ''.serverUrl(true).AUTOBLOGS_FOLDER.$item[autoblog_url].''; echo ''.serverUrl(true).AUTOBLOGS_FOLDER.$item[autoblog_url].''; echo 'admin@'.serverUrl(true).''; echo ''.date("r", $item[timestamp]).''; echo ''; } } echo ' '; } ?>