
    /h                        d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlZd dlZd dlZd dlZd dlmZ  ede      Zh d	Zd
dhZej,                  j/                  ddd      Zej,                  j/                  ddd      Z ej4                  ed        ej4                  ed       d Zej9                  ddg      d        Zd Zy)    )	Blueprintrequestjsonify)secure_filename)User)Image)DoesNotExistN)jwt_required	upload_bp>   jpgpngjpegz	image/pngz
image/jpegpublicimagesuploadsoutput_filesT)exist_okc                     d| j                   v xrG | j                  t        v xr3 | j                   j                  dd      d   j	                         t
        v S )N.   )filenamemimetypeALLOWED_MIME_TYPESrsplitlowerALLOWED_EXTENSIONS)files    //var/www/html/eduruby.in/routes/image_upload.pyallowed_filer      sT    t}} 	F++	FS!$Q'--/3EE    z/uploadPOST)methodsc                     t         j                  j                  d      } | st        ddi      dfS 	 t        j
                  j                  |       }t         j                  j                  d      }|rt        |t              st        d	d
d      dfS g g }}|D ]  }|rt        |      rt        |j                        }t        t        j                                d| }t         j"                  j%                  t&        |      }|j)                  |       |j+                  t         j"                  j-                  |             |j+                  |       t        d	dd      dfc S  |st        d	dd      dfS t/        | dj%                  |            j)                         }	d|  dt1        |	j2                         d}
t         j"                  j%                  t4        |
      }t7        ||      \  }}}|st        d	d|d      dfS |	j9                  ||       t        dd||d      S # t        $ r t        ddi      dfcY S w xY w)NuseriderrorzUser ID is requiredi  )idzUser not foundi  r   Fz"No images provided in the request.)statusmessage_z,Invalid file type. Only JPG, PNG are allowedzNo valid images uploaded.,)user_idimageextracted_text_z.jsonzError executing OCR script.)r'   r(   detailsi  )output_fileextracted_textTz/Image uploaded and text extracted successfully.)r'   r(   r/   r0   )r   formgetr   r   objectsr	   filesgetlist
isinstancelistr   r   r   inttimeospathjoinUPLOAD_FOLDERsaveappendabspathr   strr&   OUTPUT_FOLDERrun_python_scriptupdate)r$   userr4   
image_urlsimage_namesr   r   unique_name	save_pathimage_recordoutput_filenameoutput_file_pathsuccessr0   r%   s                  r   upload_imagesrN   !   s@    \\h'F!678#==9||6* MM!!(+E
5$/%4XYZ\___ "J 	nL&&t}}5H -.az:K]K@IIIi bggooi89{+e8fghjmmm	n %4OPQSVVV hh{# df 
 (xq\__1E0FeLOww||M?C%6zCS%T"G^U%4Q^cdegjjj $%  
 D'(	  U  9!123S889s    H* *IIc                    d}t         j                  j                  dd      }t         j                  j                  dd      }d||d|dg| d|}	 t        j                  |d	d	d	
      }t        |d      5 }t        j                  |      }d d d        d	dfS # 1 sw Y   xY w# t        j                  $ r'}	dd |	j                  xs |	j                  fcY d }	~	S d }	~	wt        $ r}	dd t        |	      fcY d }	~	S d }	~	ww xY w)Nz)/var/www/html/eduruby.in/venv/bin/python3ocrzOCR.pyzObj_detector_model.ptz/usr/bin/sudoz--model_pathz--imagesz--output_fileT)capture_outputtextcheckr F)r:   r;   r<   
subprocessrunopenjsonloadCalledProcessErrorstderrstdout	ExceptionrA   )
image_pathsr/   python_pathscript_path
model_pathcommandresultfr0   es
             r   rC   rC   ]   s   =K'',,uh/Ke%<=J 	k
 ! 		 %	G#4tT+s# 	*q!YYq\N	*^R''	* 	* (( 1dAHH000 #dCF""#sH   %B& 7BB& B#B& &C?9CC?C?'C:4C?:C?)flaskr   r   r   werkzeug.utilsr   models.userr   models.imager   mongoengine.errorsr	   r:   rV   rY   r9   utils.jwt_servicer
   __name__r   r   r   r;   r<   r=   rB   makedirsr   routerN   rC    r    r   <module>rq      s    - - *   + 	    *k8,	 , !<0  Xx;Xx@ MD ) MD ) VH-7 .7t#r    