Extension:GoogleNewsSitemap

What can this extension do?
This is like DynamicPageList (Wikimedia), but instead of outputting a categoryintersection in a wikipage, it makes a special page which outputs such a category-intersection as either an rss feed, an atom feed, or in google news sitemap format.

For example, this can create an rss feed of the last five articles added to category:Published, ordered by the date they were added to the category, as well as a bunch of other things.

This extension was originally made for Wikinews. See 21919 for efforts related to get it to the standards required for Wikimedia deployment.

Usage
It uses the syntax of (stuff in [ ] is optional, stuff in means potential choices):

Multiple values for categories and notcategories options are separated with a pipe (| or encoded in urls as %7C).

For example if you wanted an rss feed of the last 7 articles added to Category:Foo and Category:Bar but not in Category:Baz, ordered by the date added to Category:Foo such that the one added most recently comes first, you would use the page http://my.wiki.example.com/w/index.php?title=Special:GoogleNewsSitemap?feed=rss&categories=foo|bar&notcategories=baz&stablepages=include&qualitypages=include

Just doing Special:GoogleNewsSitemap (or equivalently Special:NewsFeed ) uses the category Published, and the feed type of atom, no notcategories, count of 50, order descending, ordermethod categoryadd, redirects include, stable and quality pages set to only. (These are sucky defaults, you may need to override a lot of them).

See extension:DynamicPageList (Wikimedia) to see what the options do. While they are not exactly the same, they are very similar. The Main exceptions are that the namespace parameter in this extension can also take  as a parameter, and defaults to the main namespace if omitted (instead of all namespaces). The  parameter specifies the number of hours ago the article could have been added to the first category to be considered for inclusion. It can be disabled by setting it to -1 hours.

Configuration
The categories in use by the sitemap format is controlled by  which maps categories to sitemap keywords. it uses the format:
 * categoryname|keywordname
 * categorynameyouwanthidden|__MASK__

The following configuration variables are also taken into account (Shown with their defaults):

All of these configuration parameters are pretty much self-explanatory. $wgGNSMsmaxage determines how long to cache in squid. This determines how out of date the feed can be. Defaults to 30 minutes. The extension also caches the feed using memcache (or other caching backend) for 12 hours, but that cache is checked to see if there are any new articles before using. The squid cache is not checked as such, so you want the timeout to be set to a low value to avoid entries that are too outdated.