Magnus Manske wrote:
Brion Vibber wrote:
I'm tweaking, fixing, and reworking various bits of it (display formatting fixes, better code reuse, using revision IDs instead of unreliable timestamps in places, etc).
Will try to have it ready to try out tomorrowish.
*THANK YOU* (imagine sound of released breath :-)
BTW, I used a combination of revision IDs and timestamps, because you told me the revision IDs can get out of order through deleting/undeleting revisions, and I wanted them in correct order no matter what. If revision IDs suffice, great.
They can still be out of sync at times (for some old cases with delete/undelete this used to happen all the time, but not anymore due to changes; if history data is imported with Special:Import it may however still be).
However the main problem is that timestamps aren't guaranteed to be unique; you will find pages where two adjacent revisions have the same timestamp (due to some old bugs, or due to merging of history between pages that have been moved over each other for instance). There were bits of the code where timestamp was getting used as the index in an associative array, which would mean that ratings on both those revs would end up conflicting, possibly vanishing or attaching to the wrong rev.
Sort by timestamp, use id as keys, and things should... hopefully... work. :D
-- brion vibber (brion @ pobox.com)