
    εg                     2   d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ  e             ej                            d          Zej                            d          Zej                            d	          Zd
 Zd Zd Zd ZdS )    N)YOLO)load_dotenv)ImageProcessingResult)DoesNotExist)datetime
SPACE_NAMEAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYc                 t   t          j        dddt          t                    }t	          j                    }t          j                            |t          j        	                    |                     }t          |d          5 }|                    t          | |           d d d            n# 1 swxY w Y   |S )Ns3nyc3z#https://nyc3.digitaloceanspaces.com)region_nameendpoint_urlaws_access_key_idaws_secret_access_keywb)boto3clientr	   r
   tempfilemkdtempospathjoinbasenameopendownload_fileobjr   )file_keyr   temp_dirtemp_file_pathfs        "/var/www/html/API/process_image.pydownload_imager"      s    	d"(#H(9,A	
C 
C 
CB !!HW\\(BG,<,<X,F,FGGN	nd	#	# 5q
J!4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   B--B14B1c                    t          t          j                    dz             }|                    | dddddddd	  	        }t          j        |            |d         }t          |                                t                    rKt          j	        |                                          }t          |          dk    r|d         d         }|S d S d S )Nz/train12/weights/best.ptFg?   	sourceshowsaveshow_labels	show_confconfsave_txt	save_crop
line_widthr   name)r   r   getcwdpredictremove
isinstancetojsonstrjsonloadslen)	file_pathmodelresultprediction_resultextracted_resultextracted_gun_types         r!   process_imager?      s    7788E]])%eQVbgnq  }B  NS  `a]  b  bFIiq	#**,,S11 :&7&>&>&@&@AA  1$$!1!!4V!<%%4t    c                 D   	 t           j                            |          }||_        t	          |          |_        t	          |          |_        t	          |          |_        d|_        d|_	        t          j                    |_        |                                 d S # t          $ rt t          |t	          |          t	          |          t	          |          t	          |          ddt          j                              }|                                 Y d S w xY w)N)fsLocationName )r9   fiParkingSlots
cars_countfsPartnerIdrB   fsLocationLatfsLocationLong
fdCreateAt)r   objectsgetr9   r5   rD   rE   rF   rG   rH   r   now
fdUpdateAtr(   r   )r9   rD   rE   
partnersidlocationameraw_filedocuments          r!   save_processing_resultrR   .   s   (044K4PP%"%n"5"5!*oo":! "$LNN   (~..:J{++|~~	
 	
 	
 	s   BB! !A:DDc                 |   t          t          j                    dz             }	 |                    | dddddddd	  	        }n*# t          $ r}t          d|            Y d }~d S d }~ww xY w|d         }t          |                                t                    r	 t          j
        |                                          }n/# t          j        $ r}t          d|            Y d }~d S d }~ww xY wd}	d}
|D ])}d	|v r#|d	         d
k    r|	dz  }	|d	         dk    r|
dz  }
*t          | |	|
|||           |	|
fS d S )Nz/park/best.ptFgffffff?r$   r%   zError during model prediction: r   zError decoding JSON: r/   vacant   car)r   r   r0   r1   	Exceptionprintr3   r4   r5   r6   r7   JSONDecodeErrorrR   )r9   rN   rO   rP   r:   r;   er<   r=   rD   rE   objs               r!   process_Parkimager\   J   s   _,--Eie%UZfkru  AF  RW  de  f  f   333444ttttt q	#**,,S11 	#z*;*B*B*D*DEE# 	 	 	-!--...44444	 
# 	$ 	$C}}v;(**"a'NN[E))!OJy.*ZP[\deeez))ts/   A 
A+A&&A+&C C1C,,C1)r6   r   r   r   ultralyticsr   dotenvr   modelsr   mongoenginer   r   environrK   r   r	   r
   r"   r?   rR   r\    r@   r!   <module>rc      s    				         				       ( ( ( ( ( ( $ $ $ $ $ $       Z^^L))
JNN#677 
'>??       8    r@   