|
|
Line 1: |
Line 1: |
| /*
| | <!-- --> |
| @Author [[User:Jayprakash12345]]
| |
| @OwnBy [[meta:Indic-TechCom]]
| |
| */
| |
| var IndicOCR = function () {
| |
| | |
| $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
| |
| 'section': 'main',
| |
| 'group': 'insert',
| |
| 'tools': {
| |
| 'IndicOCR': {
| |
| label: 'IndicOCR', // or use labelMsg for a localized label, see above
| |
| type: 'button',
| |
| icon: '//upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Iconocr.png/22px-Iconocr.png',
| |
| action: {
| |
| type: 'callback',
| |
| execute: function () {
| |
| var toolUrl = "//localhost:3000/api/ocr";
| |
| lang = mw.config.get( 'wgContentLanguage' );
| |
| loadingGifUrl = '//upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif';
| |
|
| |
| showLoadingMsg( 'OCR is in process.' );
| |
| if ( $( '.prp-page-image img' ).length === 0 ) {
| |
| mw.notify( 'Proofread Image not found.' );
| |
| }
| |
| var imageUrl = $( '.prp-page-image img' ).attr('src');
| |
| var requestUrl;
| |
|
| |
| if( imageUrl.indexOf("wiki.ekatrafoundation.org") === -1){
| |
| requestUrl = toolUrl + "?imageurl=https://wiki.ekatrafoundation.org" + imageUrl + "&langcode="+lang+ "&api=True";
| |
| } else {
| |
| requestUrl = toolUrl + "?imageurl=" + imageUrl + "&langcode="+lang+ "&api=True";
| |
| }
| |
|
| |
| $.getJSON( requestUrl )
| |
| .done( processOcrResult )
| |
| .fail( processOcrResult ) // Same handler, for simplicity.
| |
| .always( function () { showLoadingMsg( '' ); } );
| |
| }
| |
| }
| |
| }
| |
| }
| |
| } );
| |
|
| |
| | |
| function processOcrResult( response ) {
| |
| if ( response.responseJSON !== undefined && response.responseJSON.error ) {
| |
| mw.notify( mw.message( 'error' ) + ' ' + response.responseJSON.error.code + ' ' + response.responseJSON.error.message );
| |
| return;
| |
| }
| |
| if ( response.text === undefined || response.text.length === 0 ) {
| |
| mw.notify( "No OCR text." );
| |
| return;
| |
| }
| |
| $( '#wpTextbox1' ).val( response.text );
| |
| }
| |
|
| |
| | |
| function showLoadingMsg( msgLabel ) {
| |
| var msg, loadingGif,
| |
| loadingId = 'GoogleOcrLoading';
| |
| | |
| // Always remove any existing message.
| |
| $( '#' + loadingId ).remove();
| |
| | |
| // Add the new message if required.
| |
| if ( msgLabel.length !== 0 ) {
| |
| msgBox = $( "<p>" )
| |
| .attr( "id", loadingId )
| |
| .css( "background-color", "#efefef" ).css( "border", "1px solid #ccc" )
| |
| .text( msgLabel );
| |
| loadingGif = $( "<img>" )
| |
| .attr( "src", loadingGifUrl )
| |
| .attr( "alt", "Animated loading indicator" )
| |
| .css( "display", "inline-block" ).css( "margin", "0.3em" );
| |
| msgBox.prepend( loadingGif );
| |
| $( '#wpTextbox1' ).before( msgBox );
| |
| }
| |
| }
| |
| };
| |
| | |
| /* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */
| |
| if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
| |
| if ( mw.config.get( 'wgCanonicalNamespace' ) === 'Page' ) {
| |
| $.when( mw.loader.using( 'ext.wikiEditor' ), $.ready)
| |
| .then( IndicOCR );
| |
| }
| |
| }
| |