利用者:CES1596/OCR1.js

提供:Wikisource

注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。

  • Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
  • Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
  • Internet Explorer / Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください
  • Opera: Ctrl-F5を押してください
//Simplified OCR tool based on wikisource.org's MediaWiki:GoogleOCR.js

var lang = 'ja';

$(function() {
        var namespaceNumber = mw.config.get('wgNamespaceNumber');
        if (namespaceNumber !== 250) return;
        $("#p-namespaces ul").append($("<li><span><a>GOCR</a></span></li>").attr({'id':'gocr0_btn', 'title':'do Google OCR'}).css({'color':'#0000ff','cursor':'pointer'}));
        $('#gocr0_btn').click(function() {
                do_gocr();
                console.log('do_gocr done');
                $('#gocr0_btn, #gocr0_btn span a').css({'color':'#000000'});
        });
});

function do_gocr() {
	if ( $( '.prp-page-image img' ).length === 0 ) {
		mw.notify( mw.msg( 'google-ocr-image-not-found' ) );
		console.log('gocr image not found');
	}
	var imageUrl = 'https:' + $( '.prp-page-image img' ).attr('src');
	var toolUrl = "//tools.wmflabs.org/ws-google-ocr/api.php";
	var requestUrl = toolUrl + "?image=" + imageUrl + "&lang="+lang;
	$.getJSON( requestUrl )
		.done( processOcrResult )
		.fail( processOcrResult )
	console.log('gocr getJSON done');
}

function processOcrResult( response ) {
	if ( response.responseJSON !== undefined && response.responseJSON.error ) {
		mw.notify( mw.msg( 'error' ) + ' ' + response.responseJSON.error.code + ' ' + response.responseJSON.error.message );
		console.log('gocr error');
		return;
	}
	if ( response.text === undefined || response.text.length === 0 ) {
		mw.notify( mw.msg( 'google-ocr-no-text' ) );
		console.log('gocr no text');
		return;
	}
	$( '#wpTextbox1' ).val( response.text );
	console.log('gocr callback done');
}