Discussions in IRC made me start thinking about whether there are ways to improve the software used to monitor recent changes. I'm starting this page to keep track of information I come across and ideas I've had. Anyone is welcome to contribute to this page.
The problems that exist with the current system:
- The RecentChanges page does not automatically update; a full page refresh must be done just to find out if there's one new entry to the page
- RSS feeds can be used, but they're not optimal (long update intervals, for example). And RSS feeds do not allow edit patrol features to be used
- Monitoring recent changes requires pulling up alot of pages. Just doing a simple task like fixing a typo in a recent edit and marking it as patrolled can require going through about 5 pages. It would be alot easier if the process was streamlined somewhat to remove unnecessary steps
- Extra features on the RecentChanges page could be really useful. For example, a way to hide entries that you're not interested in. Or have better color-coding to make it easier to pick out entries that need to be checked.
Existing SoftwareEdit
- Patroller extension is a mediawiki extension designed for use patrolling recent edits. This extension automatically creates a new "patroller" permission (default sysop only, but permission could be added to any user). It then provides a more streamlined page for patrolling recent edits, in particular providing a way to undo an edit in one step with a customized edit summary (i.e., without the ugly "revert" message reserved for vandalism).
- Meatball wiki's RecentChanges page is using an ajax extension called AsynchronousAutorefresh. This allows their recent changes page to automatically update itself. It would be nice to be able to adapt that extension for UESP, but I haven't been able to find the code yet (and I'm not too fond of the details of the meatball page's appearance, so ideally there are changes that would be made).
- MediaWiki-Recent_Changes-IRCBot allows recent changes information to be posted on an IRC channel. I'm guessing this is the tool that Aristeo was experimenting with a couple weeks ago, which didn't really work too well.
- Overall, it seems that the main advantage of an IRC approach is the reduced demand on the server (the info in one place can be viewed by many editors, instead of each editor individually polling the server). But I'm not sure that's a determining factor here: I think any ajax-type approach will greatly reduce the demand on the server, at least for editors who frequently update the recent changes page (i.e., if I update RecentChanges once every 10 minutes, the server has to generate a complete page with 150 entries; an auto-update option would only have to spit out the new entries during those 10 minutes)
- The disadvantage of an IRC approach is the limited interface. Although I haven't done any scripting to really know the capabilities of IRC, it doesn't seem likely that there are many options. Previously posted data can not be modified. Each editor can not customize the displayed information. Although short-term implementing something via IRC could be useful, it seems like a dead-end in the long-term; I'd prefer to look into something with more long-term potential
I'm actually surprised that I couldn't find any other extensions that have been created to create automatically-updating wiki recent changes pages. It seems like a feature that other people would have looked into, but so far I haven't been able to find anything other than the meatball page. If anyone knows of any other options, feel free to add them!
Writing New SoftwareEdit
What I'm considering is creating a new version of the RecentChanges page that uses javascript and ajax to allow the page to be automatically updated. Initially it could perhaps be updated using the RSS feed, although eventually a customized content-generator will be needed. If the initial trials work and people think it's useful, there are a lot of options that could be added.
This page would not replace the existing RecentChanges page, but instead be an alternative. And given that it's likely to be in various stages of under-development for quite a while, I'd say it's probably something that would not be given a link on the sidebar or otherwise advertised... instead just something that frequent editors and edit patrollers are told about. So at least for now, it would not have to be designed to be universally robust (e.g., perhaps just focus on getting it to work in firefox and IE7 for starters).
First StepEdit
Just as proof-of-concept, I could start by creating a page that basically looks exactly like the RecentChanges page, but it automatically adds new entries in at the top of the page, perhaps changing the text on the Firefox tab to signal that there's been a change. The extension would have to be installed by Daveh.
It should be straightforward to start from the existing PHP code that generates the standard RecentChanges page... all that needs to be added there is a request to add in a page of js commands. The js then just needs to be set up to poll for changes; the biggest question to address is whether to use the RSS feed or put together something customized.
One shortcoming of this first page is that it will not update existing entries. In other words, the "to-be-patrolled" flag will not be cleared from any entries that get patrolled. I'm pretty sure that to add that capability will require a customized routine, and there are some decisions to make about how to get the information. Nothing insurmountable by any means, but something to save until after the first proof-of-concept is done
Features:
- Flexible update interval (15 sec, 30 sec, 45 sec, 1 min, 2 min, 5 min, none)
- Change the title of the page when there's a new edit
Viewing DiffsEdit
I think a really useful feature would be to make it possible to view the diffs for an edit right on the RecentChanges page. For example, there could be a + icon next to the one-line summary of the diff; if you click the + icon then the entry expands to show the basic diff information (as long as it's not too long). Not the whole page view that also appears on the diff page; just the text that appears in the white box on the top of the page. The "endorse"/"revert" box from the Patrol page could even be shown right there.
The only question is whether to make it so that the diff information is only downloaded at the time that you click the + icon (meaning there would be a delay before the info pops up; but during that delay you could continue to browse the rest of the page, click other + icons, etc). Or make it so that some amount of diff information is automatically downloaded, allowing instant response.
I think it would be useful to make it so that for edit patrollers, the diff information on any unpatrolled edits is automatically downloaded, under the assumption that any edit patrollers are in all likelihood going to want to view that information eventually. But force any other edit information to be downloaded upon request (which wouldn't be any slower than the current system of pulling up the page to view the info).
Hiding EntriesEdit
Make it possible to check entries that you've reviewed and/or are not interested in and make them disappear from the RecentChanges page. Then the RecentChanges page could really be used to keep track of only the pages that you're still interested in looking at or doing followup on.
This info would be lost every time you close the RecentChanges window. Making it so the info is saved from one browser session to another would be a huge headache. For me, I tend to keep one browser session open for days at a time (I standby/hibernate instead of doing full shut-downs when I turn off the computer), so for me there's not much motivation to make it possible to save info from one session to the next ;)
Flagging EntriesEdit
Make it possible to flag entries that you'd like to come back to later and look at in more detail. Somewhat complementary to Hiding Entries. And it would have the same limitation that it's a lot easier to do if the information only has to be saved during one browser session.
Filtering EntriesEdit
If I'm going to do the rest of this, adding more options for how to view the list of entries becomes pretty easy to do. So you could toggle between show patrol edits and hide patrol edits without having to do a page refresh, for example. Or you could make the page not show edits you've made. Displaying/hiding lines is easy to do, it's just a question of how many toggle boxes and input boxes people want cluttering the top of the page.
Other FeaturesEdit
Any other features that any one would like to see added to a souped-up RecentChanges page? For now this is basically just brainstorming to decide whether pursuing this whole idea is something that seems worthwhile.