German_1984 > 16-06-2010 15:19:06 |
3.0.4 не обновляет ленту http://rp5.ru/rss/4429/ru точнее даже не загружает ее полностью первый раз. только одно сообщение из 4-х и все. создание нового профиля не помогает. Проблема повторяется на TB 2.0, 3.0 и на ночных сборках Shredder XP sp2 и sp3, проверял на разных машинах. |
Andy_Scull > 01-11-2010 08:32:00 |
Я вручную сохранил фид в текстовый файл и пробовал его редактировать-подгружать. Нашел в чем проблема. 1. в фиде <link> одинаковы у всех айтемов. 2. у айтемов есть только: <title> <link> <description> 3. итог - айтемы вообще различаются только по <title> и <description>. Как только я в <link> добавил случайные символы, чтоб они различались, подгрузился полный список. Предполагаю, что ТБ вообще умеет индексировать только по <link> или по <guid>, если этого нет - то он считает дубликатом и не добавляет. В связи с этим требуется консультация более опытных людей - стоит ли это считать багом и забивать в трекер? Потому как опыт общения с мозилловцами уже есть, и ответ я уже предполагаю будет "Won't fix: подите нафиг, ваш рсс фиговый". Вообще как бы занялся этим только потому, что думал что проблема та же, что и с моим фидом. Оказалось - нет. |
German_1984 > 01-11-2010 13:30:46 |
Согласно официальной спецификации RSS 2.0 (перевод) <link> вообще не является обязательным элементом. Уникальным обязан быть только <guid>, если он есть, а иначе, похоже, нужно проверять на полное совпадение всего item'а Так что, ИМХО, это все-таки баг. |
Andy_Scull > 10-02-2012 09:07:11 |
German_1984 пишетСогласно официальной спецификации RSS 2.0 (перевод) <link> вообще не является обязательным элементом. Уникальным обязан быть только <guid>, если он есть, а иначе, похоже, нужно проверять на полное совпадение всего item'а Так что, ИМХО, это все-таки баг.
Воскрешаю тред, поскольку возможно нашел в чем проблема. Просмотрел исходники тандерберда, там тупо - внутренний id берется либо из link, либо из guid. В моей проблемной рсс ленте есть пара айтемов, у которых есть только <title> и <description>. Они создают дубликаты после каждого обновления. Решение - вписал в сорсы костыль, чтобы внутренний ID брался из <title>, если нет ни линка ни гуида. Сработало для моей проблемы, если у кого-нить будут проблемные фиды - пишите в личку, попробую на них. Возможно что та же проблема, а может другая... п.с. поскольку все это в .js, то правится элементарно. Поскольку я его не знаю, то только смог для себя костыль сделать. По хорошему надо чтобы профессиональный ява-программер переписал весь этот дебильский рсс-парсер, уж проблемы с ним по моему с первой версии ТБ ещё тянутся, можно найти посты 2006-го года и раньше |
Andy_Scull > 24-07-2012 09:00:11 |
И как окончательный диагноз (поскольку вчера весь день экспериментировал и добился чего хотел... В готовой сборке Thunderbird присутствует omni.ja. В нем вам нужен файл \chrome\newsblog\content\messenger-newsblog\feed-parser.js Если ваша версия фара поддерживает архивы, можно редактировать прямо внутри. Листаем до функции parseAsRSS2. И корячим как считаем нужным... Мои правки (как работает для моих фидов без сбоев) - 1. переношу item.description= и item.title= перед проверкой guidnode (if (guidnode). 2. Там где кончается этот if (guidnode) дописываю, чтобы id брался из тегов title и description, конечный результат: item.id = guid; item.isStoredWithId = true; } else { guid = item.title + item.description item.id = guid item.isStoredWithId = true; } Вроде работает. В ленте http://rp5.ru/rss/4429/ru не совсем приятно работает. Не обновляет существующие элементы (и метит их как непрочитанные), а добавляет новые. Это происходит каждый раз когда создатели ленты обновляют (и меняют) описания - прогноз. Кто-нить может подсказать, есть ли тут в яваскрипте функции, чтобы захешировать строку без лишних проблем? Хочу вместо простого суммирования строк класть в guid их хэш. |
okkamas_knife > 24-07-2012 09:17:00 |
Andy_Scull пишетКто-нить может подсказать, есть ли тут в яваскрипте функции, чтобы захешировать строку без лишних проблем? Хочу вместо простого суммирования строк класть в guid их хэш.
https://developer.mozilla.org/en/XPCOM_ … CryptoHash в самом низу примеры есть |