Pourquoi mon flux RSS duplique-t-il certaines entrées?
Question
lors de la lecture de mon flux RSS avec Thunderbird, certaines entrées sont dupliquées. Google Reader n'a pas le même problème.
Voici le fil défectueux http://plcoder.net/rss.php?rss=Blog
Il y a un problème, mais où?
Cordialement, C & # 233; dric
update: j'ajoute guid mais le problème persiste. Les autres flux ne dupliquent pas comme le mien, je vais donc retravailler ce module et remplacer ce bon vieux code.
conclusion: je retravaille complètement le code du générateur de flux RSS et tout va bien. Je pense utiliser une très ancienne version de RDF.
La solution
Essayez d’ajouter une balise <guid>
à chaque élément en lui donnant un lien permanent. c'est-à-dire:
<item rdf:about="http://plcoder.net/?doc=2134&amp;titre=mon-pc-se-la-pete">
<link>http://plcoder.net/?doc=2134&amp;titre=mon-pc-se-la-pete</link>
<guid>http://plcoder.net/?doc=2134&amp;titre=mon-pc-se-la-pete</guid>
...
</item>
Sans un GUID, si l'un des éléments de la publication change, votre agrégateur RSS pourrait penser qu'il s'agit d'une nouvelle publication. Avec le GUID, même si le contenu de cet élément change, votre agrégateur RSS devrait mettre à jour simplement la publication, au lieu de la traiter comme un nouvel élément.
Autres conseils
Au moins avec Thunderbird 2.0.0.21, le problème est que TBird ne semble pas respecter les balises GUID, mais il respecte le balise pubDate du canal. Ainsi, si pubDate est plus récent que lors de la dernière lecture, TBird lira toutes (il semble que).
Je ne sais pas ce qui arriverait si pubDate-tag de la chaîne est manquant ...
J'ai rencontré ce problème avec certains de mes propres flux. Ce qui s'est passé, c'est que je commence avec une liste d'entrées comme celle-ci:
Item A
Item B
Item C
Le client les télécharge et tout va bien. Ensuite, j'ajoute un nouvel élément. Le flux se lit comme suit:
Item D
Item A
Item B
D apparaît dans le lecteur.
Mais ensuite, je décide que je ne veux pas cet élément. La liste revient donc à:
<*>Lorsque Thunderbird lit ceci, il comptera C comme nouvel élément. J'utilise un élément GUID. Je doute donc que ce soit le problème. Je pense que cela a plus à voir avec l'analyseur de Thunderbird ne prenant pas en compte les éléments plus anciens.
La solution de contournement lointaine consiste à & "rappeler &"; les éléments que vous avez déjà publiés et qui ont depuis été retirés de la liste par de nouveaux éléments. Vous aurez essentiellement besoin de conserver une liste d'éléments actuelle dans le flux et, lorsque vous en supprimerez, de la couper jusqu'à ce que de nouveaux éléments le remplacent.
Ceci est expliqué dans la documentation Thunderbird (sous " FAQ de dépannage "):
Q: Pourquoi les messages de fil sont-ils parfois dupliqués?
A: Les messages de fil avec le même contenu mais avec des identifiants uniques différents non détecté comme doublons. Voir ce message pour plus de détails.
Le poste lié pour référence:
- Les flux Atom (obligatoires) ont un identifiant unique; Les flux RSS (non obligatoires) ont généralement un guide unique. Pour les flux Rss sans un guide, une tentative est créé pour créer un identifiant unique à partir de parties obligatoires de l'élément de fil.
- Tous les messages de fil téléchargés ont un enregistrement avec cet identifiant stocké dans feeditems.rdf et y existent tant qu'ils existent dans l'éditeur. fichier, avec cet identifiant. Si l'éditeur supprime un message avec l'identifiant de leur fichier, le cache feeditems.rdf est également purgé après 24 heures (sur obtenir des messages biff).
- Si un éditeur réutilise un identifiant après son purge, vous obtiendrez une dupe (si le contenu est identique). Ceci est un abus de l'intention derrière des identifiants uniques et l'erreur de l'éditeur.
- Si un éditeur réutilise un identifiant avant son purge et que le contenu est différent, vous ne verrez pas le nouveau contenu, car il sera traité comme tel. un doublon. Thunderbird n'utilise pas la balise actuellement et son utilisation abusive par les éditeurs peut rendre sa mise en œuvre difficile.
- Si vous affichez la source (Ctrl-U) de deux dupes apparentes, vous noterez l'en-tête Message-Id. Si deux dupes apparentes ont différentes Message-Id valeurs, alors ils ne sont pas dupes indépendamment du potentiel contenu identique. Tb ne distingue pas le contenu en double.
Si vous souhaitez un débogage extrême, changez la préférence Feeds.logging.console. pour déboguer ou tracer et redémarrer, pour voir ce qui se passe pendant le flux traitement.
Si vous désabonnez une URL de flux, le cache feeditems.rdf sera effacé. pour ce flux. Si vous vous réabonnez ultérieurement, vous obtiendrez des dupes de tous les éléments actuels du fichier de l'éditeur qui existent également dans votre flux dossier.
Le compactage n’a aucun effet sur le traitement des flux, il supprime simplement les éléments marqués. pour supprimer des éléments du fichier. Si vous supprimez un dossier / déplacez-le vers poubelle, il est désabonné. À partir de Tb29, si vous glissez / déposez un dossier d'un compte de flux vers un autre compte de flux, l'abonnement est conservée (mais pas feeditems). Pour les très vieux profils / comptes de flux (pré Tb17), il peut être judicieux de créer un nouveau compte d’alimentation et faites glisser les dossiers là-bas (Tb29 et plus), comme une nouvelle base de données feeds.rdf est créé; la pénalité est une possibilité de duper une fois.
J'ai eu le même problème ... Je suis passé au flux de Google et le problème est maintenant résolu. Je ne connaissais pas encore la cause exacte
Thunderbird a quelques bugs liés à la duplication d’entrées de flux, c’est peut-être juste l’un d’eux qui apparaît?