Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- window.InterwikiEdit = {
- buffer: true,
- threads: 5,
- running: 0,
- queue: []
- };
- InterwikiEdit.onload = function() {
- if(wgCanonicalSpecialPageName == 'InterwikiEdit' && !mw.util.getParamValue('action')) {
- var gui = document.createElement('div');
- gui.innerHTML = '<h2>Multiple</h2><div>List each domain (eg. <code>es.wiki</code>), one on each line. This will link each specified wiki to every other specified wiki.</div><textarea id="interwiki-multiple-textarea" style="width:660px; height:300px;"></textarea><div><input id="interwiki-multiple-button" type="submit" value="Link wikis" onclick="InterwikiEdit.linkAll(document.getElementById(\'interwiki-multiple-textarea\').value.split(\'\\n\')); document.getElementById(\'interwiki-multiple-textarea\').value = \'\';"></div><pre id="interwiki-multiple-output" style="width:660px; height:200px; overflow-y:scroll;"></pre>';
- document.getElementById('mw-content-text').appendChild(gui);
- }
- }
- $(InterwikiEdit.onload);
- InterwikiEdit.linkAll = function(wikis) {
- for(var i = 0; i < wikis.length - 1; i++) {
- for(var j = i + 1; j < wikis.length; j++) {
- if(wikis[i] != wikis[j]) {
- if(!InterwikiEdit.buffer || InterwikiEdit.running < InterwikiEdit.threads) {
- InterwikiEdit.link(wikis[i], wikis[j], InterwikiEdit.linkAllCallback);
- InterwikiEdit.running++;
- }
- else {InterwikiEdit.queue.push([wikis[i], wikis[j]]);}
- }
- else {console.log(i + ' == ' + j);}
- }
- }
- }
- InterwikiEdit.link = function(wiki1, wiki2, callback) {
- if(!wiki1 || !wiki2) {return false;}
- var get = new XMLHttpRequest();
- var url = '/wiki/Special:InterwikiEdit?action=Link&wikia=' + wiki1 + '.wikia.com&ext_wikia=' + wiki2 + '.wikia.com&useskin=monobook';
- get.open('GET', url, true);
- get.responseType = 'document';
- get.onreadystatechange = function() {
- if(this.readyState == 4 && this.status == 200) {
- var inputs = this.response.getElementById('chooseaction').getElementsByTagName('input');
- var wikia_id = '';
- var ext_wikia_id = '';
- for(var i = 0; i < inputs.length; i++) {
- if(inputs[i].name == 'wikia_id') {wikia_id = inputs[i].value;}
- else if(inputs[i].name == 'ext_wikia_id') {ext_wikia_id = inputs[i].value;}
- if(wikia_id && ext_wikia_id) {break;}
- }
- var post = new XMLHttpRequest();
- post.open('POST', url, true);
- post.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
- post.onreadystatechange = function() {
- if(this.readyState == 4 && this.status == 200 && typeof callback == 'function') {callback.call(this, wiki1, wiki2);}
- }
- post.send('action=commit_link&wikia_id=' + wikia_id + '&ext_wikia_id=' + ext_wikia_id);
- }
- }
- get.send();
- return get;
- }
- InterwikiEdit.linkAllCallback = function(wiki1, wiki2) {
- var output = document.getElementById('interwiki-multiple-output');
- var scroll = false;
- if(output) {
- if(output.offsetHeight + output.scrollTop >= output.scrollHeight) {scroll = true;}
- output.innerHTML += wiki1 + ' >=< ' + wiki2 + '\n';
- }
- if(InterwikiEdit.queue.length > 0) {
- wikis = InterwikiEdit.queue.shift();
- InterwikiEdit.link(wikis[0], wikis[1], InterwikiEdit.linkAllCallback);
- }
- else {
- InterwikiEdit.running--;
- if(InterwikiEdit.running == 0 && output) {output.innerHTML += '---------------------------------------------\n';}
- }
- if(scroll) {output.scrollTop = output.scrollHeight;}
- }
Advertisement
Add Comment
Please, Sign In to add comment