<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://wpu.nu/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-ocr.js</id>
	<title>MediaWiki:Gadget-ocr.js - Versionshistorik</title>
	<link rel="self" type="application/atom+xml" href="https://wpu.nu/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-ocr.js"/>
	<link rel="alternate" type="text/html" href="https://wpu.nu/index.php?title=MediaWiki:Gadget-ocr.js&amp;action=history"/>
	<updated>2026-06-02T08:44:24Z</updated>
	<subtitle>Versionshistorik för denna sida på wikin</subtitle>
	<generator>MediaWiki 1.35.4</generator>
	<entry>
		<id>https://wpu.nu/index.php?title=MediaWiki:Gadget-ocr.js&amp;diff=193&amp;oldid=prev</id>
		<title>Simon Lundell: 1 version importerades</title>
		<link rel="alternate" type="text/html" href="https://wpu.nu/index.php?title=MediaWiki:Gadget-ocr.js&amp;diff=193&amp;oldid=prev"/>
		<updated>2020-07-18T14:39:39Z</updated>

		<summary type="html">&lt;p&gt;1 version importerades&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;sv&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Äldre version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen från 18 juli 2020 kl. 14.39&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key mediawikidb:diff::1.12:old-192:rev-193 --&gt;
&lt;/table&gt;</summary>
		<author><name>Simon Lundell</name></author>
	</entry>
	<entry>
		<id>https://wpu.nu/index.php?title=MediaWiki:Gadget-ocr.js&amp;diff=192&amp;oldid=prev</id>
		<title>wikisource&gt;Billinghurst: rm .toolbar component</title>
		<link rel="alternate" type="text/html" href="https://wpu.nu/index.php?title=MediaWiki:Gadget-ocr.js&amp;diff=192&amp;oldid=prev"/>
		<updated>2018-01-09T12:29:06Z</updated>

		<summary type="html">&lt;p&gt;rm .toolbar component&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny sida&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*jshint boss:true*/&lt;br /&gt;
/*global $, mw*/&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Query an ocr for a given Page:, first try to get the hocr text layer as it's available&lt;br /&gt;
 * for most book, fast and of a better quality. If it fails, try the older and slower&lt;br /&gt;
 * ocr method. hocr fail around 1/5000 books. ocr should never fails as it use the image&lt;br /&gt;
 * visible on the Page:.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
var lang = mw.config.get( 'wgContentLanguage' );&lt;br /&gt;
&lt;br /&gt;
function disable_input(set)&lt;br /&gt;
{&lt;br /&gt;
	if (set) {&lt;br /&gt;
		$(document).keyup(function(e) {&lt;br /&gt;
			if (e.which == 27) { disable_input(false); }&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	set ? $('#wsOcr1').off('click') : $('#wsOcr1').on('click', do_hocr);&lt;br /&gt;
	set ? $('#wsOcr2').off('click') : $('#wsOcr1').on('click', fraktur_ocr);&lt;br /&gt;
&lt;br /&gt;
	$('#wpTextbox1').prop('disabled', set);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ocr_callback(data) {&lt;br /&gt;
	if (data.error) {&lt;br /&gt;
		alert(data.text);&lt;br /&gt;
	} else {&lt;br /&gt;
		// Checking if tb is disabled is required with chrome as ESC doesn't kill&lt;br /&gt;
		// the query.&lt;br /&gt;
		var tb = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
		if (tb.disabled)&lt;br /&gt;
			tb.value = data.text;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	disable_input(false);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function hocr_callback(data) {&lt;br /&gt;
	if (data.error) {&lt;br /&gt;
		// Fallback to the slow way.&lt;br /&gt;
		disable_input(false);&lt;br /&gt;
		do_ocr();&lt;br /&gt;
		return;&lt;br /&gt;
	} else {&lt;br /&gt;
		// Checking if tb is disabled is required with chrome as ESC doesn't kill&lt;br /&gt;
		// the query.&lt;br /&gt;
		var tb = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
		if (tb.disabled) {&lt;br /&gt;
                        localStorage.ws_hOCR = data.text;&lt;br /&gt;
&lt;br /&gt;
			var text = $(data.text).text();&lt;br /&gt;
			// Ugly as hell.&lt;br /&gt;
			text = text.replace(/[ ]*\n[ ]*/g, '\n')&lt;br /&gt;
				.replace(/\n\n\n\n/g, '@_@_@_@_@_@')&lt;br /&gt;
				.replace(/\n\n/g, '\n')&lt;br /&gt;
				.replace(/@_@_@_@_@_@/g, '\n\n')&lt;br /&gt;
				.replace(/\n\n\n/g, '\n\n');&lt;br /&gt;
			tb.value = $.trim(text);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	disable_input(false);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function do_hocr() {&lt;br /&gt;
	disable_input(true);&lt;br /&gt;
&lt;br /&gt;
	var request_url = '//tools.wmflabs.org/phetools/hocr_cgi.py?cmd=hocr&amp;amp;book='&lt;br /&gt;
		+ encodeURIComponent(mw.config.get('wgTitle')) + '&amp;amp;lang=' + lang + '&amp;amp;user=' + mw.config.get('wgUserName');&lt;br /&gt;
&lt;br /&gt;
	$.getJSON(request_url).done(hocr_callback).fail(do_ocr);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function do_ocr() {&lt;br /&gt;
	if ($( '.prp-page-image img' ).length) {&lt;br /&gt;
		disable_input(true);&lt;br /&gt;
&lt;br /&gt;
		// server side can't use protocol relative url, request it as https:&lt;br /&gt;
		var url_image = 'https:' + $( '.prp-page-image img' ).attr('src');&lt;br /&gt;
&lt;br /&gt;
		var request_url = &amp;quot;//tools.wmflabs.org/phetools/ocr.php?cmd=ocr&amp;amp;url=&amp;quot;+url_image+&amp;quot;&amp;amp;lang=&amp;quot;+lang+&amp;quot;&amp;amp;user=&amp;quot;+mw.config.get('wgUserName');&lt;br /&gt;
&lt;br /&gt;
		$.getJSON( request_url ).done( ocr_callback );&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function fraktur_ocr()&lt;br /&gt;
{&lt;br /&gt;
	lang = 'de-f';&lt;br /&gt;
	// For fraktur we need to use the slow way, all hocr for 'de'&lt;br /&gt;
	// are done with non-fraktur.&lt;br /&gt;
	do_ocr();&lt;br /&gt;
	lang = mw.config.get( 'wgContentLanguage' );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addButtonToWikiEditorToolbar( b ){&lt;br /&gt;
	var tools = {};&lt;br /&gt;
	tools[ b.imageId ] = {&lt;br /&gt;
		label: b.speedTip,&lt;br /&gt;
		filters: [ 'body.ns-104' ],&lt;br /&gt;
		type: 'button',&lt;br /&gt;
		icon: b.imageFile,&lt;br /&gt;
		action: {&lt;br /&gt;
			type: 'callback',&lt;br /&gt;
			execute: b.onClick&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {&lt;br /&gt;
		section: 'main',&lt;br /&gt;
		group: 'insert',&lt;br /&gt;
		tools: tools&lt;br /&gt;
	} );&lt;br /&gt;
	$( '[rel=&amp;quot;' + b.imageId + '&amp;quot;]' ).width( 42 );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addButtonToClassicToolbar( b ){&lt;br /&gt;
	mw.toolbar.addButton( {&lt;br /&gt;
		imageFile: b.imageFile,&lt;br /&gt;
		speedTip: b.speedTip,&lt;br /&gt;
		imageId: b.imageId&lt;br /&gt;
	} );&lt;br /&gt;
	$( '#' + b.imageId ).off( 'click' ).click( function () {&lt;br /&gt;
		b.onClick();&lt;br /&gt;
		return false;&lt;br /&gt;
	} ).width( 46 );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function customiseToolbar()&lt;br /&gt;
{&lt;br /&gt;
	var modules, add, img;&lt;br /&gt;
	// This can be the string &amp;quot;0&amp;quot; if the user disabled the preference ([[Phabricator:T54542#555387]])&lt;br /&gt;
	if( mw.user.options.get( 'usebetatoolbar' ) == 1 ){&lt;br /&gt;
		modules = [ 'ext.wikiEditor' ];&lt;br /&gt;
		img = '//upload.wikimedia.org/wikipedia/commons/c/c9/Toolbaricon_OCR.png';&lt;br /&gt;
		add = addButtonToWikiEditorToolbar;&lt;br /&gt;
	} else if ( mw.user.options.get( 'showtoolbar' ) == 1 ){&lt;br /&gt;
		modules = [ 'mediawiki.toolbar' ];&lt;br /&gt;
		img = '//upload.wikimedia.org/wikipedia/commons/e/e0/Button_ocr.png';&lt;br /&gt;
		add = addButtonToClassicToolbar;&lt;br /&gt;
	} else {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	$.when(&lt;br /&gt;
		mw.loader.using( modules ),&lt;br /&gt;
		$.ready&lt;br /&gt;
	).then( function(){&lt;br /&gt;
		if( mw.config.get( 'wgContentLanguage' ) === 'de' ){&lt;br /&gt;
			add( {&lt;br /&gt;
				imageFile: img,&lt;br /&gt;
				speedTip: 'Normale OCR',&lt;br /&gt;
				imageId: 'wsOcr1',&lt;br /&gt;
				onClick: do_hocr&lt;br /&gt;
			} );&lt;br /&gt;
			add( {&lt;br /&gt;
				imageFile: '//upload.wikimedia.org/wikipedia/commons/a/af/Button_Fractur_OCR.png',&lt;br /&gt;
				speedTip: 'Fraktur OCR',&lt;br /&gt;
				imageId: 'wsOcr2',&lt;br /&gt;
				onClick: fraktur_ocr&lt;br /&gt;
			} );&lt;br /&gt;
		} else {&lt;br /&gt;
			add( {&lt;br /&gt;
				imageFile: img,&lt;br /&gt;
				speedTip: 'Get the text by OCR',&lt;br /&gt;
				imageId: 'wsOcr1',&lt;br /&gt;
				onClick: do_hocr&lt;br /&gt;
			} );&lt;br /&gt;
		}&lt;br /&gt;
	} );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
mw.loader.using( 'user.options', function () {&lt;br /&gt;
	var isPage = mw.config.get( 'wgCanonicalNamespace' ) === 'Page',&lt;br /&gt;
		editing = $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1,&lt;br /&gt;
		disableOcr = self.proofreadpage_disable_ocr,&lt;br /&gt;
		dependencies = [ 'jquery.textSelection', 'ext.proofreadpage.page.edit' ],&lt;br /&gt;
		usingBetaToolbar = mw.user.options.get( 'usebetatoolbar' ) === 1,&lt;br /&gt;
		usingOldToolbar = mw.user.options.get( 'showtoolbar' ) === 1,&lt;br /&gt;
		usingCodeMirror = mw.user.options.get( 'codemirror-syntax-highlight' ) === '1';&lt;br /&gt;
	if ( isPage &amp;amp;&amp;amp; editing &amp;amp;&amp;amp; !disableOcr &amp;amp;&amp;amp; ( usingBetaToolbar || usingOldToolbar ) ) {&lt;br /&gt;
		// Set CodeMirror dependency if required.&lt;br /&gt;
		if ( usingCodeMirror ) {&lt;br /&gt;
			dependencies.push( 'ext.CodeMirror.lib' );&lt;br /&gt;
		}&lt;br /&gt;
		// Set dependency for the relevant toolbar module.&lt;br /&gt;
		if ( usingBetaToolbar ) {&lt;br /&gt;
			dependencies.push( 'ext.wikiEditor' );&lt;br /&gt;
		} else if ( usingOldToolbar ) {&lt;br /&gt;
			dependencies.push( 'mediawiki.toolbar' );&lt;br /&gt;
		}&lt;br /&gt;
		// Now run the toolbar customisation.&lt;br /&gt;
		mw.loader.using( dependencies, customiseToolbar );&lt;br /&gt;
	}&lt;br /&gt;
} );&lt;/div&gt;</summary>
		<author><name>wikisource&gt;Billinghurst</name></author>
	</entry>
</feed>