Ejemplo de meneame I

Aunque solo sea por curiosidad e investigación vamos a ojear el código fuente del RSS de la famosa página meneame.net, pues presumo que pocos fallos han de tener, je je je, y seguramente aprendamos algo.

Empezamos por el principio y observamos que al igual que nosotros declara la versión 1.0 del Xml y una codificación UTF-8. Nosotros habíamos elegido la codificación iso-8859-1 por eso de poder escribir acentos directamente en el código Html de modo que por el momento vamos acertados.

<?xml version="1.0" encoding="UTF-8"?>

En la declaración de la versión RSS nos encontramos una sorpresa pues no solo se declara dicha versión sino que añade una serie de líneas que pasaremos a investigar:

<rss version="2.0"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:georss="http://www.georss.org/georss"
    xmlns:media="http://search.yahoo.com/mrss/"
    xmlns:meneame="http://meneame.net/faq-es.php"
>

La primera de las líneas que comienzan por xmlns parece una indicación de que se sigue el standar de atom, otro modo distinto al formato RSS, aunque ambos son muy similares. De hecho es posible que según ambos standares el código expuesto sea correcto. Esa línea no va sola, sino que hay que acompañarla con otra que se coloca entre las etiquetas channel y que os muestro aquí abajo:

<atom:link rel="hub" href="http://pubsubhubbub.appspot.com/"/>

y que como ves aparece en el código completo de meneame.net

A continuación se definen las características del canal o channel. El canal es como en la televisión, define la cadena (o canal) de modo que se caracteríza por un título, un enlace a la web principal, una imagen opcional que aparecería en el RSS, la descripción, fecha de publicación y lenguaje principalmente. El código en meneame.net es este:

<channel>
    <title>Menéame: publicadas</title>
    <atom:link href="http://www.meneame.net/rss2.php" rel="self" type="application/rss+xml" />
    <link>http://www.meneame.net</link>
    <image>
          <title>Menéame: Publicadas</title>           <link>http://www.dominio.net</link><url>http://m.mnmstatic.net/img/mnm/eli-rss.png</url>
    </image>
    <description>Descripcion de la web</description>
    <pubDate>Mon, 18 Apr 2011 10:25:02 +0000</pubDate>
    <generator>http://blog.meneame.net/</generator>
    <language>es</language>
    <atom:link rel="hub" href="http://pubsubhubbub.appspot.com/"/>

Quizás te sorprenda no ver la etiqueta de cierre del channel, , pero aparece casi al final de todo el código completo, pues lo que vendría a continuación serían las definiciones de cada item y luego el cierre del channel y del código Rss.

Pues bien, seguido del bloque anterior como digo se colocan tantos bloques como el de abajo como artículos, noticias o como quieras llamarlos (items) quieras que aparezcan en la lista de contenido sindicado. Cada item por tanto podría ser un mensaje de un foro, un artículo que publicas en tu web comentando algo, alguna noticia o simplemente una página que forma parte de una sección que trates.

Una vez completes el bloque de uno de esos items, puedes copiarlo y pegarlo a continuación del anterior para añadir otro item más, cambiando claro la información que corresponda.

Si nos fijamos de nuevo en el ejemplo que andamos destripando, podemos ver qué líneas introducen ellos. Las siete primeras que aparecen entre las etiquetas <item> e </item> no tengo ni idea de para qué sirven. Pero actualizaré estas notas en cuanto me entere. Me refiero a las que empiezan por <meneame:

<item>
    <meneame:link_id>1233471</meneame:link_id>
    <meneame:user>jm22381</meneame:user>
    <meneame:votes>83</meneame:votes>
    <meneame:negatives>1</meneame:negatives>
    <meneame:karma>487</meneame:karma>
    <meneame:comments>12</meneame:comments>
    <meneame:url>http://astroboy-espaciocosmico.blogspot.com/2011/04/gravedad-de-la-antimateria-podria.html</meneame:url>
    ................