3.0.4 не обновляет ленту http://rp5.ru/rss/4429/ru
точнее даже не загружает ее полностью первый раз. только одно сообщение из 4-х и все.
создание нового профиля не помогает.
Проблема повторяется на TB 2.0, 3.0 и на ночных сборках Shredder
XP sp2 и sp3, проверял на разных машинах.
Отсутствует
Я вручную сохранил фид в текстовый файл и пробовал его редактировать-подгружать.
Нашел в чем проблема.
1. в фиде <link> одинаковы у всех айтемов.
2. у айтемов есть только: <title> <link> <description>
3. итог - айтемы вообще различаются только по <title> и <description>. Как только я в <link> добавил случайные символы, чтоб они различались, подгрузился полный список.
Предполагаю, что ТБ вообще умеет индексировать только по <link> или по <guid>, если этого нет - то он считает дубликатом и не добавляет.
В связи с этим требуется консультация более опытных людей - стоит ли это считать багом и забивать в трекер?
Потому как опыт общения с мозилловцами уже есть, и ответ я уже предполагаю будет "Won't fix: подите нафиг, ваш рсс фиговый".
Вообще как бы занялся этим только потому, что думал что проблема та же, что и с моим фидом. Оказалось - нет.
Отредактировано Andy_Scull (01-11-2010 08:33:50)
Отсутствует
Отсутствует
Воскрешаю тред, поскольку возможно нашел в чем проблема.
Просмотрел исходники тандерберда, там тупо - внутренний id берется либо из link, либо из guid.
В моей проблемной рсс ленте есть пара айтемов, у которых есть только <title> и <description>. Они создают дубликаты после каждого обновления.
Решение - вписал в сорсы костыль, чтобы внутренний ID брался из <title>, если нет ни линка ни гуида. Сработало для моей проблемы, если у кого-нить будут проблемные фиды - пишите в личку, попробую на них. Возможно что та же проблема, а может другая...
п.с. поскольку все это в .js, то правится элементарно. Поскольку я его не знаю, то только смог для себя костыль сделать. По хорошему надо чтобы профессиональный ява-программер переписал весь этот дебильский рсс-парсер, уж проблемы с ним по моему с первой версии ТБ ещё тянутся, можно найти посты 2006-го года и раньше
Отредактировано Andy_Scull (10-02-2012 11:59:49)
Отсутствует
И как окончательный диагноз (поскольку вчера весь день экспериментировал и добился чего хотел...
В готовой сборке 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 их хэш.
Отсутствует
Кто-нить может подсказать, есть ли тут в яваскрипте функции, чтобы захешировать строку без лишних проблем? Хочу вместо простого суммирования строк класть в guid их хэш.
https://developer.mozilla.org/en/XPCOM_ … CryptoHash
в самом низу примеры есть
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует