Page MenuHomePhabricator

View all articles as they were at a specified point in time
Open, LowestPublicFeature

Description

Author: mindspillage

Description:
"Wikipedia Wayback Machine" -- option to view all articles at the revision they
were at at some specified point in time.

This was requested by Vernor Vinge at CFP2006. He's a big fan of WP and I told
him I'd make the request; if anyone happens to code this, be sure to drop him an
email. :-)


Version: unspecified
Severity: enhancement

Details

Reference
bz5877

Related Objects

StatusSubtypeAssignedTask
OpenFeatureNone
OpenFeatureNone
Resolved GWicke
Resolved GWicke
Resolved GWicke
Resolvedfgiunchedi
Resolvedfgiunchedi
Resolved Cmjohnson
Resolved Cmjohnson
ResolvedJoe
Resolvedfgiunchedi
Resolved GWicke
Resolved Jdouglas
Resolved GWicke
Resolved GWicke
ResolvedArlolra
Resolved GWicke
Resolved mobrovac
Resolved mobrovac
Resolved mobrovac
Resolved mobrovac
Duplicate Jdouglas
ResolvedAndrew
Resolved GWicke
Resolvedfgiunchedi
Resolvedfgiunchedi
Resolvedfgiunchedi
ResolvedEevans
Resolvedfgiunchedi
Resolved GWicke
Resolved GWicke
Resolvedfgiunchedi
Resolved mobrovac
Resolved GWicke
DeclinedNone

Event Timeline

bzimport raised the priority of this task from to Lowest.Nov 21 2014, 9:14 PM
bzimport set Reference to bz5877.
bzimport added a subscriber: Unknown Object (MLST).

Would this not be best done on the toolserver, since the data is already there?

Oh, and if he wants an email, make sure he pouts it where it can be found…

robchur wrote:

(In reply to comment #1)

Would this not be best done on the toolserver?

No. The request as I read it, and upon further discussion with Kat, is that the
user would like for any Wikipedia user to set a soft session-duration tag
corresponding to a time, and then browse the wiki as it was (to some extent)
using this soft tag.

This ought to be able to be implemented by a Javascript user script. It would
need to map the requested date to the nearest revision_id for each link on each
page loaded (it would need to do all the links to handle red-links properly),
then just alter the href (and possibly the link-color) to point to the old
version. I think the mapping code is available in the
view-changes-since-you-last-edited user script, and the other parts seem pretty
easy.

re #1: this is not a job for the toolserver, really - it's not intended to serve
content. Never mind the fact that currently, the toolserver does not even have
access to the article text, due to technical as well as policy issues.

re #3: setting the revision id is not enough, because if the page includes
templates, it latest version of the template will be used, not the "old" one.
Try getting last week's main page of the english wikipedia - it's pretty much
impossible. Images have the same problem, btw.

And yes, this would indeed be nice to have, and it should not be extremely hard
to do, imho.

It's impossible with the present database structure; the
information on renames, deletions etc isn't really there in
a clean way.

True, moves are tricky. Deletions shouldn't really matter - what's deleted
should not be shown in a "retro-version" either... or there would have to be
different levels of deletion. Link color could be a problem too, i guess.

I think just picking the right revision for template includes (and perhaps
images) would already be a nice start. I don't hink we can ever have a 100%
"time machine" feature - and I doubt we really want that with respect to deleted
vandalism, copyvios, etc.

Also, there would have to be some way of fixing {{CURRENTTIME}} and related pseudo-
templates so that they contained the desired result rather than the usual dynamic
result.

robchur wrote:

*** Bug 9490 has been marked as a duplicate of this bug. ***

First stab at this

I really was just looking for a way to do this for specific revisision, not all
of a wiki.

At any rate though, I've tested the above patch and it seems to basically work
thus far, though I haven't done exensive case testing.

It works by accepting a 5th parameter for parse() called timeframe.

attachment timeframe.patch ignored as obsolete

Minor fix

attachment timeframe.patch ignored as obsolete

Add LIMIT=1 where needed

attachment timeframe.patch ignored as obsolete

Fix typo

attachment timeframe.patch ignored as obsolete

Add lower bound

attachment timeframe.patch ignored as obsolete

Update

Removed lower bound, caused issues with creating images/templates after
referencing them in text.

attachment timeframe.patch ignored as obsolete

Experimental use of logging to track moves

attachment timeframe.patch ignored as obsolete

Experimental use of logging to track moves

attachment timeframe.patch ignored as obsolete

Check if image version was deleted

attachment timeframe.patch ignored as obsolete

Check if image version was deleted

Fix typo

attachment timeframe.patch ignored as obsolete

Fix some bugs

attachment timeframe.patch ignored as obsolete

Update/streamline

attachment timeframe.patch ignored as obsolete

Neaten this up some more

attachment timeframe.patch ignored as obsolete

Updated to svn

Previous patch conflicted by changes.

attachment timeframe.patch ignored as obsolete

Simplify

Avoid use of unindexed fields.

attachment timeframe.patch ignored as obsolete

As brion said, this is not possible.

However, individual revisions can be tagged and shown as they were at that time with some code changes. This will come with stable versions.

mapellegrini wrote:

Now that this has been sitting inactive for nearly 5 years, is there any chance of it being implemented?

mapellegrini wrote:

I just noticed that this is marked as resolved when it should not have been. This functionality still does not exist anywhere on the wiki itself or on the toolserver.

sumanah wrote:

adding "patch" and "need-review" keywords with regards to Aaron's patches

(In reply to comment #27)

adding "patch" and "need-review" keywords with regards to Aaron's patches

These would need a rewrite. You essentially need to have findTemplate and findFile hook handlers used when parsing. A getRevisionFromTimeframe and a getFileFromTimestamp would be needed. Tracking page moves is kind of difficult though as log_params isn't indexed for that...

Marked as obsolete, -patch -need-review

Nemo_bis subscribed.

It's debatable whether T36778 blocks or is blocked by this change: maybe the Memento extension is the only possible solution to this problem; or maybe a wide usage of Memento is easier/only possible after some changes in core (like T2851).

Aklapper changed the subtype of this task from "Task" to "Feature Request".Feb 4 2022, 11:02 AM