[spip-dev] Identification de l'auteur d'un item de flux RSS Flickr

Bonjour,

En SPIP 2.1.0 dev SVN [14400], et je ne crois pas que cela ai bougé depuis quelque temps, l'identification de l'auteur d'un item de flux syndiqué se fait dans la fonction analyser_backend() de ecrire/inc/syndic.php avec le bout de code suivant :

    // Auteur(s)
    if (preg_match_all(
    ',<(author|creator)>(.*)</\1>,Uims',
    $item, $regs, PREG_SET_ORDER)) {
      $auteurs = array();
      foreach ($regs as $reg) {
        $nom = $reg[2];
        if (preg_match(',<name>(.*)</name>,Uims', $nom, $reg))
          $nom = $reg[1];
        $auteurs[] = trim(textebrut(filtrer_entites($nom)));
      }
      $data['lesauteurs'] = join(', ', array_unique($auteurs));
    }
    else
      $data['lesauteurs'] = $les_auteurs_du_site;

Malheureusement, les auteurs d'un flux de favoris Flickr sont bien dans un éléments <author> mais qui a un attribut "flickr:profile" qui donne l'URL vers la page de l'auteur. Du coup, l'auteur n'est pas du tout reconnu.

Il faudrait que le contenu de la balise soit récupéré quels que soient les éventuels attributs.

Mais il y a encore un soucis avec les auteurs indiqués par Flickr, de la forme "nobody@flickr.com (username)" par exemple.

Mais ce n'est pas top, donc dans le cas de Flickr, qui est déjà géré de manière particulière pour les enclosures si je ne m'abuse, il faudrait au minimum récupérer "username", et au mieux savoir récupérer aussi son URL à mettre dans #LESAUTEURS.

C'est ce que fait le patch ci-joint :

patch authors Flickr.txt (1.29 KB)

Après réflexion, je me dis que traiter tous les cas particuliers directement là est peut-être un peu lourd, il faudrait peut-être prendre la démarche inverse, c'est à dire définir un format XML simplissime ne contenant que les éléments compris par SPIP, et s'appuyer sur le pipeline "pre_syndication" pour faire un plugin transformant les formats particuliers vers ce format "pivot". Chaque format particulier pourrait alors être traité séparément, l'URL du flux permettant d'identifier le format.

Qu'en dites-vous ?

Mais ce n'est pas top, donc dans le cas de Flickr, qui est déjà géré de
manière particulière pour les enclosures si je ne m'abuse, il faudrait au
minimum récupérer "username", et au mieux savoir récupérer aussi son URL à
mettre dans #LESAUTEURS.

Je ne suis pas vraiment pour l'ajout de url_auteur dans lesauteurs ;
ça me paraît trop spécifique (je ne connais pas d'autre cas).

C'est ce que fait le patch ci-joint :

OK cool je vais l'appliquer. D'accord aussi pour la réécriture que tu suggères.

-- Fil

Mais ce n'est pas top, donc dans le cas de Flickr, qui est déjà géré de
manière particulière pour les enclosures si je ne m'abuse, il faudrait au
minimum récupérer "username", et au mieux savoir récupérer aussi son URL à
mettre dans #LESAUTEURS.

Je ne suis pas vraiment pour l'ajout de url_auteur dans lesauteurs ;
ça me paraît trop spécifique (je ne connais pas d'autre cas).

Mais du coup, sur des squelettes génériques, #LESAUTEURS n'est pas très utile sur les flux Flickr.

C'est ce que fait le patch ci-joint :

OK cool je vais l'appliquer.

Super.

D'accord aussi pour la réécriture que tu suggères.

J'ai commencé un plugin "pivot_syndic" qui nettoie bien les flux de favoris de Flickr et JPG Mag, je vais le mettre sur la zone.

-Nicolas

Voilà :
http://zone.spip.org/trac/spip-zone/browser/plugins/pivot_syndic/

-Nicolas