brief-rss / brief

RSS reader extension for Firefox
Other
213 stars 44 forks source link

Blank feed item added with certain feeds #184

Open kotarou3 opened 8 years ago

kotarou3 commented 8 years ago

I tested this under a clean profile with only brief installed (from the addons page on firefox 44), with the following feeds:

http://mangastream.com/rss

http://www.tofugu.com/feed/ (After setting everything as read, then refreshing the feed)

Curiously, after each refresh, both the items get marked as "updated" with their original time of "addition" to the feed list

tanriol commented 8 years ago

Thank you very much for these feeds! For me the first loads part of entries with undefined entity in

<item>
    <title>D.Gray-man 221</title>
    <link>http://mangastream.com/read/dgrayman/221/3191/1</link>
    <pubDate>Mon, 25 Jan 2016 1:35:20 -0800</pubDate>
    <description>Searching for A.W - The Clown&rsquo;s Joke</description>
    <guid isPermaLink="true">http://mangastream.com/r/dgrayman/221/3191/1</guid>
</item>

while the second one does not parse into items at all(!).

MichaelEischer commented 8 years ago

Right now these feeds are working. Does anyone of you have an old copy?

kotarou3 commented 8 years ago

I haven't encountered this problem for a while now, and unfortunately don't have a copy of the old feed

kotarou3 commented 8 years ago

I just encountered this again, but I haven't tried it yet on a clean install. This time I saved the feed: http://pastebin.com/C6yzcAkA

MichaelEischer commented 8 years ago

The feed contains the html entity &rsquo; which is invalid in xml and thus causes the problem. That is technically the feed is broken. ;-) I've recently encountered a similar problem with an unescaped '&'.

However, fixing all feeds on the internet probably won't work. The only real solution would be to tell the feed parser to ignore these problems. As Brief is currently using the RSS feed processor built into Firefox, I'm not sure whether that's possible. The feed processor interface just takes a string and parses it. If the feed contains an invalid html entity, the processing will fail midway and return a partially parsed feed. Brief then displays everything it got, including the partially parsed feed entry which happens to be empty.

It would be possible to show an error for invalid feeds instead of partially parsing the feeds. Not sure whether that would be an improvement.