o
    ¾Thc  ã                   @   s¾   d Z ddlmZ ddlmZ ddlmZ ddlmZ G dd„ deƒZ	G d	d
„ d
eƒZ
G dd„ deeeƒƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )zlinebot.models.imagemap module.é    )ÚABCMeta)Úwith_metaclassé   )ÚBase)ÚSendMessagec                       ó&   e Zd ZdZ		d‡ fdd„	Z‡  ZS )ÚImagemapSendMessagea  ImagemapSendMessage.

    https://developers.line.biz/en/reference/messaging-api/#imagemap-message

    Imagemaps are images with one or more links. You can assign one link for the entire image
    or multiple links which correspond to different regions of the image.
    Nc           
         s€   t t| ƒjdi |¤Ž d| _|| _|| _|  |t¡| _|  |t	¡| _
g }|r;|D ]}|  |ttdœ¡}	|	r:| |	¡ q(|| _dS )a  __init__ method.

        :param str base_url: Base URL of image.
            HTTPS
        :param str alt_text: Alternative text
        :param base_size: Width and height of base image
        :type base_size: :py:class:`linebot.models.imagemap.BaseSize`
        :param video: Video in imagemap message
        :type video: :py:class:`linebot.models.imagemap.Video`
        :param actions: Action when tapped
        :type actions: list[T <= :py:class:`linebot.models.imagemap.ImagemapAction`]
        :param kwargs:
        Úimagemap)ÚuriÚmessageN© )Úsuperr   Ú__init__ÚtypeÚbase_urlÚalt_textÚget_or_new_from_json_dictÚBaseSizeÚ	base_sizeÚVideoÚvideoÚ$get_or_new_from_json_dict_with_typesÚURIImagemapActionÚMessageImagemapActionÚappendÚactions)
Úselfr   r   r   r   r   ÚkwargsÚnew_actionsÚactionÚ
action_obj©Ú	__class__r   úW/home/air/segue/gpt/backup/venv/lib/python3.10/site-packages/linebot/models/imagemap.pyr   #   s.   ÿÿþÿ
€
zImagemapSendMessage.__init__)NNNNN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__classcell__r   r   r!   r#   r      s
    ÿr   c                       ó"   e Zd ZdZd‡ fdd„	Z‡  ZS )r   z\BaseSize.

    https://developers.line.biz/en/reference/messaging-api/#imagemap-message
    Nc                    ó&   t t| ƒjdi |¤Ž || _|| _dS )uç   __init__ method.

        :param int width: Width of base image (set to 1040pxï¼‰
        :param int height: Height of base imageï¼ˆset to the height
            that corresponds to a width of 1040px
        :param kwargs:
        Nr   )r   r   r   ÚwidthÚheight)r   r,   r-   r   r!   r   r#   r   R   s   
zBaseSize.__init__©NNr$   r   r   r!   r#   r   L   ó    r   c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚImagemapActionzbImagemapAction.

    https://developers.line.biz/en/reference/messaging-api/#imagemap-message
    c                    s    t t| ƒjdi |¤Ž d| _dS )z1__init__ method.

        :param kwargs:
        Nr   )r   r0   r   r   )r   r   r!   r   r#   r   f   s   
zImagemapAction.__init__r$   r   r   r!   r#   r0   `   s    r0   c                       r*   )r   zeURIImagemapAction.

    https://developers.line.biz/en/reference/messaging-api/#imagemap-message
    Nc                    ó4   t t| ƒjdi |¤Ž d| _|| _|  |t¡| _dS )zÊ__init__ method.

        :param str link_uri: Webpage URL
        :param area: Defined tappable area
        :type area: :py:class:`linebot.models.imagemap.ImagemapArea`
        :param kwargs:
        r
   Nr   )r   r   r   r   Úlink_urir   ÚImagemapAreaÚarea)r   r2   r4   r   r!   r   r#   r   v   ó   zURIImagemapAction.__init__r.   r$   r   r   r!   r#   r   p   r/   r   c                       r*   )r   ziMessageImagemapAction.

    https://developers.line.biz/en/reference/messaging-api/#imagemap-message
    Nc                    r1   )zÊ__init__ method.

        :param str text: Message to send
        :param area: Defined tappable area
        :type area: :py:class:`linebot.models.imagemap.ImagemapArea`
        :param kwargs:
        r   Nr   )r   r   r   r   Útextr   r3   r4   )r   r6   r4   r   r!   r   r#   r   ‹   r5   zMessageImagemapAction.__init__r.   r$   r   r   r!   r#   r   …   r/   r   c                       r*   )r3   zÝImagemapArea.

    https://developers.line.biz/en/reference/messaging-api/#imagemap-area-object

    Defines the size of the full imagemap with the width as 1040px.
    The top left is used as the origin of the area.
    Nc                    s2   t t| ƒjdi |¤Ž || _|| _|| _|| _dS )a  __init__ method.

        :param int x: Horizontal position of the tappable area
        :param int y: Vertical position of the tappable area
        :param int width: Width of the tappable area
        :param int height: Height of the tappable area
        :param kwargs:
        Nr   )r   r3   r   ÚxÚyr,   r-   )r   r7   r8   r,   r-   r   r!   r   r#   r   £   s
   	
zImagemapArea.__init__©NNNNr$   r   r   r!   r#   r3   š   s    r3   c                       r   )r   z–Video.

    https://developers.line.biz/en/reference/messaging-api/#imagemap-message

    Defines the properties of the video object in imagemap.
    Nc                    sB   t t| ƒjdi |¤Ž || _|| _|  |t¡| _|  |t¡| _	dS )a¤  __init__ method.

        :param str original_content_url: URL of the video file
        :param str preview_image_url: URL of the preview image
        :param area: Defined video area
        :type area: :py:class:`linebot.models.imagemap.ImagemapArea`
        :param external_link: Defined video external link
        :type external_link: :py:class:`linebot.models.imagemap.ExternalLink`
        :param kwargs:
        Nr   )
r   r   r   Úoriginal_content_urlÚpreview_image_urlr   r3   r4   ÚExternalLinkÚexternal_link)r   r:   r;   r4   r=   r   r!   r   r#   r   ¼   s
   zVideo.__init__r9   r$   r   r   r!   r#   r   ´   s
    ÿr   c                       r*   )r<   z–ExternalLink.

    https://developers.line.biz/en/reference/messaging-api/#imagemap-message

    Defines URL and label of external link in video.
    Nc                    r+   )zz__init__ method.

        :param str link_uri: Webpage URL
        :param str label: Label
        :param kwargs:
        Nr   )r   r<   r   r2   Úlabel)r   r2   r>   r   r!   r   r#   r   Ø   s   
zExternalLink.__init__r.   r$   r   r   r!   r#   r<   Ð   s    r<   N)r(   Úabcr   Úfuture.utilsr   Úbaser   Úsend_messagesr   r   r   r0   r   r   r3   r   r<   r   r   r   r#   Ú<module>   s   2