
    ~Wf
                     Z    d dl mZmZ d dlmZ d dlmZ d dlmZ dZ	 G d de
          ZdS )	    )postdelete)loads)Video)stati  P c                   .    e Zd Zd Zd ZddZd Zd ZdS )	UploadSessionc                    || _         || _        t          |          j        | _        | j        |dd}|                    |           |                    d|          }t          |          d         | _        d| _	        d | _
        d | _        d S )Nh264)	file_size	file_nameprofilesz/videos/upload.jsonlocationinitialized)pandar   r   st_sizer   updater   r   r   statusvideoerror_message)selfr   r   kwargsparamsdatas         S/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/panda/upload_session.py__init__zUploadSession.__init__	   s    
"i0"
 

 	fzz/88dJ/#
!    c              #   `   K   d}	 |                     t                    }|sd S ||fV  |dz   }*)Nr   T   )read
CHUNK_SIZE)r   file_objectir   s       r   _read_chunkszUploadSession._read_chunks   sK      	##J//D )OOO!A	r   r   c                    | j         dk    rgd| _         t          | j                  5 }|                    |           	 |                     |          D ]\  }}|t
          z  }t          | j        ddd                    ||z   ||z   t
          z   dz
  | j	                  t          t
                    d|          }|j        d	k    r5d
| _         t          | j        |                                          | _        |j        dk    r	d| _          nnH# t           $ r"}d| _         t          |          | _        |d }~wt$          $ r d| _         d| _        Y nw xY wd d d            d S # 1 swxY w Y   d S t'          d          )Nr   	uploadingapplication/octet-streamno-cachezbytes {0}-{1}/{2}r   zContent-TypezCache-ControlzContent-RangezContent-Length)headersr      uploaded)	json_attr   errorinterruptedzAlready started)r   openr   seekr$   r!   r   r   formatr   strstatus_coder   r   jsonr   	Exceptionr   KeyboardInterruptKeyError)r   posfchunkr#   indexreses           r   startzUploadSession.start#   s   ;-''%DKdn%% 7s7$($5$5a$8$8 " "q !J"4=,F-7-@-G-GE	SVW\S\]gSghiSikoky-z-z.1*oo	= =
 !&' ' ' ?c11*4DK).tzSXXZZ)P)P)PDJJ _33*1DK!E 4 !   ")DK),QD&G( 7 7 7")DK)6D&&&7-7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 74 ,---sA   E'CDE'
ED99EE'EE''E+.E+c                 @   | j         dk    rt          | j        ddd                    | j                  dd          }t          |j        d                             d	          d
                   }d| _         |                     |           d S t          d          )Nr,   r'   r(   zbytes */{0}0r)   )r*   Range-r   r   )r:   Already succeed)
r   r   r   r3   r   intr*   splitr@   r9   )r   r>   r:   s      r   resumezUploadSession.resumeB   s    ;*$$t} :!+!.!5!5dn!E!E"%	1 1   C ck'*0055a899C'DKJJ3J,---r   c                 ~    | j         dk    r$d| _         d | _        t          | j                  }d S t	          d          )NsuccessabortedrE   )r   r   r   r   r9   )r   r>   s     r   abortzUploadSession.abortP   s@    ;)###DK!%D''CCC,---r   N)r   )__name__
__module____qualname__r   r$   r@   rH   rL    r   r   r	   r	      sd        " " ""  . . . .>. . .. . . . .r   r	   N)requestsr   r   r6   r   modelsr   osr   r!   objectr	   rP   r   r   <module>rU      s    ! ! ! ! ! ! ! !                  
N. N. N. N. N.F N. N. N. N. N.r   