o
    eK                     @   s   d Z ddlZddl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
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ eeZG dd deZdS )z.
This module provides a client class for MMS.
    N)str)bytes)compat)bce_v1_signer)BceBaseClient)bce_http_client)handler)http_methods)requiredc                   @   sH  e Zd ZdZd7ddZeeefedd8ddZ	eeefdd7d	d
Z
eeefedd8ddZeeefdd7ddZeedd8ddZeedd8ddZeeefeefdd9ddZeeefeefdd7ddZeeefeefdd7ddZeeefeefdd7ddZeeefeefdd7ddZeeefeefdd9d d!Zeeefeefdd7d"d#Zeeefeefd$d7d%d&Zeeefeefdd8d'd(Zeeefeefd)d8d*d+Zeeefeefd)d7d,d-Zeeefeefd.d7d/d0Zeeefeefd)d8d1d2Zed3d4 Z			d:d5d6ZdS );	MmsClientz
    mms client
    Nc                 C   s   t | | dS )initN)r   __init__)selfconfig r   PD:\Projects\ConvertPro\env\Lib\site-packages\baidubce/services/mms/mms_client.pyr   '   s   zMmsClient.__init__)lib_nameparamsc                 C   s   d|i}|dur:d|v r|d |d< d|v r|d |d< d|v r&|d |d< d|v r0|d |d< d|v r:|d |d< | j tjdd	d
it||dS )z
        create video lib.
        :param lib_name: video lib name
        :param params: description for this request
        :type params: dict
        :return: **dict**
        nameNdescriptionscoreThresholdZvideoScoreThreshold	frameTypeintervals   /v2/videolib   Content-Type   application/jsonheadersbodyr   _send_requestr	   POSTjsondumpsr   r   r   r   r   r   r   r   create_video_lib+   s(   
zMmsClient.create_video_lib)lib_idc                 C   (   | j tjdt| ddiddi|dS )zr
        delete video lib by lib_id.
        :param lib_id: video lib id
        :return: **BceResponse**
           /v2/videolib/%sr   r      deleteLibById    r   r   r   r   r	   r    r   convert_to_bytesr   r%   r   r   r   r   delete_video_libI      zMmsClient.delete_video_libc                 C   s   d|i}|dur0d|v r|d |d< d|v r|d |d< d|v r&|d |d< d|v r0|d |d< | j tjddd	it||d
S )z
        create image lib.
        :param lib_name: image lib name
        :param params: params for this request
        :type params: dict
        :return: **BceResponse**
        r   Nr   r   r   r   s   /v2/imagelibr   r   r   r   r#   r   r   r   create_image_libW   s$   
zMmsClient.create_image_libc                 C   r&   )zr
        delete image lib by lib_id.
        :param lib_id: image lib id
        :return: **BceResponse**
           /v2/imagelib/%sr   r   r(   r)   r*   r+   r-   r   r   r   delete_image_libs   r/   zMmsClient.delete_image_lib)r   c                 C   s,   d|d i}| j tjdddit||dS )z
        list lib.
        :param params: params for this request
        :type params: dict
        :return: **dict**
        types   /v2/lib/listr   r   r   r   r   r   r   r   r   r   r   list_lib   s   	zMmsClient.list_libc                 C   sb   |d |d d}|dur!d|v r|d |d< d|v r!|d |d< | j tjddd	it||d
S )z
        list media.
        :param params: params for this request
        :type params: dict
        :return: **dict**
        r3   id)r3   r6   NZpageNoZpageSizes   /v2/lib/item/listr   r   r   r   r4   r   r   r   
list_media   s   	zMmsClient.list_media)	video_libsourcec                 C   sR   d|i}|dur||d< |dur||d< | j tjdt| ddit||dS )	a  
        insert a video.
        :param video_lib: video lib
        :type video_lib: string
        :param source: video source
        :type source: string
        :param description: description for this request
        :type description: string
        :param notification: notification for this request
        :type notification: string
        :return: **BceResponse**
        r9   Nr   notificationr'   r   r   r   r   r	   PUTr   r,   r!   r"   r   r8   r9   r   r:   r   r   r   r   r   insert_video   s   zMmsClient.insert_videoc                 C   s(   | j tjdt| ddid|i|dS )z
        get insert video task result.
        :param video_lib: video lib
        :type video_lib: string
        :param source: video source
        :type source: string
        :return: **BceResponse**
        r'   r   r      sourcer*   r   r	   GETr   r,   r   r8   r9   r   r   r   r   get_insert_video_task_result   s   
z&MmsClient.get_insert_video_task_result)video_lib_idmedia_idc                 C   s*   | j tjdt| d|dddi|dS )z
        get insert video task result by id.
        :param video_lib_id: video lib id
        :type video_lib_id: string
        :param media_id: video id
        :type media_id: string
        :return: **BceResponse**
        r'   r)   )s   getInsertResponseById   mediaIdr   r   )r   r   r   r@   r   rD   rE   r   r   r   r   "get_insert_video_task_result_by_id   s   
z,MmsClient.get_insert_video_task_result_by_idc                 C   *   | j tjdt| ddid|d|dS )z
        delete a video.
        :param video_lib: video lib
        :type video_lib: string
        :param source: video source
        :type source: string
        :return: **BceResponse**
        r'   r   r   r)   )s   deleteVideor?   r*   r+   rB   r   r   r   delete_video      
zMmsClient.delete_videoc                 C   rI   )z
        delete a video by id.
        :param video_lib_id: video lib id
        :type video_lib_id: string
        :param media_id: video id
        :type media_id: string
        :return: **BceResponse**
        r'   r   r   r)   )s   deleteVideoByIdrF   r*   r+   rG   r   r   r   delete_video_by_id   rK   zMmsClient.delete_video_by_idc                 C   sX   d|i}|dur||d< |dur||d< | j tjdt| ddidd	it||d
S )a  
        create search video by video task.
        :param video_lib: video lib
        :type video_lib: string
        :param source: video source
        :type source: string
        :param description: description for this request
        :type description: string
        :param notification: notification for this request
        :type notification: string
        :return: **BceResponse**
        r9   Nr   r:   r'   r   r      searchByVideor)   r   r   r   r   r   r	   r    r   r,   r!   r"   r=   r   r   r   !create_search_video_by_video_task  s    z+MmsClient.create_search_video_by_video_taskc                 C   rI   )z
        get search video by video task result.
        :param video_lib: video lib
        :type video_lib: string
        :param source: video source
        :type source: string
        :return: **BceResponse**
        r'   r   r   r)   )rM   r?   r*   r@   rB   r   r   r   %get_search_video_by_video_task_result1     z/MmsClient.get_search_video_by_video_task_result)r8   task_idc                 C   rI   )z
        get search video by video task result by id.
        :param video_lib: video lib
        :type video_lib: string
        :param task_id: video search task id
        :type task_id: string
        :return: **BceResponse**
        r'   r   r   r)   )s   getSearchResponseByTaskIds   taskIdr*   r@   )r   r8   rS   r   r   r   r   +get_search_video_by_video_task_result_by_idE  rR   z5MmsClient.get_search_video_by_video_task_result_by_idc                 C   H   d|i}|dur||d< | j tjdt| ddiddit||d	S )
a)  
        search video by image.
        :param video_lib: video lib
        :type video_lib: string
        :param source: image source
        :type source: string
        :param description: description for this request
        :type description: string
        :return: **BceResponse**
        r9   Nr   r'   r   r      searchByImager)   rN   rO   )r   r8   r9   r   r   r   r   r   r   search_video_by_imageY     zMmsClient.search_video_by_image)	image_libr9   c                 C   sB   d|i}|dur||d< | j tjdt| ddit||dS )a#  
        insert an image.
        :param image_lib: image lib
        :type image_lib: string
        :param source: image source
        :type source: string
        :param description: description for this request
        :type description: string
        :return: **BceResponse**
        r9   Nr   r1   r   r   r   r;   r   rY   r9   r   r   r   r   r   r   insert_images  s   zMmsClient.insert_imagec                 C   rI   )z
        delete a video.
        :param image_lib: image lib
        :type image_lib: string
        :param source: image source
        :type source: string
        :return: **BceResponse**
        r1   r   r   r)   )s   deleteImager?   r*   r+   )r   rY   r9   r   r   r   r   delete_image  rK   zMmsClient.delete_image)image_lib_idrE   c                 C   rI   )z
        delete a video.
        :param image_lib_id: image lib id
        :type image_lib_id: string
        :param media_id: image id
        :type media_id: string
        :return: **BceResponse**
        r1   r   r   r)   )s   deleteImageByIdrF   r*   r+   )r   r]   rE   r   r   r   r   delete_image_by_id  rK   zMmsClient.delete_image_by_idc                 C   rU   )
a)  
        search image by image.
        :param image_lib: image lib
        :type image_lib: string
        :param source: image source
        :type source: string
        :param description: description for this request
        :type description: string
        :return: **BceResponse**
        r9   Nr   r1   r   r   rV   r)   rN   rO   rZ   r   r   r   search_image_by_image  rX   zMmsClient.search_image_by_imagec                 C   s(   |d u r| j S t| j }|| |S N)r   copyZmerge_non_none_values)r   r   Z
new_configr   r   r   _merge_config  s
   
zMmsClient._merge_configc              
   C   s:   |  | |}|d u rtj}t|tjtj|g|||||S r`   )rb   r   Z
parse_jsonr   send_requestr   signZparse_error)r   Zhttp_methodpathr   r   r   r   Zbody_parserr   r   r   r     s   
zMmsClient._send_requestr`   )NN)NNN)NNNNN)__name__
__module____qualname____doc__r   r
   r   r   dictr$   r.   r0   r2   r5   r7   r>   rC   rH   rJ   rL   rP   rQ   rT   rW   r[   r\   r^   r_   staticmethodrb   r   r   r   r   r   r   "   s^    


r   )ri   ra   r!   loggingbuiltinsr   r   Zbaidubcer   Zbaidubce.authr   Zbaidubce.bce_base_clientr   Zbaidubce.httpr   r   r	   Zbaidubce.utilsr
   	getLoggerrf   Z_loggerr   r   r   r   r   <module>   s   
