def thread_function(image): input_file = image.get_full_file_path() rect = Detector.get_rect(input_file) coordinates = Image.prepare_coordinates(rect) image.coordinates = json.dumps(coordinates) image.status = Image.IMAGE_STATUS_TEXT_DETECTED image.save() return True
def rescan(): images = Image.objects() if images.__len__ == 0: return for image in images: thread = Thread(target=divide_image, args=(10, )) thread.start() thread.join()
def show_image(file_path): if not g.current_user.has_access_to_see_image(): abort(403) image = Image.objects(file_path=file_path) if not image: abort(404) image = image.get() return image.to_json()
def delete_image(file_path): if not g.current_user.has_access_to_delete_image(): abort(403) image = Image.objects(file_path=file_path) if not image: abort(404) image = image.get() image.delete_with_relations() return jsonify(success=True)
def recognize(file_path): image = Image.objects(file_path=file_path) if not image: abort(404) image = image.get() if threading.active_count() >= THREADS_MAX_COUNT: raise Exception('Threads limit reached') x = threading.Thread(target=thread_function, args=(image, )) x.start() return jsonify({'started': True})
def update_image(file_path): image = Image.objects(file_path=file_path) data = request.json if not image: abort(404) image = image.get() if not g.current_user.has_access_to_update_image(image.uploaded_by): abort(403) image.update_data(data) image.save() return image.to_json()
def recognize_image(file_path): if not g.current_user.has_access_to_recognize_image(): abort(403) image = Image.objects(file_path=file_path) if not image: abort(404) image = image.get() if not image.can_be_recognized(): abort(405) image.status = Image.IMAGE_STATUS_ON_PROCESSING image.save() response = TextRecognizer.recognize(image.file_path) return response
def create_image(): if not g.current_user.has_access_to_create_image(): abort(403) data = request.form image = Image() image.insert_data(data) if 'file' not in request.files: return jsonify({'error': 'File not uploaded.'}), 400 file = request.files['file'] if file.filename == '': return jsonify({'error': 'File not uploaded.'}), 400 image.generate_file_path() image.original_filename = file.filename image.uploaded_by = g.current_user.login image.file_extension = image.get_uploaded_file_ext() if not image.upload(file): return jsonify({'error': 'This file cannot be uploaded.'}), 400 image.set_image_sizes() image.save() return image.to_json()