** /extensions/PageLookup ....... TestFile, touch_page.php, modifications to rewrite.py?
−
** /extensions/WikiService ....... wiki_service.php WikiService.php providing a test http library to talk to mediawiki and ensure that after actions the raw source for pages is correct
−
−
== Current Strategy ==
−
−
Revise links that should work rather than handling them on the fly. Revise the raw source to point to the canonical name.
−
−
== Database Population ==
−
−
* page_lookup pre-population takes 10 minutes on stratus
−
* pagelinks table population is 6x as many rows as page_lookup takes about 30x as long as the page_lookup population at least 5 hours on stratus, 10hrs later on stratus ... doesn't seem viable on live
−
−
== OnDemand Modifications ==
−
−
Scenario 1: View of invalidated page
−
* Hook is in the parser where it is parsing the links to regenerate the page
−
* Detects links, accumulates as it goes through in the PageLookup object ... at the end of parsing processes them all at once
−
* If no links need fixing, just displays the page
−
* else
−
** If we're viewing, creates the revision
−
** Does a 302 redirect and bales could enter an '''infinite loop''' if it can't repair one of the links (will be invalid and try to make a change)
−
Scenario 2: Editing, when someone submits
−
* Flags in the view routine in the PageLookup object ...
−
* Late in the editing process it needs to run the parser, right after it makes the revision, make an additional revision if it needs to ... just finished with the revision so carry on
−
−
== Redlinks to Blue ==
−
−
* When a page in the case space is created, all of the links in the case space should turn from red to blue ... we have code, but we don't have population yet (unweildy in the same way that the population of the pagelinks table is unweildy)
−
−
== Testing ==
−
−
* Because of redirect and exit it makes it difficult to test ... need selenium or in this case WikiService (to submit things to mediawiki) shells out to curl to make the requests (uses the action=raw type of request) doesn't test for a page looking weird in-between (these tests aren't all working yet)
−
* Make sure that rewriting with domains actually does the right thing