User:Interwicket
Owner/runner: User:Robert Ullmann
Source code: User:Interwicket/code
Status on all wikts: /FL status
Log of entries added where Interwicket does not have a bot flag: /FL log
Purpose
Bot to do interwikis from the en.wikt, with minimal overhead.
Processes
Interwicket runs ten different main processes, that (of course) share much of the code.
iwikt
The iwikt.py
program reads the daily XML dump, and then reads the "union index" a multi-way merge of the all-pages index on all of the wikts. It updates its local cache of the union index. For each entry in the XML that does not match the union index, it adds (removes) links from the home wikt, and adds and removes reciprocal links in the others, using the links known (which is all of them, as it is reading the indexes, unless there was an exception or some failure with one or more).
It sorts the iwikis in the home wikt entries, making sure they are ordered correctly and in the correct place. (It does this for any other entry it updates, but only as a side effect when changing links.)
This code can be run with other wikts (other than English) as its "home" wikt, updating everything on that wikt.
Because this requires a current XML dump of the home wikt, it is not useful at this writing (March 2009) as the WMF dump service is broken, and fixing it has been stated to be "low priority".
mbwa
The mbwa.py
program is the primary process run by Interwicket autonomously 24x7. It reads "recent changes" from all active wikts, and scans the index of each wikt every few days. For each title with one or more missing (or invalid) links, mbwa
updates all entries in all wikts with the complete current set.