Valider 42ffa062 rédigé par patV's avatar patV
Parcourir les fichiers

Suivi des révisions du CS par l'API de Git

parent 51d4f4cb
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+76 −75
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -15,16 +15,17 @@ if (!defined("_ECRIRE_INC_VERSION"))
@define('_URL_CS_GIT_EXT', _URL_CS_GIT . 'spip-contrib-extensions/');
@define('_URL_ZONE_EXTRACT', 'https://zone.spip.net/trac/spip-zone/export/');
@define('_CS_RSS_SOURCE', _URL_CS_GIT_EXT . 'couteau_suisse/commits/branch/master');
@define('_CS_GIT_COMMITS', _URL_CS_GIT . 'api/v1/repos/spip-contrib-extensions/couteau_suisse/commits');
// Doc de contrib.spip.net
@define('_URL_CONTRIB', 'https://contrib.spip.net/?article');
// Revisions du CS
// Dernieres revisions du CS
@define('_URL_CS_PLUGIN_XML', _URL_CS_GIT_EXT . 'couteau_suisse/raw/branch/master/plugin.xml');
@define('_URL_CS_PLUGIN_ZIP', _URL_CS_GIT_EXT . 'couteau_suisse/archive/master.zip');

// On met a jour le flux rss toutes les 4 heures
// Mise a jour du flux RSS toutes les 4 heures, sur les 15 derniers commits
define('_CS_RSS_UPDATE', 4 * 3600);
define('_CS_RSS_COUNT', 15);
// Fichier 
// Fichier cache
define('_CS_TMP_RSS', _DIR_TMP . 'rss_couteau_suisse.html');
// Traductions des modules
define('_CS_TRAD_ACCUEIL', 'https://trad.spip.net/');
@@ -34,7 +35,7 @@ define('_CS_TRAD_MODULE', _CS_TRAD_ACCUEIL . 'tradlang_module/');
//define('_MAJ_ECRAN_SECU', _URL_CS_GIT . 'spip/spip/raw/branch/master/config/ecran_securite.php');
define('_MAJ_ECRAN_SECU', _URL_CS_GIT . 'spip-contrib-outils/securite/raw/branch/master/ecran_securite.php');

//puces vertes et rouges pour les outils
// Puces vertes et rouges pour les outils
if(defined('_SPIP30300')) { // SPIP >= 3.3
    define('_CS_PUCE_VERTE', chemin_image('puce-publier-8.png'));
    define('_CS_PUCE_ROUGE', chemin_image('puce-refuser-8.png'));
+70 −63
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -24,26 +24,33 @@ function exec_cs_boite_rss_dist() {
	if(strlen($p)) { ajax_retour($p); return; }
	include_spip('inc/filtres');
	include_spip('action/editer_site');
	include_spip('inc/xml');
	include_spip('inc/xml'); // parse xml
	include_spip('inc/texte'); // pour couper() notamment SPIP 2.x
	include_spip('inc/texte_mini'); // pour couper() notamment
	include_spip('couteau_suisse_fonctions'); // pour cs_lien()
	include_spip('inc/distant');
	if( ($contenu = recuperer_page(_CS_RSS_SOURCE)) && preg_match('/<table.*<\/table>/si', $contenu, $match) 
	if( ($contenu = recuperer_page($url_source = _CS_GIT_COMMITS)) && ($contenu = json_decode($contenu)) ) {
        // API de Git
        $c = count($contenu); $p = '';
		for($i=0; $i<min($c, _CS_RSS_COUNT); $i++) {
            $message = couper(textebrut($contenu[$i]->commit->message), 110);
            $time = affdate_court(date('Y-m-d', strtotime($contenu[$i]->commit->author->date)));
			$p .=  '<li>&bull; ' . cs_lien($contenu[$i]->html_url, $time) . ' - ' . $message . '</li>';
		}
    } elseif( ($contenu = recuperer_page($url_source = _CS_RSS_SOURCE)) && preg_match('/<table.*<\/table>/si', $contenu, $match) 
		&& ($r = spip_xml_parse($match[0], true, true, 3)) && function_exists('spip_xml_match_nodes')
	    && ($c = spip_xml_match_nodes(',^tr,', $r, $r2)) && count($r2['tr'])
	  ) {
        // page html publique en cas de changement d'API ?
		$r3 = &$r2['tr'];
		$c = count($r3); $p = '';
		for($i=0; $i<min($c, _CS_RSS_COUNT); $i++) {
			list($auteur, $sha, $message, $time) = array_values($r3[$i]);
			$d = affdate_court(date('Y-m-d', strtotime(extraire_attribut($time[0], 'title'))));
			$t =  '&bull; ' . str_replace('href="/','href="' . _URL_CS_GIT, $sha[0]) . " <i>($d)</i><br/>" . couper(textebrut($message[0]), 80);
			$p .= "<li>$t</li>";
			$p .= '<li>&bull; ' . str_replace('href="/','href="' . _URL_CS_GIT, $sha[0]) . " <i>($d)</i><br/>" . couper(textebrut($message[0]), 80) . '</li>';
		}
	} else {
		// pour cs_lien()
		include_spip('couteau_suisse_fonctions');
		$p = '<span style="color: red;">' . _T('couteauprive:erreur:probleme', array('pb'=>cs_lien(_CS_RSS_SOURCE,_T('couteauprive:erreur:distant')))) . '</span>';
		$p = '<span style="color: red;">' . _T('couteauprive:erreur:probleme', array('pb'=>cs_lien($url_source, _T('couteauprive:erreur:distant')))) . '</span>';
	}
	$du = affdate_heure(date('Y-m-d H:i:s',time()));
	$p = '<ul>' . $p
@@ -53,7 +60,7 @@ function exec_cs_boite_rss_dist() {
		. generer_url_ecrire('admin_couteau_suisse', 'var_mode=calcul', true) . '" onclick="'
		. "javascipt:jQuery('div.cs_boite_rss').children().css('opacity', 0.5).parent().load('" . generer_url_ecrire('cs_boite_rss', 'force=oui', true) . '\');return false;">'
		. _T('couteauprive:rss_actualiser').'</a> | <a href="'
		. _CS_RSS_SOURCE . '">'
		. $url_source . '">'
		. _T('couteauprive:rss_source') . '</a></p>';
	if($c)
		ecrire_fichier(_CS_TMP_RSS, $p);