Почему мой RSS-канал дублирует некоторые записи? - PullRequest
3 голосов
/ 08 октября 2008

при чтении моего RSS-канала с помощью программы чтения Thunderbird некоторые записи дублируются. У Google reader нет такой же проблемы.

Вот неисправный канал http://plcoder.net/rss.php?rss=Blog

Есть проблема, но где?

С уважением, Седрик

обновление: я добавляю guid, но проблема остается. Другие каналы не дублируют мои, поэтому я переработаю этот модуль и заменю этот старый добрый код.

вывод: я полностью переделал код генератора rss, и все в порядке. Я думаю, что я использовал очень старую версию RDF.

Ответы [ 6 ]

7 голосов
/ 08 октября 2008

Попробуйте добавить тег <guid> к каждому элементу, добавив к нему постоянную ссылку. i.e.:

<item rdf:about="http://plcoder.net/?doc=2134&amp;amp;titre=mon-pc-se-la-pete">
  <link>http://plcoder.net/?doc=2134&amp;amp;titre=mon-pc-se-la-pete</link>
  <guid>http://plcoder.net/?doc=2134&amp;amp;titre=mon-pc-se-la-pete</guid>
  ...
</item>

Без GUID, если какой-либо контент в сообщении изменится, ваш агрегатор RSS может подумать, что это новое сообщение. С GUID, даже если содержимое этого элемента изменяется, ваш агрегатор RSS должен просто обновить сообщение, а не рассматривать его как новый элемент.

2 голосов
/ 16 апреля 2009

По крайней мере, с Thunderbird 2.0.0.21 проблема в том, что TBird, похоже, не уважает GUID-теги, но действительно уважает канал *1004* pubDate-tag. Таким образом, если pubDate более поздний, чем при последнем чтении, TBird прочитает все записей (кажется).

Я не знаю, что произойдет, если отсутствует тег pubDate канала ...

1 голос
/ 09 февраля 2018

Это объясняется в документации Thunderbird (в разделе «Часто задаваемые вопросы по устранению неполадок»):

В: Почему сообщения фидов иногда дублируются?

A: Подача сообщений с одинаковым содержимым, но разными уникальными идентификаторами. не обнаружены как дубликаты. См. этот пост для более подробной информации.

Связанный пост для справки:

  1. Фиды Atom (обязательные) имеют уникальный идентификатор; Каналы Rss (не обязательные) обычно имеют уникальные направляющие. Для RSS-каналов без гида, попытка создан для создания уникального идентификатора из обязательных частей элемента фида.
  2. Все загруженные сообщения фида имеют запись с этим идентификатором, которая хранится в feeditems.rdf и существует там до тех пор, пока они существуют в издателе файл с этим идентификатором. Если издатель удаляет сообщение с идентификатором из их файла через 24 часа кеш feeditems.rdf также очищается (при получении сообщений biff).
  3. Если издатель повторно использует идентификатор после его очистки, вы получите обман (если содержимое идентично). Это злоупотребление намерением за уникальными идентификаторами и ошибкой издателя.
  4. Если издатель повторно использует идентификатор до его очистки, а содержимое отличается, вы не увидите новый контент, так как он будет рассматриваться как дубликат Thunderbird в настоящее время не использует этот тег и его неправильное использование издателями может затруднить реализацию.
  5. Если вы просматриваете источник (Ctrl-U) двух явных дубликатов, вы заметите заголовок Message-Id. Если два кажущихся обманщика имеют разные Значения идентификатора сообщения, то они не являются обманщиками независимо от потенциала идентичный контент. Tb не различает дублированный контент.

Если вы хотите экстремальной отладки, измените префикс Feeds.logging.console отладить или отследить и перезапустить, чтобы увидеть, что происходит во время подачи обработка.

Если вы отмените подписку на ленту новостей, это очистит кэш feeditems.rdf. для этого канала. Если вы впоследствии перепишитесь, вы получите дубликаты все текущие элементы в файле издателя, которые также существуют в вашем фиде папка.

Уплотнение не влияет на обработку корма, оно просто удаляет помеченные для удаления элементов из файла. Если вы удалите папку / переместите ее в мусор, это отписалось. Начиная с Tb29, если вы перетащите папка с одного аккаунта фида на другой аккаунт фида, подписка сохраняется (но не feeditems). Для очень старых профилей / учетных записей фидов (до Tb17), это может быть хорошей идеей для создания новой учетной записи канала и перетащите туда папки (Tb29 и выше), так как свежая база данных feeds.rdf создано; Штраф возможен однократный обман.

1 голос
/ 08 октября 2008

У меня возникли проблемы с некоторыми из моих собственных каналов. Что случилось, я начинаю со списка записей, как это:

Item A
Item B
Item C

Клиент их скачивает и все нормально. Затем я добавляю новый элемент, поэтому лента выглядит так:

Item D
Item A
Item B

D отображается в считывателе.

Но затем я решаю, что не хочу этот элемент, поэтому список возвращается к:

Item A
Item B
Item C

Когда Thunderbird прочитает это, он будет считать C новым предметом. Я использую элемент GUID, поэтому я сомневаюсь, что это проблема. Я думаю, что это больше связано с парсером Thunderbird, который не учитывает более старые элементы.

Обходной путь - «запомнить», какие элементы вы уже опубликовали и с тех пор были вытеснены из списка новыми элементами. В основном вам нужно будет сохранить текущий список элементов в ленте, а когда вы удаляете из него элементы, сокращайте его до тех пор, пока не появятся новые элементы для его замены.

0 голосов
/ 08 октября 2008

В Thunderbird есть несколько ошибок с дублирующимися записями каналов, возможно, это только одна из них?

0 голосов
/ 08 октября 2008

У меня была такая же проблема ... Я переключился на канал Google, и теперь он исправлен, хотя никогда не знал точной причины

http://feedproxy.google.com/juanformoso

...