Use blob URL for Tesseract to avoid CORS issues (#11964)
This commit is contained in:
		
							parent
							
								
									f31530b74d
								
							
						
					
					
						commit
						7baedcb61e
					
				
					 3 changed files with 17 additions and 6 deletions
				
			
		|  | @ -234,7 +234,7 @@ export function uploadCompose(files) { | |||
|             progress[i] = loaded; | ||||
|             dispatch(uploadComposeProgress(progress.reduce((a, v) => a + v, 0), total)); | ||||
|           }, | ||||
|         }).then(({ data }) => dispatch(uploadComposeSuccess(data))); | ||||
|         }).then(({ data }) => dispatch(uploadComposeSuccess(data, f))); | ||||
|       }).catch(error => dispatch(uploadComposeFail(error))); | ||||
|     }; | ||||
|   }; | ||||
|  | @ -289,10 +289,11 @@ export function uploadComposeProgress(loaded, total) { | |||
|   }; | ||||
| }; | ||||
| 
 | ||||
| export function uploadComposeSuccess(media) { | ||||
| export function uploadComposeSuccess(media, file) { | ||||
|   return { | ||||
|     type: COMPOSE_UPLOAD_SUCCESS, | ||||
|     media: media, | ||||
|     file: file, | ||||
|     skipLoading: true, | ||||
|   }; | ||||
| }; | ||||
|  |  | |||
|  | @ -173,7 +173,17 @@ class FocalPointModal extends ImmutablePureComponent { | |||
|         langPath: `${assetHost}/ocr/lang-data`, | ||||
|       }); | ||||
| 
 | ||||
|       worker.recognize(media.get('url')) | ||||
|       let media_url = media.get('file'); | ||||
| 
 | ||||
|       if (window.URL && URL.createObjectURL) { | ||||
|         try { | ||||
|           media_url = URL.createObjectURL(media.get('file')); | ||||
|         } catch (error) { | ||||
|           console.error(error); | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|       worker.recognize(media_url) | ||||
|         .progress(({ progress }) => this.setState({ progress })) | ||||
|         .finally(() => worker.terminate()) | ||||
|         .then(({ text }) => this.setState({ description: removeExtraLineBreaks(text), dirty: true, detecting: false })) | ||||
|  |  | |||
|  | @ -103,11 +103,11 @@ function clearAll(state) { | |||
|   }); | ||||
| }; | ||||
| 
 | ||||
| function appendMedia(state, media) { | ||||
| function appendMedia(state, media, file) { | ||||
|   const prevSize = state.get('media_attachments').size; | ||||
| 
 | ||||
|   return state.withMutations(map => { | ||||
|     map.update('media_attachments', list => list.push(media)); | ||||
|     map.update('media_attachments', list => list.push(media.set('file', file))); | ||||
|     map.set('is_uploading', false); | ||||
|     map.set('resetFileKey', Math.floor((Math.random() * 0x10000))); | ||||
|     map.set('idempotencyKey', uuid()); | ||||
|  | @ -321,7 +321,7 @@ export default function compose(state = initialState, action) { | |||
|   case COMPOSE_UPLOAD_REQUEST: | ||||
|     return state.set('is_uploading', true); | ||||
|   case COMPOSE_UPLOAD_SUCCESS: | ||||
|     return appendMedia(state, fromJS(action.media)); | ||||
|     return appendMedia(state, fromJS(action.media), action.file); | ||||
|   case COMPOSE_UPLOAD_FAIL: | ||||
|     return state.set('is_uploading', false); | ||||
|   case COMPOSE_UPLOAD_UNDO: | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue