Järjestelmäviesti:Gadget-HotCat.js
Jedipediasta, vapaasta Tähtien sota-tietosanakirjasta tänään, 4. toukokuuta 2024
Siirry navigaatioonSiirry hakuunHuomautus: Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.
- Firefox ja Safari: Napsauta Shift-näppäin pohjassa Päivitä, tai paina Ctrl-F5 tai Ctrl-R (⌘-R Macilla)
- Google Chrome: Paina Ctrl-Shift-R (⌘-Shift-R Macilla)
- Internet Explorer: Napsauta Ctrl-näppäin pohjassa Päivitä tai paina Ctrl-F5
- Opera: Valikko → Asetukset (Opera → Asetukset Macilla) ja sitten Tietosuoja ja turvallisuus → Tyhjennä selaustiedot → Välimuistissa olevat kuvat ja tiedostot.
// DEVELOPMENT VERSION, USE AT YOUR OWN RISK
/*--------------------------------------------------------*\
|| --- HotCat --- ||
|| A script for updating interlanguage links on foreign ||
|| wikis with one simple edit. Based on a script by C-3PO: ||
|| https://www.jedipedia.net/wiki/Jedipedia:HotCat and its ||
|| French version: [[:fr:MediaWiki:Gadget-HotCat.js]] by ||
|| [[User:BlondeLegendaire]]. Modified for Wookieepedia by ||
|| [[User:KockaAdmiralac]] and [[User:01miki10]]. ||
|| ------------------------------------------------------- ||
|| Please do not copy this script to your wiki for various ||
|| reasons. Instead of that, import it. ||
\*--------------------------------------------------------*/
var hotcat = {};
hotcat.settings = {};
hotcat.dataTest = '';
hotcat.settings.category_blacklist = [];
hotcat.settings.qs_templates = [];
hotcat.settings.defaultsort = "DEFAULTSORT"; //translated name for DEFAULTSORT
hotcat.settings.biggest_wikis=['en','de','ru','es','pl','fr','nl','ja','it','pt','ka','fi','cs','tr','hu','uk','ko','el','sr','da','sv','no','zh','bg','hr','ro','la','sl','id']; //Biggest foreign wikis, sorted by number of articles
//List of wikis in other languages - code, language and accepted interwiki links
hotcat.settings.wikis=[
{id:'bg', name:'Bulgarian', domain:'starwars.fandom.com', path:'/bg/', interlang:true, installed_iws:['ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'ca', name:'Catalan', domain:'starwars.fandom.com', path:'/ca/', interlang:true, installed_iws:['bg','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'cs', name:'Czech', domain:'starwars.fandom.com', path:'/cs/', interlang:true, installed_iws:['bg','ca','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'da', name:'Danish', domain:'starwars.fandom.com', path:'/da/', interlang:true, installed_iws:['bg','ca','cs','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'de', name:'German', domain:'www.jedipedia.net', path:'/w/', interlang:false,installed_iws:['bg','ca','cs','da','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'el', name:'Greek', domain:'starwars.fandom.com', path:'/el/', interlang:true, installed_iws:['bg','ca','cs','da','de','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'en', name:'English', domain:'starwars.fandom.com', path:'/', interlang:true, installed_iws:['bg','cs','da','de','el','es','fi','fr','hr','hu','id','it','ja','ka','ko','la','nl','no','pl','pt','ro','ru','sl','sr','sv','tr','uk','zh']}, //List of languages accepted by Wookieepedia
{id:'eo', name:'Esperanto', domain:'starwars.fandom.com', path:'/eo/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'es', name:'Spanish', domain:'starwars.fandom.com', path:'/es/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'fa', name:'Persian', domain:'starwars.fandom.com', path:'/fa/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'fi', name:'Finnish', domain:'www.jedipedia.fi', path:'/w/', interlang:false, installed_iws:['bg','ca','cs','da','de','el','en','es','fa','fr','fy','hr','hu','id','it','ja','ko','la','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','tr','uk','zh']},
{id:'fr', name:'French', domain:'starwars.fandom.com', path:'/fr/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'fy', name:'West Frisian', domain:'starwars.fandom.com', path:'/fy/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'ga', name:'Irish', domain:'starwars.fandom.com', path:'/ga/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'gl', name:'Galician', domain:'starwars.fandom.com', path:'/gl/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'hr', name:'Croatian', domain:'starwars.fandom.com', path:'/hr/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'hu', name:'Hungarian', domain:'starwars.fandom.com', path:'/hu/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'id', name:'Indonesian', domain:'starwars.fandom.com', path:'/id/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'is', name:'Icelandic', domain:'starwars.fandom.com', path:'/is/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'it', name:'Italian', domain:'starwars.fandom.com', path:'/it/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'ja', name:'Japanese', domain:'starwars.fandom.com', path:'/ja/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'ka', name:'Georgian', domain:'starwars.fandom.com', path:'/ka/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'ko', name:'Korean', domain:'starwars.fandom.com', path:'/ko/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'la', name:'Latin', domain:'starwars.fandom.com', path:'/la/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'mn', name:'Mongolian', domain:'starwars.fandom.com', path:'/mn/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'nl', name:'Dutch', domain:'starwars.fandom.com', path:'/nl/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'no', name:'Norwegian', domain:'starwars.fandom.com', path:'/no/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'pl', name:'Polish', domain:'www.ossus.pl', path:'/', interlang:false, installed_iws:['cs','de','en','es','fi','fr','hu','it','ja','ka','ko','nl','pt','ru','tr','uk']},
{id:'pt', name:'Portuguese', domain:'starwars.fandom.com', path:'/pt/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','ro','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'ro', name:'Romanian', domain:'starwars.fandom.com', path:'/ro/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ru','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'ru', name:'Russian', domain:'starwars.fandom.com', path:'/ru/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','sk','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'sk', name:'Slovakian', domain:'starwars.fandom.com', path:'/sk/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sl','sr','sv','th','tr','uk','vi','zh']},
{id:'sl', name:'Slovenian', domain:'starwars.fandom.com', path:'/sl/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sr','sv','th','tr','uk','vi','zh']},
{id:'sr', name:'Serbian', domain:'starwars.fandom.com', path:'/sr/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sv','th','tr','uk','vi','zh']},
{id:'sv', name:'Swedish', domain:'starwars.fandom.com', path:'/sv/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','th','tr','uk','vi','zh']},
{id:'th', name:'Thai', domain:'starwars.fandom.com', path:'/th/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','tr','uk','vi','zh']},
{id:'tr', name:'Turkish', domain:'starwars.fandom.com', path:'/tr/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','uk','vi','zh']},
{id:'uk', name:'Ukrainian', domain:'starwars.fandom.com', path:'/uk/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','vi','zh']},
{id:'vi', name:'Vietnamese', domain:'starwars.fandom.com', path:'/vi/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','zh']},
{id:'zh', name:'Chinese', domain:'starwars.fandom.com', path:'/zh/', interlang:true, installed_iws:['bg','ca','cs','da','de','el','en','eo','es','fa','fi','fr','fy','ga','gl','hr','hu','id','is','it','ja','ka','ko','la','mn','nl','no','pl','pt','ro','ru','sk','sl','sr','sv','th','tr','uk','vi',]}
];
hotcat.settings.interwiki_codes = {};
for ( var iloop = 0; iloop < hotcat.settings.wikis.length; iloop++ ) {
hotcat.settings.interwiki_codes[ hotcat.settings.wikis[iloop].id ] = iloop;
}
hotcat.settings.interwiki_codes_pl = {'cs': 1, 'de': 2, 'en': 3, 'es': 4, 'fr': 5, 'ko': 6, 'it': 7, 'ka': 8, 'hu': 9, 'nl': 10, 'ja': 11, 'pt': 12, 'ru': 13, 'fi': 13, 'tr': 14, 'uk': 15 };
hotcat.getWikiById = function( tmpId ) {
return hotcat.settings.wikis[ hotcat.settings.interwiki_codes[tmpId] ];
};
hotcat.settings.is_sysop = 'false';
hotcat.settings.api_url = '/w/api.php';
hotcat.settings.linkcolor = '#0645AD'; //Blue link color
hotcat.initrequest = null;
//Initialize variables
hotcat.curpage = mw.config.get( 'wgPageName' ); //Page name with namespace and underscores
hotcat.exzstatus = false; //Is Wookieepedia article featured
hotcat.lwastatus = false; //Is Wookieepedia article good
hotcat.castatus = false; //Is Wookieepedia article comprehensive
hotcat.wookattr = false; //Wookieepedia attribution parameter in es and pt
hotcat.defaultsort = '';
hotcat.categories = {};
hotcat.categories.array = [];
hotcat.categories.recently_removed = [];
hotcat.categories.suggestions = {};
hotcat.interwikis = {};
hotcat.interwikis.array = [];
hotcat.interwikis.loadstatus = 0;
hotcat.submit_counter = 0;
hotcat.ui = {};
hotcat.makeempty = function( elementid ) {
var ele = document.getElementById( elementid );
if ( !ele ) return;
while ( ele.firstChild ) ele.removeChild( ele.firstChild );
};
// Add the link for HotCat in the category list
// when the page has loaded
hotcat.addlink = function () {
var hctmp = {};
// If MediaWiki can't be found
if ( !mw || !mw.config ) return;
// Check if HotCat can be activated: return if
// only administrators may edit the page and
// user is not such
hctmp.usergrps = mw.config.get( 'wgUserGroups' );
if ( hctmp.usergrps && hctmp.usergrps.length ) {
hotcat.settings.is_sysop = false;
for ( var i = 0; i < hctmp.usergrps.length; i++ ) {
if ( hctmp.usergrps[i] == 'sysop' ) { hotcat.settings.is_sysop = true; break; }
}
if ( hotcat.settings.is_sysop === false ) {
hctmp.restrictedit = mw.config.get( 'wgRestrictionEdit' );
if ( hctmp.restrictedit && hctmp.restrictedit.length ) {
for ( var j = 0; j < hctmp.restrictedit.length; j++ ) { if ( hctmp.restrictedit[j] == 'sysop' ) return; }
}
}
}
// if editing, previewing etc.
hctmp.action = mw.config.get( 'wgAction' );
if ( hctmp.action !== 'view' || mw.config.get( 'wgCanonicalNamespace' ) == 'Special' ) return;
// if comparing revisions
hctmp.tableobj = document.getElementsByTagName( 'table' );
for ( var i = 0; i < hctmp.tableobj.length; i++ ) { if ( hctmp.tableobj[i].className.indexOf( 'diff' ) != -1 ) return; }
// if watching an old revision
if ( document.URL.indexOf( 'oldid=' ) != -1 ) return;
// HotCat is only allowed in namespaces Article, Wookieepedia, File, Help and Category
hctmp.namespace = mw.config.get( 'wgNamespaceNumber' );
if ( hctmp.namespace !== 0 && hctmp.namespace !== 4 && hctmp.namespace !== 6 && hctmp.namespace !== 12 && hctmp.namespace !== 14 ) return;
// if the page doesn't exist
if ( mw.config.get( 'wgArticleId' ) === 0 ) return;
hctmp.initlink = document.createElement( 'div' );
hctmp.initlink.id = 'hotcat_initlink';
hctmp.initlink.addEventListener( 'click', hotcat.startinit );
hctmp.initlink.appendChild( document.createTextNode( 'HotCat' ) );
document.getElementById( 'catlinks' ).appendChild( hctmp.initlink );
};
// Si le lien init a été cliqué: Lancer une demande pour les catégories et les liens InterWiki
hotcat.startinit = function() {
//hotcat.initrequest
$.ajax({
url: mw.util.wikiScript( 'api' ),
data: {
action: 'parse',
prop: 'wikitext',
page: hotcat.curpage,
format: 'json'
},
dataType: 'json',
success: function( d ) {
if ( d.error ) {
data = 'error' + d.error.code;
} else {
if ( d.parse.wikitext !== undefined ) {
data = hotcat.extractInterWikiData( d.parse.wikitext['*'], hotcat.curpage, mw.config.get( 'wgContentLanguage' ) ).replace( /,/gm, '\n' );
//console.log('data: ' + data);
hotcat.initrequest = data;
}
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert( 'Status: ' + textStatus );
alert( 'Error: ' + errorThrown );
}
} ).done( hotcat.init );
};
hotcat.init = function() {
var hctmp = {};
hctmp.e = {}; //Elemente
document.getElementById( 'catlinks' ).removeChild( document.getElementById( 'hotcat_initlink' ) );
hctmp.response_lines = hotcat.initrequest.replace( /\r/g, '' ).split( '\n' );
//---- AJAX-AUSWERTUNG ---- //
for ( var i = 0; i < hctmp.response_lines.length; i++ ) {
//substring () au lieu de split () dans le cas où une ligne contient plus d'un = caractères
hctmp.response1 = hctmp.response_lines[i].substring( 0, hctmp.response_lines[i].indexOf( '=' ) );
hctmp.response2 = hctmp.response_lines[i].substring( hctmp.response_lines[i].indexOf( '=' ) + 1 );
if ( hctmp.response1 == 'defaultsort' ) {
hotcat.defaultsort = hctmp.response2;
} else if ( hctmp.response1 == 'categories' ) {
hotcat.categories.array = hctmp.response2.split( '[' );
} else if ( hctmp.response1 == 'isFA' ) {
hotcat.exzstatus = true;
} else if ( hctmp.response1 == 'isGA' ) {
hotcat.lwastatus = true;
} else if ( hctmp.response1 == 'isCA' ) {
hotcat.castatus = true;
} else if ( hctmp.response1 == 'sin' || hctmp.response1 == 'icp' ) {
hotcat.wookattr = true; // Wook attribution param in es and pt
} else if ( hctmp.response1 === '' ) {
} else if ( hotcat.settings.interwiki_codes[hctmp.response1] ) {//Sil sagit dun code langue
hotcat.interwikis.array.push( { id:hctmp.response1, title:hctmp.response2, isFA:'false', canedit:false, type:'any', newlinks:[] } );
}
}
//---- INTERFACE ---- //
hctmp.e.main = document.createElement( 'div' );
hctmp.e.main.id = 'hotcat';
hctmp.e.main.className = "hotcat";
hctmp.e.headline = document.createElement( 'h2' );
hctmp.e.headline.style.paddingTop = '0';
hctmp.e.onoff = document.createElement( 'span' );
hctmp.e.onoff.className = 'mw-hotcat';
hctmp.e.helplink = document.createElement( 'a' );
hctmp.e.helplink.href = 'https://starwars.fandom.com/wiki/Wookieepedia_Help:HotCat';
hctmp.e.helplink.target = '_blank';
hctmp.e.helplink.appendChild( document.createTextNode( 'Ohje' ) );
hctmp.e.closelink = document.createElement("a");
hctmp.e.closelink.addEventListener('click', hotcat.close);
hctmp.e.closelink.appendChild( document.createTextNode( 'Sulje' ) );
hctmp.e.onoff.appendChild( hctmp.e.helplink );
hctmp.e.onoff.appendChild( document.createTextNode( ' | ' ) );
hctmp.e.onoff.appendChild( hctmp.e.closelink );
hctmp.e.headimage = document.createElement( 'img' );
hctmp.e.headimage.src = 'https://vignette.wikia.nocookie.net/fr.starwars/images/e/ee/HOTCAT_Logo.png/revision/latest?cb=20181110120640';
hctmp.e.headimage.alt = 'HotCat';
hctmp.e.headimage.title = 'HotCat';
hctmp.e.headline.appendChild( hctmp.e.onoff );
hctmp.e.headline.appendChild( hctmp.e.headimage );
//------------- Interwiki-Links -----------------
hctmp.e.interblock = document.createElement( 'div' );
hctmp.e.interblock.id = 'hc_interwikiblock';
//--- Create an URL for Google search ---
var hctmp_interwiki_search_query = 'https://www.google.com/search?q=';
//Some words that shouldn't be searched with Google as they are specific for one language
var hctmp_googlebadwords = [/^auf$/,/^[Dd]as$/,/^[Dd]en$/,/^[Dd]er$/,/^[Dd]es$/,/^[Dd]ie$/,/^[Ee]in/,/^für$/,/^groß/,/^im$/,/^in$/,/^nach$/,/^um$/,/^und$/,/^von$/,/^[Dd]roid/,/^Familie$/,/^Imperial/,/^Klasse$/,/^Scharmützel$/,/^Schlacht$/,/^[Ss]ystem$/,/^VSY$/,/^NSY$/,/^Battle$/,/^[Ss]tar$/,/^Wars?$/,/^Way$/,/^First$/,/^Second$/,/^Third$/,/^a$/,/^and$/,/^of$/,/^from$/,/^by$/,/^[Tt]he/,/^BBY$/,/^ABY$/];
var hctmp_googlewoerter = mw.config.get( 'wgTitle' ).replace( / (-|–)/g, '' ).replace( /(\-|\: ?)/g, ' ' ).replace( /^(.+ )?(Mission|Scharmützel|Schlacht)( (von|nach|um))? /, '').replace( / ?\(.+\)$/, '' ).split( ' ' );
for ( var i = 0; i < hotcat.interwikis.array.length; i++ ) { if ( hotcat.interwikis.array[i].id == mw.config.get( 'wgContentLanguage' ) && hotcat.interwikis.array[i].title != mw.config.get( 'wgTitle' ) ) {
hctmp_googlewoerter = hctmp_googlewoerter.concat( hotcat.interwikis.array[i].title.replace( /\-/, ' ' ).replace( / ?\(.+\)$/, '' ).split( ' ' ) );
break;
} }
var hctmp_google1 = [];
var hctmp_google2 = [];
// Remove duplicate entries
for ( var i = 0; i < hctmp_googlewoerter.length; i++ ) {
if ( typeof( hctmp_google1[hctmp_googlewoerter[i]] ) == 'undefined' ) {
hctmp_google1[hctmp_googlewoerter[i]] = true;
hctmp_google2[hctmp_google2.length] = hctmp_googlewoerter[i];
}
}
hctmp_googlewoerter = hctmp_google2.slice(0);
// Remove bad words
for ( var i = 0; i < hctmp_googlewoerter.length; i++ ) {
for (var j = 0; j < hctmp_googlebadwords.length; j++ ) {
if ( hctmp_googlewoerter[i].match( hctmp_googlebadwords[j] ) ) {
hctmp_googlewoerter.splice( i, 1 );
if ( i > 0) i--;
break;
}
}
}
hctmp_interwiki_search_query += hctmp_googlewoerter.join( '+OR+' ) + '+';
hctmp_interwiki_search_query += '!!+site:starwars.fandom.com+OR+site:ossus.pl+OR+site:jedipedia.fi+OR+site:jedipedia.net';
hctmp_interwiki_search_query += '&num=100&filter=0&complete=0'; // 100 results, without SafeSearch filters, with duplicate results
if (hotcat.interwikis.array.length>0) hctmp_interwiki_search_query += '&as_occt=title'; //Avec suffisamment de termes de recherche exacts (= avec lien InterWiki en anglais), restreignez les résultats et recherchez uniquement dans le titre
hctmp.e.interheadline = document.createElement( 'h3' );
hctmp.e.interheadline.className = 'hotcat-interwikis';
//hctmp.e.interheadline.style.width = '714px';
hctmp.e.intergooglelink = document.createElement( 'a' );
hctmp.e.intergooglelink.className = 'mw-hotcat';
hctmp.e.intergooglelink.href = hctmp_interwiki_search_query;
hctmp.e.intergooglelink.target = '_blank';
hctmp.e.intergooglelink.appendChild( document.createTextNode( 'Etsi linkkejä' ) );
hctmp.e.interheadline.appendChild(hctmp.e.intergooglelink);
hctmp.e.interheadline.appendChild( document.createTextNode( 'Kieltenväliset linkit' ) );
hctmp.e.inter_label = document.createElement( 'label' );
hctmp.e.inter_label.appendChild( document.createTextNode( 'Lisää linkki: ' ) );
hctmp.e.interselect = document.createElement( 'select' );
hctmp.e.interselect.id = 'addinterwikikuerzel';
hctmp.e.interoption = null;
var cnt = 0;
var hctmp_preseliw = '';
while ( cnt < hotcat.settings.biggest_wikis.length ) {// Sélectionne les wikis à préfixer dans la sélection
var nolink = true;
if ( mw.config.get( 'wgContentLanguage' ) == hotcat.settings.biggest_wikis[cnt] ) {
nolink = false;
}
for ( var i = 0; i < hotcat.interwikis.array.length; i++ ) {
if ( hotcat.interwikis.array[i].id == hotcat.settings.biggest_wikis[cnt] ) {
nolink = false;
break;
}
}
if ( nolink===true ) {// Si le lien InterWiki dans cette langue n'existe pas encore
hctmp_preseliw = hotcat.settings.biggest_wikis[cnt];// sauve le plus grand wiki
break;
} else {// S'il y a un lien InterWiki
cnt++;// vérifie la prochaine langue
}
}
for ( var i = 0; i < hotcat.settings.wikis.length; i++ ) {// Create a wiki selection
hctmp.e.interoption = document.createElement( 'option' );
hctmp.e.interoption.title = hotcat.settings.wikis[i].name;
if ( hotcat.settings.wikis[i].id == mw.config.get( 'wgContentLanguage' ) || hotcat.getWikiById( mw.config.get( 'wgContentLanguage' ) ).installed_iws.indexOf( hotcat.settings.wikis[i].id ) == -1) hctmp.e.interoption.disabled = true; // deactivate unaccepted interwiki links
if ( hotcat.settings.wikis[i].id==hctmp_preseliw ) hctmp.e.interoption.selected = true; // select largest wiki by default
hctmp.e.interoption.appendChild( document.createTextNode( hotcat.settings.wikis[i].id ) );
hctmp.e.interselect.appendChild( hctmp.e.interoption );
}
hctmp.e.interinput = document.createElement( 'input' );
hctmp.e.interinput.value = mw.config.get( 'wgTitle' );
hctmp.e.interinput.id = 'addinterwiki';
hctmp.e.interinput.type = 'text';
hctmp.e.interspan = document.createElement( 'span' );
hctmp.e.interspan.appendChild( document.createTextNode( ' ' ) );
hctmp.e.interbutton = document.createElement( 'input' );
hctmp.e.interbutton.type = 'button';
hctmp.e.interbutton.value = 'Lisää';
hctmp.e.interbutton.addEventListener( 'click',
function add_interwiki() {
hotcat.interwikis.add( hotcat.settings.wikis[document.getElementById( 'addinterwikikuerzel' ).selectedIndex].id, document.getElementById( 'addinterwiki' ).value );
document.getElementById( 'addinterwiki' ).value = mw.config.get( 'wgTitle' );
} );
hctmp.e.interhint = document.createElement( 'div' );
hctmp.e.interhint.className = 'center_column';
hctmp.e.interhint.style.fontSize = 'x-small';
hctmp.e.interhint.style.color = '#555';
hctmp.e.interhint.style.clear = 'both';
hctmp.e.interhint.appendChild( document.createTextNode( 'Lisätäksesi kieltenvälisen linkin kirjoita sivun nimi kyseisellä kielellä.' ) );
hctmp.e.inter2label = document.createElement( 'label' );
hctmp.e.inter2label.appendChild( document.createTextNode( 'Muokkaa nykyisiä kieltenvälisiä linkkejä:' ) );
hctmp.e.inter2label.style.fontWeight = 'bold';
hctmp.e.inter2list = document.createElement( 'ul' );
if ( hctmp.e.inter2list.classList ) {
hctmp.e.inter2list.classList.add( 'hc_editlist' );
} else {
hctmp.e.inter2list.className += " hc_editlist";
}
hctmp.e.inter2list.id = 'interwikilist'
hctmp.e.interblock.appendChild( hctmp.e.interheadline );
hctmp.e.interblock_p1 = document.createElement( 'p' );
hctmp.e.interblock_p1.appendChild( hctmp.e.inter_label );
//hctmp.e.interblock_p1.appendChild( hctmp.e.inter_label2 );
hctmp.e.interblock_p1.appendChild( hctmp.e.interselect );
hctmp.e.interblock_p1.appendChild( hctmp.e.interinput );
hctmp.e.interblock_p1.appendChild( hctmp.e.interspan );
hctmp.e.interblock_p1.appendChild( hctmp.e.interbutton );
hctmp.e.interblock.appendChild( hctmp.e.interblock_p1 );
hctmp.e.interblock.appendChild( hctmp.e.interhint );
hctmp.e.interblock.appendChild( hctmp.e.inter2label );
hctmp.e.interblock.appendChild( hctmp.e.inter2list );
// Submit block
hctmp.e.commentblock = document.createElement( 'div' );
hctmp.e.commentblock.id = 'hc_submitblock';
hctmp.e.commentblock.style.clear = 'both';
hctmp.e.commentblock.style.backgroundColor = '#aaa';
hctmp.e.commentblock.style.padding = '10px';
hctmp.e.submitbutton = document.createElement( 'input' );
hctmp.e.submitbutton.type = 'button';
hctmp.e.submitbutton.value = 'Tallenna';
hctmp.e.submitbutton.addEventListener( 'click', function f() { hotcat.submit(); } );
hctmp.e.cancelbutton = document.createElement( 'input' );
hctmp.e.cancelbutton.type = 'button';
hctmp.e.cancelbutton.value = 'Peruuta';
hctmp.e.cancelbutton.addEventListener( 'click', hotcat.close );
hctmp.e.endclear = document.createElement( 'br' );
hctmp.e.endclear.style.clear = 'both';
//hctmp.e.commentblock.appendChild( hctmp.e.commentlabel );
//hctmp.e.commentblock.appendChild( hctmp.e.commentinput );
hctmp.e.commentblock.appendChild( document.createTextNode( ' ' ) );
hctmp.e.commentblock.appendChild( hctmp.e.submitbutton );
hctmp.e.commentblock.appendChild( document.createTextNode( ' ' ) );
hctmp.e.commentblock.appendChild( hctmp.e.cancelbutton );
hctmp.e.commentblock.appendChild( hctmp.e.endclear );
hctmp.e.main.appendChild( hctmp.e.headline );
hctmp.e.main.appendChild( hctmp.e.interblock );
hctmp.e.main.appendChild( hctmp.e.commentblock );
document.getElementById( 'catlinks' ).appendChild( hctmp.e.main );
hotcat.interwikis.redraw();
while ( hotcat.interwikis.loadstatus < hotcat.interwikis.array.length) {
hotcat.interwikis.load( hotcat.interwikis.array[hotcat.interwikis.loadstatus].id, hotcat.interwikis.array[hotcat.interwikis.loadstatus].title );
}
};
//Close the HotCat window and reset all variables to default
hotcat.close = function() {
document.getElementById( 'catlinks' ).removeChild( document.getElementById( 'hotcat' ) );
hotcat.exzstatus = false;
hotcat.lwastatus = false;
hotcat.castatus = false;
hotcat.wookattr = false;
hotcat.defaultsort = '';
hotcat.categories.array = [];
hotcat.categories.suggestions = {};
hotcat.interwikis.array = [];
hotcat.interwikis.loadstatus = 0;
hotcat.ui = {};
hotcat.addlink();
};
hotcat.interwikis.add = function( newid, newtitle ) {
//Language code, title, FA/GA/CA, edits possible, virtual interwiki links in that wiki
hotcat.interwikis.array.push( { id:newid, title:newtitle, isFA:"false", canedit:false, type:"any", newlinks:[] } );
hotcat.interwikis.redraw();
hotcat.interwikis.load( newid, newtitle );
};
hotcat.interwikis.add2wiki = function( wikiid, newid, newtitle ) {//hotcat.interwikis.add2wiki("en", "de", "Jerba");
var tmp_wiki = hotcat.interwikis.getById( wikiid );
tmp_wiki.newlinks.push( { id:newid, title:newtitle } );
tmp_wiki.newlinks.sort( ( wikiid === 'pl') ? hotcat.sortInterwikisPl : hotcat.sortInterwikis );
};
hotcat.interwikis.editwiki = function( wiki2edit, editid) {
//Changes link virtually in another wiki (et reprendre le lien interwiki de SWW)
for ( var i = 0; i < hotcat.interwikis.array.length; i++ ) { // Find the ID of the wiki edited
if ( hotcat.interwikis[i].id == wiki2edit ) {
for ( var j = 0; j < hotcat.interwikis[i].newlinks.length; j++ ) { // Trouver l'identifiant du lien InterWiki à modifier
if ( hotcat.interwikis.array[i].newlinks[j].id == editid ) {
if ( editid == mw.config.get( 'wgContentLanguage' ) ) { // Prefill title of current article
hotcat.interwikis.array[i].newlinks[j].title = hotcat.curpage.replace( /_/g, ' ' );
} else { // Accepter le lien InterWiki correct sur SWW
hotcat.interwikis.array[i].newlinks[j].title = hotcat.interwikis.getById( editid ).title;
}
return;
}
}
}
}
};
//Delete an interwiki link of the article in the specified language, deletetitle is ignored
hotcat.interwikis.delfromwiki = function( wikiid, deleteid, deletetitle ) {
if ( wikiid == mw.config.get( 'wgContentLanguage' ) ) {
for ( var i = 0; i < hotcat.interwikis.array.length; i++ ) {
if ( hotcat.interwikis.array[i].id == deleteid ) {
hotcat.interwikis.array.splice( i, 1 );
hotcat.interwikis.redraw();
return true;
}
}
} else {
for ( var i = 0; i < hotcat.interwikis.array.length; i++ ) {
if ( hotcat.interwikis.array[i].id == wikiid ) {
for ( var j = 0; j < hotcat.interwikis.array[i].newlinks.length; j++ ) {
if ( hotcat.interwikis.array[i].newlinks[j].id == deleteid ) {
hotcat.interwikis.array[i].newlinks.splice( j, 1 );
return true;
}
}
}
}
}
return false;
};
hotcat.interwikis.getById = function( wikiid ) {
if ( wikiid == mw.config.get( 'wgContentLanguage' ) ) {
var hctmp_fa = 'false';
if ( hotcat.castatus ) hctmp_fa ='CA';
if ( hotcat.lwastatus ) hctmp_fa = 'GA';
if ( hotcat.exzstatus ) hctmp_fa = 'FA';
return { id:mw.config.get( 'wgContentLanguage' ), title:hotcat.curpage.replace( /_/g, ' ' ), isFA:hctmp_fa, canedit:false, type:"any", newlinks:hotcat.interwikis.array };
}
for ( var i = 0; i<hotcat.interwikis.array.length; i++ ) {
if ( hotcat.interwikis.array[i].id == wikiid ) return hotcat.interwikis.array[i];
}
return null;
};
hotcat.interwikis.load = function( id, title ) {
var urlWiki = null;
var formatData = null;
for ( var i = 0; i < hotcat.interwikis.array.length; i++ ) {
if ( hotcat.interwikis.array[i].id == id && hotcat.interwikis.array[i].title == title ) {
hotcat.interwikis.array[i].canedit = true;
}
}
hotcat.interwikis.redraw();
hotcat.interwikis.loadstatus++;
return;
};
//Update the list of interwiki links in interwikis []
hotcat.interwikis.redraw = function() {
var hctmp = {};
hotcat.interwikis.array.sort( hotcat.sortInterwikis );
hotcat.makeempty( 'interwikilist' );
for ( var i = 0; i < hotcat.interwikis.array.length; i++ ) {
hctmp.interwiki_line = document.createElement( 'li' );
hctmp.interwiki_line.id = 'interwiki_' + i;
hctmp.interwiki_buttondel = document.createElement( 'span' );
hctmp.interwiki_buttondel.appendChild( document.createTextNode( '–' ) );
hctmp.interwiki_buttondel.title = 'Poista';
if ( hotcat.interwikis.array[i].canedit ) {
hctmp.interwiki_buttondel.style.cursor = 'Delete';
hctmp.interwiki_buttondel.style.color = hotcat.settings.linkcolor;
hctmp.interwiki_buttondel.addEventListener( 'click', function hciw_del() {
hotcat.interwikis.array.splice( Number( this.parentNode.id.match( /^interwiki_(\d+)$/ )[1] ),1 );
hotcat.interwikis.redraw();
} );
} else {
hctmp.interwiki_buttondel.style.color = '#bbb';
}
hctmp.interwiki_buttonedit = document.createElement( 'span' );
hctmp.interwiki_buttonedit.appendChild( document.createTextNode( '±' ) );
hctmp.interwiki_buttonedit.title = 'Muokkaa';
if ( hotcat.interwikis.array[i].canedit ) {
hctmp.interwiki_buttonedit.style.cursor = 'pointer';
hctmp.interwiki_buttonedit.style.color = hotcat.settings.linkcolor;
hctmp.interwiki_buttonedit.addEventListener( 'click', function hciw_openedit() {
var id = Number( this.parentNode.id.match( /interwiki_(\d+)/ )[1] );
var hc_interedit_select = document.createElement( 'select' );
hc_interedit_select.id = 'editinterwikikuerzel' + id;
var hc_interedit_option = null;
for (var i = 0; i < hotcat.settings.wikis.length; i++ ) {
hc_interedit_option = document.createElement( 'option' );
hc_interedit_option.title = hotcat.settings.wikis[i].name;
if ( hotcat.settings.wikis[i].id == mw.config.get( 'wgContentLanguage' ) || hotcat.getWikiById( mw.config.get( 'wgContentLanguage' ) ).installed_iws.indexOf( hotcat.settings.wikis[i].id ) == -1 ) hc_interedit_option.disabled = true;
if ( hotcat.settings.wikis[i].id == hotcat.interwikis.array[id].id ) hc_interedit_option.selected = true;
hc_interedit_option.appendChild( document.createTextNode( hotcat.settings.wikis[i].id ) );
hc_interedit_select.appendChild( hc_interedit_option );
}
var hc_interedit_input = document.createElement( 'input' );
hc_interedit_input.value = hotcat.interwikis.array[id].title;
hc_interedit_input.style.width = '250px';
hc_interedit_input.id = 'interwikiedit' + id;
var hc_interedit_savebutton = document.createElement( 'input' );
hc_interedit_savebutton.title = id; // cache d'ID
hc_interedit_savebutton.addEventListener( 'click', function hciw_editsubmit() {
var id = this.title;
var newid = hotcat.settings.wikis[document.getElementById( 'editinterwikikuerzel' + id).selectedIndex].id;
var newtitle = document.getElementById( 'interwikiedit'+ id).value;
if ( hotcat.interwikis.array[id].id != newid || hotcat.interwikis.array[id].title != newtitle ) {
hotcat.interwikis.array[id].id = newid;
hotcat.interwikis.array[id].title = newtitle;
hotcat.interwikis.array[id].canedit = false;
hotcat.interwikis.array[id].newlinks = [];
hotcat.interwikis.load( newid, newtitle );
}
hotcat.interwikis.redraw();
});
hc_interedit_savebutton.type = 'button';
hc_interedit_savebutton.value = 'Hyväksy';
var hc_interedit_cancelbutton = document.createElement( 'input' );
hc_interedit_cancelbutton.addEventListener( 'click', hotcat.interwikis.redraw );
hc_interedit_cancelbutton.type = 'button';
hc_interedit_cancelbutton.value = 'Peruuta';
document.getElementById( 'interwiki_' + id).removeChild( document.getElementById( 'interwiki_' + id).getElementsByTagName( 'a' )[document.getElementById( 'interwiki_' + id ).getElementsByTagName( 'a' ).length - 1] );
document.getElementById( 'interwiki_' + id ).appendChild( document.createTextNode( '[[' ) );
document.getElementById( 'interwiki_' + id ).appendChild( hc_interedit_select);
document.getElementById( 'interwiki_' + id ).appendChild( document.createTextNode( ':' ) );
document.getElementById( 'interwiki_' + id ).appendChild( hc_interedit_input);
document.getElementById( 'interwiki_' + id ).appendChild( document.createTextNode( ']] ' ) );
document.getElementById( 'interwiki_' + id ).appendChild( hc_interedit_savebutton);
document.getElementById( 'interwiki_' + id ).appendChild( document.createTextNode( ' ' ) );
document.getElementById( 'interwiki_' + id ).appendChild( hc_interedit_cancelbutton );
} );
} else {
hctmp.interwiki_buttonedit.style.color = '#bbb';
}
hctmp.interwiki_icon = document.createElement( 'img' );
if ( hotcat.interwikis.array[i].isFA == 'false' ) {
hctmp.interwiki_icon.src = 'https://jedipedia.net/w/skins/MonoBook/bullet.gif';
hctmp.interwiki_icon.style.display = 'none';
} else if ( hotcat.interwikis.array[i].isFA == 'CA' ) {
hctmp.interwiki_icon.src = 'https://static.wikia.nocookie.net/starwars/images/d/dc/InterwikiCA.png/revision/latest?cb=20111001202338';
} else if ( hotcat.interwikis.array[i].isFA == 'GA' ) {
hctmp.interwiki_icon.src = 'https://static.wikia.nocookie.net/starwars/images/d/df/InterwikiGA.png/revision/latest?cb=20110929201133';
} else if ( hotcat.interwikis.array[i].isFA == 'FA' ) {
hctmp.interwiki_icon.src = 'https://static.wikia.nocookie.net/starwars/images/1/10/InterwikiFA.png/revision/latest?cb=20090419010056';
}
hctmp.interwiki_link = document.createElement( 'a' );
//hctmp.interwiki_link.href = '/wiki/' + hotcat.interwikis.array[i].id + ':' + encodeURIComponent( hotcat.interwikis.array[i].title.replace( / /g, '_' ) );
hctmp.interwiki_link.href = 'https://' + hotcat.getWikiById( hotcat.interwikis.array[i].id ).domain + hotcat.getWikiById( hotcat.interwikis.array[i].id ).path + 'index.php?title=' + hotcat.interwikis.array[i].title.replace( / /g, '_' );
hctmp.interwiki_link.setAttribute( 'target', '_blank' );
hctmp.interwiki_link.appendChild( document.createTextNode( hotcat.interwikis.array[i].id + ':' + hotcat.interwikis.array[i].title ) );
hctmp.interwiki_line.appendChild( hctmp.interwiki_buttondel );
hctmp.interwiki_line.appendChild( document.createTextNode( ' ' ) );
hctmp.interwiki_line.appendChild( hctmp.interwiki_buttonedit);
hctmp.interwiki_line.appendChild( document.createTextNode( ' ' ) );
hctmp.interwiki_line.appendChild( hctmp.interwiki_icon );
hctmp.interwiki_line.appendChild( document.createTextNode( ' ' ) );
hctmp.interwiki_line.appendChild( hctmp.interwiki_link );
switch ( hotcat.interwikis.array[i].type ) {
case 'kanon':
hctmp.interwiki_line.appendChild( document.createTextNode( ' (CANON)' ) );
break;
case 'legends':
hctmp.interwiki_line.appendChild( document.createTextNode( ' (LEGENDS)' ) );
break;
}
document.getElementById( 'interwikilist' ).appendChild( hctmp.interwiki_line );
}
var cnt = 0; hctmp.preseliw = '';
while ( cnt < hotcat.settings.biggest_wikis.length ) { // Sélectionne les wikis à préfixer dans la sélection
var nolink = true;
if ( mw.config.get( 'wgContentLanguage' ) == hotcat.settings.biggest_wikis[cnt] ) {
nolink = false;
}
for ( var i = 0; i < hotcat.interwikis.array.length; i++ ) {
if ( hotcat.interwikis.array[i].id == hotcat.settings.biggest_wikis[cnt] ) { nolink=false; break; }
}
if ( nolink==true ) { // Si le lien InterWiki dans cette langue n'existe pas encore
hctmp.preseliw = hotcat.settings.biggest_wikis[cnt]; //sauver le plus grand wiki
break;
} else { // S'il y a un lien InterWiki
cnt++; // vérifie la prochaine langue
}
}
document.getElementById( 'addinterwikikuerzel' ).selectedIndex = hotcat.settings.interwiki_codes[hctmp.preseliw];
};
//Sort the interwiki links array by codes
hotcat.sortInterwikis = function( a, b ) {
var a2=hotcat.settings.interwiki_codes[a.id];
var b2=hotcat.settings.interwiki_codes[b.id];
if ( a2 > b2 ) return 1;
if ( a2 < b2 ) return -1;
if ( a.type != b.type ) return ( a.type > b.type ) ? 1 : -1;
return ( a.title == b.title ) ? 0 : ( a.title > b.title ) ? 1 : -1;
}
hotcat.sortInterwikisPl = function( a, b ) {
var a2=hotcat.settings.interwiki_codes_pl[a.id];
var b2=hotcat.settings.interwiki_codes_pl[b.id];
if (a2 > b2) return 1;
if (a2 < b2) return -1;
if (a.type != b.type) return (a.type > b.type) ? 1 : -1;
return (a.title == b.title) ? 0 : ( a.title > b.title ) ? 1 : -1;
}
//Submit edits
hotcat.submit = function() {
var hctmp = {};
//VARIABLEN
hctmp.interwikis = [];
for (var i = 0; i < hotcat.interwikis.array.length; i++ ) {
var tmpiwtext = hotcat.interwikis.array[i].id + ':' + hotcat.interwikis.array[i].title;
hctmp.interwikis.push(tmpiwtext);
}
//GUI
hctmp.e = {};
hctmp.e.submitstatusheadline = document.createElement( 'h3' );
hctmp.e.submitstatuslogo = document.createElement( 'img' );
hctmp.e.submitstatuslogo.src = 'https://vignette.wikia.nocookie.net/fr.starwars/images/e/ee/HOTCAT_Logo.png/revision/latest?cb=20181110120640';
hctmp.e.submitstatuslogo.alt = 'HotCat';
hctmp.e.submitstatusheadline.appendChild( hctmp.e.submitstatuslogo );
hctmp.e.submitstatusheadlinetext = document.createElement( 'span' );
hctmp.e.submitstatusheadlinetext.id = 'hc_submit_heading';
hctmp.e.submitstatusheadlinetext.appendChild( document.createTextNode( ' Päivitetään... ' ) );
hctmp.e.submitstatusheadline.appendChild( hctmp.e.submitstatusheadlinetext );
hctmp.e.submitstatuswarning = document.createElement( 'h4' );
hctmp.e.submitstatuswarning.id = 'hc_submit_warning';
hctmp.e.submitstatuswarning.appendChild( document.createTextNode( 'Pidä ikkuna avoinna, kunnes muutokset ovat valmiita ja vahvistus näytetään!' ) );
hctmp.e.submitstatuslist = document.createElement( 'ul' );
hctmp.e.submitstatuslist.id = 'submitstatus_table';
hctmp.e.lineinsert_working = document.createElement( 'li' );
hctmp.e.lineinsert_working_img = document.createElement( 'img' );
hctmp.e.lineinsert_working_img.id = 'submitstatus_img_' + mw.config.get( 'wgContentLanguage' );
hctmp.e.lineinsert_working_img.src= 'https://vignette.wikia.nocookie.net/fr.starwars/images/d/de/Ajax-loader.gif/revision/latest?cb=20181110120648';
hctmp.e.lineinsert_working_status = document.createElement( 'span' );
hctmp.e.lineinsert_working_status.id = 'submitstatus_status_' + mw.config.get( 'wgContentLanguage' );
hctmp.e.lineinsert_working_status.appendChild( document.createTextNode( ' ' + mw.config.get( 'wgContentLanguage' ) + ': Sivua muokataan...' ) );
hctmp.e.lineinsert_working.appendChild( hctmp.e.lineinsert_working_img );
hctmp.e.lineinsert_working.appendChild( hctmp.e.lineinsert_working_status );
hctmp.e.submitstatuslist.appendChild( hctmp.e.lineinsert_working );
while ( document.getElementById( 'hotcat' ).firstChild ) { document.getElementById( 'hotcat' ).removeChild( document.getElementById( 'hotcat' ).firstChild ); }
document.getElementById( 'hotcat' ).appendChild( hctmp.e.submitstatusheadline );
document.getElementById( 'hotcat' ).appendChild( hctmp.e.submitstatuswarning );
document.getElementById( 'hotcat' ).appendChild( hctmp.e.submitstatuslist );
//hotcat.submit_counter = hotcat.interwikis.array.length;
//--- Ajax request for Wookieepedia ---
$.ajax( {
url: mw.util.wikiScript( 'api' ),
data: {
action: 'parse',
prop: 'wikitext',
page: hotcat.curpage,
format: 'json'
},
dataType: 'json',
success: function( d ) {
if ( d.error ) {
return; // or handle error
} else {
if ( d.parse.wikitext !== undefined ) {
//var oldwikitext = d.parse.wikitext[*];
}
}
}
} ).done( function( d ) {
var oldwikitext = d.parse.wikitext['*'];
var interlangTemplateRegex = /{{(Template:|Predefinição:)?Interlang[\s\S]+?}}/i
var regularInterwikiRegex = /\[\[([a-z]{2}:[\s\S\|]+?)\]\]/gm;
var defaultSortRegex = /\{\{(DEFAULTSORT|ORDENAR)\:.*?\}\}/i;
var categoryRegex = /\[\[(Luokka|Category|Categoría|Catégorie|Categorie|Kategori|Categoria|Kategorija|分類|Категория|Kategória|Kategorie|Kategory|カテゴリ)\:.+?\]\]/i;
var insert = '<INSERT_INTERWIKI_HERE>';
if ( interlangTemplateRegex.test( oldwikitext ) ) {
oldwikitext = oldwikitext.replace( interlangTemplateRegex, insert );
} else if ( regularInterwikiRegex.test( oldwikitext ) ) {
oldwikitext = oldwikitext.replace( regularInterwikiRegex, insert );
} else if ( defaultSortRegex.test( oldwikitext ) ) {// search for DEFAULTSORT
var defaultsort = oldwikitext.match( defaultSortRegex );
oldwikitext = oldwikitext.replace( defaultSortRegex, insert + '\n\n' + defaultsort[0] );
} else if ( categoryRegex.test( oldwikitext ) ){ // search for Category
var categoryFind = oldwikitext.match( categoryRegex );
oldwikitext = oldwikitext.replace( categoryRegex, insert + '\n\n' + categoryFind[0] );
} else { // no template, no defaultsort, no categories
oldwikitext = oldwikitext + '\n' + insert;
}
var newwikitext = oldwikitext.replace( insert + '\n', hotcat.formatInterwikis( hotcat.interwikis.array, mw.config.get( 'wgContentLanguage' ) ) ).replace ( /\n<INSERT_INTERWIKI_HERE>/gm, '' );
$.ajax( {
type: 'POST',
dataType: 'text',
url: mw.util.wikiScript( 'api' ),
method: 'POST',
data: {
action: 'edit',
format: 'json',
title: hotcat.curpage,
text: newwikitext,
minor: true,
bot: true,
nocreate: true,
summary: 'Päivitetään kieltenvälisiä linkkejä (skripti)',
token: mw.user.tokens.get( 'csrfToken' ),
},
xhrFields: {
withCredentials: true
},
crossdomain: true,
success: function( result ) {
return JSON.parse( result );
},
error: function( xhr,status,error ) {
alert( status );
}
} ).always( function( data ) {
var submitstatus_img_id = 'submitstatus_img_' + mw.config.get( 'wgContentLanguage' );
var submitstatus_status_id = 'submitstatus_status_' + mw.config.get( 'wgContentLanguage' );
var d = JSON.parse( data );
document.getElementById( submitstatus_img_id ).src = 'https://vignette.wikia.nocookie.net/fr.starwars/images/8/83/10px-Haken.svg.png/revision/latest?cb=20181110120633';
document.getElementById( submitstatus_status_id ).firstChild.data += ' Valmis! ';
if ( d.edit.result != null && d.edit.result != 'undefined' ) {
if ( d.edit.result == 'Success' ) {
if ( d.edit.nochange != null ) {
var tmpstatus = document.createElement( 'span' );
tmpstatus.style.fontStyle = 'italic';
tmpstatus.appendChild( document.createTextNode( 'Ei muutoksia' ) );
document.getElementById( submitstatus_status_id ).appendChild( tmpstatus );
} else if ( d.edit.newrevid != null ) {
var tmpstatus = document.createElement( 'a' );
tmpstatus.href = mw.util.wikiScript() + '?title=' + hotcat.curpage + '&diff=' + d.edit['newrevid'] + 'oldid=' + d.edit['oldrevid'];
tmpstatus.appendChild( document.createTextNode( 'ero' ) );
document.getElementById( submitstatus_status_id ).appendChild( tmpstatus );
}
} else if ( d.edit.result == 'Failure' ) {
document.getElementById( submitstatus_img_id ).src = 'https://vignette.wikia.nocookie.net/fr.starwars/images/8/83/10px-Haken.svg.png/revision/latest?cb=20181110120633';
document.getElementById( submitstatus_status_id ).firstChild.data += ' Virhe! ';
document.getElementById( submitstatus_status_id ).appendChild( tmpstatus );
}
} else if ( d.error != null ) {
var tmperror = this.responseText.substring(8);
var tmpstatus = document.createElement( 'span' );
tmpstatus.style.fontWeight = 'bold';
switch ( tmperror ) {
case 'protectedpage': tmpstatus.appendChild( document.createTextNode( 'Virhe: tämä sivu on suojattu.' ) ); break;
default: tmpstatus.appendChild( document.createTextNode( 'Error: ' + tmperror) );
}
document.getElementById( submitstatus_status_id ).appendChild( tmpstatus );
} else if ( this.responseText.substring( 0, 6 ) === 'ERROR=' ) {
var tmpstatus = document.createElement( 'span' );
tmpstatus.style.fontWeight = 'bold';
tmpstatus.appendChild( document.createTextNode( 'Virhe (ilmoita): ' + this.responseText.substring(6).replace( /</g, '<' ) ) );
document.getElementById( submitstatus_status_id ).appendChild( tmpstatus );
} else {
var tmpstatus = document.createElement( 'span' );
tmpstatus.style.fontWeight = 'bold';
tmpstatus.appendChild( document.createTextNode( 'Virhe (ilmoita): ' ) );
document.getElementById( submitstatus_status_id ).appendChild( tmpstatus) ;
document.getElementById( submitstatus_status_id ).appendChild( document.createTextNode( this.responseText.replace( /</g, '<' ) ) );
}
hotcat.checkifdone();
} );
} );
};
hotcat.checkifdone = function() {
hotcat.submit_counter--;
if ( hotcat.submit_counter < 0 ) {
document.getElementById( 'hc_submit_heading' ).firstChild.data = ' Valmis!';
document.getElementById( 'hc_submit_warning' ).firstChild.data = 'Ikkunan voi nyt sulkea. Päivitä sivu, jos haluat tehdä lisää muutoksia.';
}
};
hotcat.extractInterWikiData = function( wikitext, title, wiki ) {
var extract = '';
var redirect = /^\#[\s\S]+?\[\[[\s\S]+?\]\]/g
var interlangTemplate = /{{(Template:|Predefinição:)?Interlang[\s\S]+?}}/i;
var regularInterwiki = /\[\[([a-z]{2}:[\s\S\|]+?)\]\]/gm;
if ( wikitext !== null ) {
//check redirection
if ( wikitext.match( redirect ) !== null ){
extract = 'error=redirect\n';
var link = wikitext.match( /\[\[[\s\S]+?\]\]/gm )
extract = extract + 'redirect=' + link.toString().replace( /\[\[|\]\]/gm, '' );
} else {
var interwiki = wikitext.match( interlangTemplate );
if ( interwiki !== null ) {
extract = interwiki.toString().replace( / = /gm, '=' ).replace( /\n/gm, '' ).replace( /\|/gm, '\n|' ).replace( /({{Interlang)|\||}},/gm, '' ).trim();
} else {
// no interlang template => we search regular interwiki [[fr:Naboo]]
interwiki = wikitext.match( regularInterwiki );
if ( interwiki !== null ) {
extract = interwiki.toString().replace( /\]\]/gm, '' ).replace( /\[\[([a-z]{2}):/gm, '$1=' ).trim();
}
}
}
}
return extract;
};
/** Format the Interlang template */
hotcat.formatInterlang = function( /*array*/ links, /*string*/ wiki ) {
var interlang = '{{Interlang\n';
var falist = '';
var galist = '';
var calist = '';
for ( var i = 0; i < links.length; i++ ) {
interlang = interlang + '|' + links[i].id + '=' + links[i].title + '\n';
}
if ( wiki != mw.config.get( 'wgContentLanguage' ) ) {
if ( hotcat.exzstatus ) { falist += '|' + mw.config.get( 'wgContentLanguage' ) + 'FA=1\n'; }
if ( hotcat.lwastatus ) { galist += '|' + mw.config.get( 'wgContentLanguage' ) + 'GA=1\n'; }
if ( hotcat.castatus ) { calist += '|' + mw.config.get( 'wgContentLanguage' ) + 'CA=1\n'; }
}
if ( wiki == mw.config.get( 'wgContentLanguage' ) && hotcat.wookattr == true ) {
if ( wiki == 'es' ) { interlang = interlang + '|sin=sí\n'; }
if ( wiki == 'pt' ) { interlang = interlang + '|icp=1\n'; }
}
for ( var i = 0; i < hotcat.interwikis.array.length; i++ ) {
if ( wiki != hotcat.interwikis.array[i].id ) {
switch ( hotcat.interwikis.array[i].isFA ) {
case 'FA': falist += '|' + hotcat.interwikis.array[i].id + 'FA=1\n'; break;
case 'GA': galist += '|' + hotcat.interwikis.array[i].id + 'GA=1\n'; break;
case 'CA': calist += '|' + hotcat.interwikis.array[i].id + 'CA=1\n'; break;
}
}
if ( wiki == hotcat.interwikis.array[i].id && hotcat.interwikis.array[i].wookAttr == true ) {
if ( wiki == 'es' ) { interlang = interlang + '|sin=sí\n'; }
if ( wiki == 'pt' ) { interlang = interlang + '|icp=1\n'; }
}
}
interlang = interlang + falist + galist + calist + '}}';
return interlang;
};
/** Format standard interwiki */
hotcat.formatInterwikis = function( /*array*/ links, /*boolean*/canon ) {
var interwiki = '';
for ( var i = 0; i < links.length; i++ ) {
interwiki = interwiki + '[[' + links[i].id + ':' + links[i].title + ']]\n';
}
return interwiki;
};
/** Start HotCat when the page has loaded */
$( document ).ready( mw.loader.using( 'mediawiki.util' ).then( hotcat.addlink ) );