[imc-france-tech] syndication rss
vaaag_paris
imc-france-tech at lists.indymedia.org
Mon, 19 May 2003 00:08:03 +0200
This is a multi-part message in MIME format.
--------------050802030800050006090506
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit
exemple, pour obtenir sur le site de paris une syndication rss du site
de lille, sachant que le fichier rss de lille est backend.php3
j'appelle
http://paris.indymedia.org/syndic.php3?backend=http://lille.indymedia.org/backend.php3&cache=lille
mais ça marcherait également avec samizdat
http://paris.indymedia.org/syndic.php3?backend=http://samizdat.net/backend.php3&cache=samizdat
ou n'importe quel site qui aurait un fichier backend rss compatible
(mêmes balises xml)
je joins
- le fichier syndic.php3 (permet de récupérer des fichiers backend)
- nos fichiers backend.php2 et backendg8.php3 : le premier sélectionne
les articles validés seulement, le second sélectionne en plus ceux qui
ont le mot-clé "G8"
- et aussi pour la syndication "non rss", le fichier testsyndic.html
--------------050802030800050006090506
Content-Type: text/html;
name="testsyndic.html"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="testsyndic.html"
<script src="http://nice.indymedia.org/distrib.php3"></script>
<hr>
<script src="http://lille.indymedia.org/distrib.php3"></script>
<hr>
<script src="http://nantes.indymedia.org/distrib.php3"></script>
<hr>
<script src="http://paris.indymedia.org/distrib.php3"></script>
<hr>
<script src="http://vaaag.org/distrib.php3"></script>
<hr>
<script src="http://www.oulala.net/Portail/distrib.php3"></script>
--------------050802030800050006090506
Content-Type: text/html;
name="backend.html"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="backend.html"
<? echo '<?xml version="1.0" encoding="iso-8859-1"?>'; ?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
"http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
<channel>
<title>#NOM_SITE_SPIP</title>
<link>#URL_SITE_SPIP</link>
<description></description>
<language>fr-fr</language>
<image>
<title>#NOM_SITE_SPIP</title>
<url>#URL_SITE_SPIP/IMG/ruboff0.gif</url>
<link>#URL_SITE_SPIP</link>
<description></description>
</image>
<BOUCLE1(articles){id_rubrique=3}{statut!="refuse"}{par date}{inverse}{0,10}>
<item>
<title>#TITRE</title>
<link>#URL_SITE_SPIP/#URL_ARTICLE</link>
<description>#DESCRIPTIF</description>
<author><BOUCLE23(auteurs){id_article}{", "}>#NOM</BOUCLE23></author>
</item>
</BOUCLE1>
</channel>
</rss>
--------------050802030800050006090506
Content-Type: text/plain;
name="backend.php3"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="backend.php3"
<?php
$fond = "backend";
$delais = 3600;
// cette ligne empeche l'affichage des boutons d'administration
$flag_preserver = true;
@header("Content-type: text/plain");
include ("inc-public.php3");
?>
--------------050802030800050006090506
Content-Type: text/html;
name="backendg8.html"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="backendg8.html"
<? echo '<?xml version="1.0" encoding="iso-8859-1"?>'; ?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
"http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
<channel>
<title>#NOM_SITE_SPIP</title>
<link>#URL_SITE_SPIP</link>
<description></description>
<language>fr-fr</language>
<image>
<title>#NOM_SITE_SPIP</title>
<url>#URL_SITE_SPIP/IMG/ruboff0.gif</url>
<link>#URL_SITE_SPIP</link>
<description></description>
</image>
<BOUCLE1(articles){id_rubrique=3}{statut!="refuse"}{id_mot=7}{par date}{inverse}{0,10}>
<item>
<title>#TITRE</title>
<link>#URL_SITE_SPIP/#URL_ARTICLE</link>
<description>#DESCRIPTIF</description>
<author><BOUCLE23(auteurs){id_article}{", "}>#NOM</BOUCLE23></author>
</item>
</BOUCLE1>
</channel>
</rss>
--------------050802030800050006090506
Content-Type: text/plain;
name="backendg8.php3"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="backendg8.php3"
<?php
$fond = "backendg8";
$delais = 3600;
// cette ligne empeche l'affichage des boutons d'administration
$flag_preserver = true;
@header("Content-type: text/plain");
include ("inc-public.php3");
?>
--------------050802030800050006090506
Content-Type: text/plain;
name="syndic.php3"
Content-Transfer-Encoding: 8bit
Content-Disposition: inline;
filename="syndic.php3"
<?
/*
// syndic_samizdat_fat.php3
//
// Version: 1.2
//
// Ce script permet d'afficher, pour les X derniers articles
// publies sur samizdat.net (http://infos.samizdat.net) avec le titre
// le resume et l'auteur.
//
// UTILISATION
//
// Pour inclusion en PHP appeler ce fichier dans votre page
// par la ligne de code suivante :
//
// <?
// include("syndic_samizdat_fat.php3");
// ?>
//
// Pour inclusion en SSI appeler ce fichier dans votre page
// par la ligne de code suivante :
//
// <!--#include virtual="samizdat_syndic_fat.php3" -->
//
// Copyright (c) 2002 samizdat.net
// Script base sur le code de Kalle Kiviaho (kivi@chl.chalmers.se)
// "Newsbackend interfaces for PHP" version 2.0.4 (2000-09-24)
// Homepage: http://swamp.chl.chalmers.se/backends/
//
// Ce script est du code libre qui peut etre librement utilise,
// modifie et adaptate suivant les termes de la GNU General Public
// License version 2 tel qu'elle est publiee par la Free Software
// Foundation.
//
// Vous devez recevoir un exemplaire de la GNU General Public License
// avec ce script, ou ecrire a la Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
// pour en recevoir copie.
//
// Sources disponibles sur : http://matrix.samizdat.net/sources/scripts
//
*/
// Personnalisation : modifier les parametres ci dessous
$link_prefix = "<li>";
$link_postfix = "<BR>\n";
// Choisir un emplacement et un nom pour le fichier de cache.
// Le repertoire doit etre en 777 (rwxrwxrwx). Ici le repertoire
// est nommŽ "tmp"
$cache_file = "filsactu/$cache.cache";
// Fixer le delais de rafraichissement (ici 1 heure)
$cache_time = 3600;
// Nombre de titre a recuperer
$max_items = 10;
$target = "_blank";
//$backend = "http://infos.samizdat.net/backend.php3";
// Fin de la personnalisation
$items = 0;
$time = split(" ", microtime());
srand((double)microtime()*1000000);
$cache_time_rnd = 300 - rand(0, 600);
if ( (!(file_exists($cache_file))) || ((filectime($cache_file) + $cache_time - $time[1]) + $cache_time_rnd < 0) || (!(filesize($cache_file))) ) {
$fpread = fopen($backend, 'r');
if(!$fpread) {
echo "$errstr ($errno)<br>\n";
exit;
} else {
$fpwrite = fopen($cache_file, 'w');
if(!$fpwrite) {
// echo "$errstr ($errno)<br>\n";
// exit;
} else {
while(! feof($fpread) ) {
$buffer = ltrim(Chop(fgets($fpread, 256)));
if (($buffer == "<item>") && ($items < $max_items)) {
$title = ltrim(Chop(fgets($fpread, 256)));
$url = ltrim(Chop(fgets($fpread, 256)));
$description = ltrim(Chop(fgets($fpread, 1000)));
$author = ltrim(Chop(fgets($fpread, 256)));
$title = ereg_replace( "<title>", "", $title );
$title = ereg_replace( "</title>", "", $title );
$url = ereg_replace( "<link>", "", $url );
$url = ereg_replace( "</link>", "", $url );
//$description = ereg_replace( "<description>", "", $description );
//$description = ereg_replace( "</description>", "", $description );
$author = ereg_replace( "<author>", "", $author );
$author = ereg_replace( "</author>", "", $author );
fputs($fpwrite, "$link_prefix<A HREF=\"$url\" TARGET=\"$target\">$title</A>$link_postfix");
//fputs($fpwrite, "$description$link_postfix");
//fputs($fpwrite, "Par $author$link_postfix");
$items++;
}
}
}
fclose($fpread);
}
fclose($fpwrite);
}
if (file_exists($cache_file)) {
include($cache_file);
}
?>
--------------050802030800050006090506--