Extension talk:SimpleRSS.php

From Organic Design wiki
Revision as of 04:05, 14 October 2007 by Rob (talk | contribs) (existing extension)

What it does

We want a more solid solution for the wiki RSS reading and rendering than the current MW:Extension:RSS Reader, including the following main concerns:

  • Single script install with no dependencies
  • Syntax and parameters compatible with MW:Extension:RSS Reader
  • Aggregation by specifying a list of urls
  • More control over what fields are displayed and their layout (with an extra template parameter?)
For example so that an RSS-based replacement for the recentchanges could be made
  • Optional Ajax so page load isn't held up and can update on change without page reloads
  • Control over file caching time and ajax update time

Purpose

We want to have a dynamically changing list of user-customisable aggregated RSS sources avalailble on pages and in the sidebar. These sources can include recentchanges feeds from our wikia so we can have the old changes-in-the-logo style effect, but using standard feeds from any sources and without consuming server resource from centralised polling.

To check out before doing any dev

Development

Rob has had experience with developing RSS related code before so he'll handle the main functionality and structure of the extension. Nad will handle the XML/DOM and Ajax aspects.

RSS parsing

The current extension uses an external dependency, lastRSS.php to read the RSS with simple file-based cache/expiry system using MD5(url) for filename. It may be doing some things we need to replicate ourselves, but most of the code is concerned with regular expressions for handling the XML, and that aspect can be handled much more compactly by reading the RSS as a DOM object instead.

Ajax

The ajax should be able to poll for headers only and then when changed it should post a request to MediaWiki which includes the changed feed and the timestamp of the last update. MediaWiki should then use an AjaxDispatcher to respond with the new item[s] which the ajax can then prepend to the innerHTML of the target area.

See also