Ticket #95 (accepted enhancement)

Opened 5 years ago

Last modified 7 weeks ago

RSS action: Use new 3rdparty RSS parser

Reported by: dartar Owned by: DarTar
Priority: normal Milestone: blue-sky
Component: 3rdparty Version: 1.1.6.1
Severity: normal Keywords: syndication
Cc:

Description (last modified by DarTar) (diff)

Due to the several limitations of OnyxRSS, it has been suggested that we replace it with a better RSS parser, like Magpie RSS:  http://magpierss.sourceforge.net/

Status

User-contributed code to be tested

Refs

 http://wikkawiki.org/NewRSSAction  http://wikkawiki.org/JwRssTest

Related issues migrated from WikkaBugs

RSS feed action hangs or crashes browser if feed does not exist

(reported by velkr0 on #wikka, analysis and writeup by me -- JavaWoman)

Problem: When the rss action is included in a page with a feed URL that happens not to exist (or not exist any more), the page "hangs"; once in this state, editing the page also isn't possible: the hang continues until the browser times out or is closed.

The obvious cause is that neither the RSS action nor the underlying onyx-rss class checks for existence of the resource the feed URL refers to. The problem is already hard to detect when you are first including a feed in a page and maybe make a typo in the feed URL. But if your Wikka provides a page with one or more feeds, and a feed suddenly disappears (or is down momentarily) the result will be very annoying for your visitors.

Solution: Either the onyx-rss class or the rss action should check for the availability of the feed (for instance with a HEAD request) before actually trying to retrieve it. Since the class provides caching, the best option would be to handle it in the class (by subclassing the necessary method(s)). If a version of the feed still exists in the cache that version could be displayed (probably this happens automatically anyway), otherwise an error message should be generated instead of the feed output. --JavaWoman

Another problem with Onyx-RSS was just reported by |Sam| on #wikka: in spite of cacheing it seems quite slow, taking something like 2.5 seconds for rendering after retrieving a feed (compared to a normal page rendering time of 0.06 seconds). We should look at the efficiency (or not) of this class - maybe it's time to move to another one that's being actively maintained. --JavaWoman

Change History

Changed 4 years ago by DarTar

  • owner changed from unassigned to DarTar
  • status changed from new to assigned
  • milestone changed from 1.1.7 to 1.1.6.3

Changed 4 years ago by DarTar

  • type changed from defect to enhancement

Nils recently pointed me to another class:  SimplePie which seems to be more solid than MagPie. We should give this a try and decide whether it's worth bundling it with Wikka. It's considerably heavier (314kb) than our current parser but seems to be actively developed and has been adopted by popular cms/blog/wiki engines such as WordPress, MediaWiki, Textpattern etc.

Thoughts?

Changed 4 years ago by DarTar

On a side note, I'd be happier to spend 300Kb of our package size for a solid RSS parser than for a Java freemind browser!

Changed 4 years ago by DarTar

  • description modified (diff)

Changed 4 years ago by DotMG

After removing the demo/ folder and repacking, SimplePie is not that heavy! A number of png files make the downloaded package size reach that 300kb but the core of the software is relatively tiny.

Changed 4 years ago by DarTar

132Kb indeed, not unreasonable. I just gave it a quick test and it seems to work fine, we should check the dependencies though.

Changed 18 months ago by DarTar

  • milestone changed from 1.2 to 1.3

Retargeting to 1.3. Code for this ticket may have already been committed to trunk, from which 1.3 will be branched. Consider backporting urgent issues to 1.2.X

Changed 7 months ago by BrianKoontz

  • milestone changed from 1.3 to blue-sky

Changed 7 weeks ago by DarTar

Can we consider a potential replacement of the (now dead and unmaintained) OnyxRSS with SimplePie soon after the 1.3 release?

Changed 7 weeks ago by GeorgePetsagourakis

Since I am for the isolation of the basic wiki functionality and getting the core as simple as it can get, I would like to see the ability to read syndication feeds should be made as a complete plugin and be developed as such.

Changed 7 weeks ago by DarTar

George, I would agree in principle but feeds for page revisions/ new pages etc. are usually considered as core wiki functionality. One can easily strip all feeds from an installation and still have a functional wiki, but I don't know if I would as far as dropping all core methods and wiki components that deal with feeds.

Changed 7 weeks ago by DarTar

oh apologies, I thought you were referring to feeds, non the rss action (I got mixed up). I tend to agree in this case.

Changed 7 weeks ago by GeorgePetsagourakis

No problem at all DarTar. Parsing feeds is a functionality outside the wiki juristiction, while emitting feeds is a must for any dynamic application. Nevertheless the two are separate functionalities.

Note: See TracTickets for help on using tickets.