function createAutoblog($type, $sitename, $siteurl, $rssurl) { 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, $rssurl)) { throw new Exception('Erreur : l\'autoblog ' . $sitename . ' existe déjà.'); } $foldername = urlToFolder($siteurl, $rssurl); if (mkdir($foldername, 0755, false)) { $fp = fopen($foldername . '/index.php', 'w+'); if (!fwrite($fp, "<?php require_once '../autoblog.php'; ?>")) { throw new Exception('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 : <a href=\'' . $siteurl . '\'>' . $sitename . '</a>" SITE_URL="' . $siteurl . '" FEED_URL="' . $rssurl . '" ARTICLES_PER_PAGE="' . getArticlesPerPage($type) . '" UPDATE_INTERVAL="' . getInterval($type) . '" UPDATE_TIMEOUT="' . getTimeout($type) . '"')) { throw new Exception('Impossible d\'écrire le fichier vvb.ini'); } fclose($fp); } else { throw new Exception('Impossible de créer le répertoire.'); } updateXML('new_autoblog_added', 'new', $foldername, $sitename, $siteurl, $rssurl); unlink(AUTOBLOGS_CACHE_FILENAME); }
} /* create an output array */ if ($method == 1) { /* standard deviation subroutine */ if ($std_kills) { if (!$dryrun) { $new_output = updateXML($output, $rra); } } else { echo ($html ? "<tr><td colspan='20' class='spikekill_note'>" : "") . "NOTE: NO Standard Deviation Spikes found in '{$rrdfile}'" . ($html ? "</td></tr>\n" : "\n"); } } else { /* variance subroutine */ if ($var_kills) { if (!$dryrun) { $new_output = updateXML($output, $rra); } } else { echo ($html ? "<tr><td colspan='20' class='spikekill_note'>" : "") . "NOTE: NO Variance Spikes found in '{$rrdfile}'" . ($html ? "</td></tr>\n" : "\n"); } } /* finally update the file XML file and Reprocess the RRDfile */ if (!$dryrun) { if ($total_kills) { if (writeXMLFile($new_output, $xmlfile)) { if (backupRRDFile($rrdfile)) { createRRDFileFromXML($xmlfile, $rrdfile); } else { echo ($html ? "<tr><td colspan='20' class='spikekill_note'>" : "") . "FATAL: Unable to backup '{$rrdfile}'" . ($html ? "</td></tr>\n" : "\n"); } } else {
/** * SVG **/ function check($folder) { $randomtime = rand(86400, 259200); /* intervalle de mise à jour: de 1 à 3 jours (pour éviter que le statut de tous les autoblogs soit rafraichi en bloc et bouffe le CPU) */ $expire = time() - $randomtime; /* SVG minimalistes */ $svg_ok = RESOURCES_FOLDER . 'icon-ok.svg'; $svg_mv = RESOURCES_FOLDER . 'icon-mv.svg'; $svg_err = RESOURCES_FOLDER . 'icon-err.svg'; $errorlog = './' . $folder . '/error.log'; $oldvalue = null; if (file_exists($errorlog)) { $oldvalue = file_get_contents($errorlog); } if (file_exists($errorlog) && filemtime($errorlog) < $expire) { unlink($errorlog); } /* errorlog périmé ? Suppression. */ if (file_exists($errorlog)) { if (filesize($errorlog) == "0") { return $svg_ok; } else { if (filesize($errorlog) == "1") { return $svg_mv; } else { return $svg_err; } } } else { $ini = parse_ini_file("./" . $folder . "/vvb.ini") or die; $headers = get_headers($ini['FEED_URL']); if (!empty($headers)) { $code = explode(" ", $headers[0]); } else { $code = array(); } /* le flux est indisponible (typiquement: erreur DNS ou possible censure) - à vérifier */ if (empty($headers) || $headers === FALSE || !empty($code) && ($code[1] == '500' || $code[1] == '404')) { if ($oldvalue !== null && $oldvalue != '..') { updateXML('unavailable', 'nxdomain', $folder, $ini['SITE_TITLE'], $ini['SITE_URL'], $ini['FEED_URL']); } file_put_contents($errorlog, '..'); return $svg_err; } /* code retour 200: flux disponible */ if ($code[1] == "200") { if ($oldvalue !== null && $oldvalue != '') { updateXML('available', '200', $folder, $ini['SITE_TITLE'], $ini['SITE_URL'], $ini['FEED_URL']); } file_put_contents($errorlog, ''); return $svg_ok; } else { if ($oldvalue !== null && $oldvalue != '.') { updateXML('moved', '3xx', $folder, $ini['SITE_TITLE'], $ini['SITE_URL'], $ini['FEED_URL']); } file_put_contents($errorlog, '.'); return $svg_mv; } } }