MediaWiki:Gadget-ExtractTextLayer.js

La bibliothèque libre.

Note : après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : Maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
  • Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
  • Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
  • Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
/*
 * Author: w:fr:Phe
 *
 * Extract the text layer of a djvu file and save it to User:name/Text
 */

/**
 * Setup the ExtractTextLayer object:
 */
if ( window.ExtractTextLayer === undefined ) {
	window.ExtractTextLayer = {};
}

/**
 * The global ExtractTextLayer object
 */
( function ( mw, $, etl ) {
'use strict';

etl.callback = function (data) {
	if (!data.error) {
		$('#wpRobot-extract-text > a').text('ok');
		$('#wpRobot-extract-text > a').attr('href', '/w/index.php?title=User:' + encodeURIComponent(mw.config.get('wgUserName')) + '/Text');
	} else {
		$('#wpRobot-extract-text > a').text(data.text);
	}
};

etl.do_extract = function () {
	var url = '//tools.wmflabs.org/phetools/extract_text_layer.php?cmd=extract&title=' +
		mw.config.get('wgTitle') + '&lang=' + mw.config.get('wgContentLanguage') +
		'&user=' + mw.config.get('wgUserName');

	$.getJSON(url, function(data) { etl.callback(data); } );
};

etl.setup = function () {
	var id_name = self.skin == "vector" ? '#p-namespaces' : '#p-cactions';
	var $a = $(id_name + ' ul');
	if (!$a.length)
		return false;
	$a[0].innerHTML = $a[0].innerHTML  + '<li id="ca-extract">' + '<span id="wpRobot-extract-text"><a href="javascript:ExtractTextLayer.do_extract();"><span>extract text</span></a></span></li>';
};
 
}( mediaWiki, jQuery, window.ExtractTextLayer ) );

/* FIXME: don't use an hard-coded namespace number */
if (mw.config.get("wgNamespaceNumber") == 112 /*&& mw.config.get("wgAction") == "edit"*/) {
	$(ExtractTextLayer.setup);
}