o
    ?Hh^                     @   s*  d 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
mZmZmZmZmZmZ ddlmZmZmZ 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mZ ddlm Z  edde dG dd deeeZ!edde dG dd de!Z"edde dG dd de!Z#edde dG dd de!Z$edde dG dd de!Z%edde dG d d! d!e!Z&ed"de dG d#d$ d$e!Z'ed%de dG d&d' d'e!Z(ed(de dG d)d* d*e!Z)ed+de dG d,d- d-e!Z*ed.de dG d/d0 d0e!Z+ed1de dG d2d3 d3e!Z,ed4de dG d5d6 d6e!Z-ed7de dG d8d9 d9e!Z.ed:de dG d;d< d<e!Z/ed=de dG d>d? d?eZ0ed@de dG dAdB dBeZ1edCde dG dDdE dEeZ2edFde dG dGdH dHeZ3ed.de dG dIdJ dJeZ4dKS )Lzlinebot.models.events module.    )ABCMeta)with_metaclass)Base)DeliveryContext)TextMessageImageMessageVideoMessageAudioMessageLocationMessageStickerMessageFileMessage)
SourceUserSourceGroup
SourceRoom)DeviceUnlink
DeviceLinkScenarioResult)Things)Unsend)VideoPlayComplete)
deprecated)LineBotSdkDeprecatedIn30zUse 'from linebot.v3.webhooks import VideoPlayComplete' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.z3.0.0)reasonversioncategoryc                       s,   e Zd ZdZ					d fdd	Z  ZS )Eventz}Abstract Base Class of Webhook Event.

    https://developers.line.biz/en/reference/messaging-api/#webhook-event-objects
    Nc                    sV   t t| jdi | d| _|| _|| _| |ttt	d| _
|| _| |t| _dS )  __init__ method.

        :param str mode: Channel state
        :param long timestamp: Time of the event in milliseconds
        :param source: Source object
        :type source: T <= :py:class:`linebot.models.sources.Source`
        :param kwargs:
        N)usergrouproom )superr   __init__typemode	timestamp$get_or_new_from_json_dict_with_typesr   r   r   sourcewebhook_event_idget_or_new_from_json_dictr   delivery_context)selfr$   r%   r'   r(   r*   kwargs	__class__r    U/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/linebot/models/events.pyr"   ;   s   
zEvent.__init__NNNNN__name__
__module____qualname____doc__r"   __classcell__r    r    r-   r/   r   4   s    r   zUse 'from linebot.v3.webhooks import MessageEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       s&   e Zd ZdZ		d fdd	Z  ZS )MessageEventa  Webhook MessageEvent.

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

    Event object which contains the sent message.
    The message field contains a message object which corresponds with the message type.
    You can reply to message events.
    NFc              
      sP   t t| jd|||d| d| _|| _| j|tttt	t
ttd|d| _dS )a  __init__ method.

        :param str mode: Channel state
        :param long timestamp: Time of the event in milliseconds
        :param source: Source object
        :type source: T <= :py:class:`linebot.models.sources.Source`
        :param str reply_token: Reply token
        :param message: Message object
        :type message: T <= :py:class:`linebot.models.messages.Message`
        :param bool use_raw_message: Using original Message key as attribute
        :param kwargs:
        r$   r%   r'   message)textimagevideoaudiolocationstickerfile)use_raw_messageNr    )r!   r7   r"   r#   reply_tokenr&   r   r   r   r	   r
   r   r   r9   )r+   r$   r%   r'   rB   r9   rA   r,   r-   r    r/   r"   i   s&   zMessageEvent.__init__)NNNNNFr1   r    r    r-   r/   r7   ^   s
    	r7   zUse 'from linebot.v3.webhooks import FollowEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       "   e Zd ZdZd fdd	Z  ZS )FollowEventzWebhook FollowEvent.

    https://developers.line.biz/en/reference/messaging-api/#follow-event

    Event object for when your account is added as a friend (or unblocked).
    You can reply to follow events.
    Nc                    .   t t| jd|||d| d| _|| _dS )/  __init__ method.

        :param str mode: Channel state
        :param long timestamp: Time of the event in milliseconds
        :param source: Source object
        :type source: T <= :py:class:`linebot.models.sources.Source`
        :param str reply_token: Reply token
        :param kwargs:
        r8   followNr    )r!   rD   r"   r#   rB   r+   r$   r%   r'   rB   r,   r-   r    r/   r"         

zFollowEvent.__init__NNNNr1   r    r    r-   r/   rD          rD   zUse 'from linebot.v3.webhooks import UnfollowEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       rC   )UnfollowEventzWebhook UnfollowEvent.

    https://developers.line.biz/en/reference/messaging-api/#unfollow-event

    Event object for when your account is blocked.
    Nc                    (   t t| jd|||d| d| _dS )r   r8   unfollowNr    )r!   rL   r"   r#   r+   r$   r%   r'   r,   r-   r    r/   r"         	
zUnfollowEvent.__init__NNNr1   r    r    r-   r/   rL          rL   zUse 'from linebot.v3.webhooks import JoinEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       rC   )	JoinEventzWebhook JoinEvent.

    https://developers.line.biz/en/reference/messaging-api/#join-event

    Event object for when your account joins a group or talk room.
    You can reply to join events.
    Nc                    rE   )rF   r8   joinNr    )r!   rS   r"   r#   rB   rH   r-   r    r/   r"      rI   zJoinEvent.__init__rJ   r1   r    r    r-   r/   rS      rK   rS   zUse 'from linebot.v3.webhooks import LeaveEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       rC   )
LeaveEventzWebhook LeaveEvent.

    https://developers.line.biz/en/reference/messaging-api/#leave-event

    Event object for when your account leaves a group.
    Nc                    rM   )r   r8   leaveNr    )r!   rU   r"   r#   rO   r-   r    r/   r"      rP   zLeaveEvent.__init__rQ   r1   r    r    r-   r/   rU      rR   rU   zUse 'from linebot.v3.webhooks import PostbackEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       rC   )PostbackEventzWebhook PostbackEvent.

    https://developers.line.biz/en/reference/messaging-api/#postback-event

    Event object for when a user performs an action on
    a template message which initiates a postback.
    You can reply to postback events.
    Nc                    <   t t| jd|||d| d| _|| _| |t| _dS )a  __init__ method.

        :param str mode: Channel state
        :param long timestamp: Time of the event in milliseconds
        :param source: Source object
        :type source: T <= :py:class:`linebot.models.sources.Source`
        :param str reply_token: Reply token
        :param postback: Postback object
        :type postback: :py:class:`linebot.models.events.Postback`
        :param kwargs:
        r8   postbackNr    )r!   rW   r"   r#   rB   r)   PostbackrY   )r+   r$   r%   r'   rB   rY   r,   r-   r    r/   r"         
zPostbackEvent.__init__r0   r1   r    r    r-   r/   rW          	rW   zUse 'from linebot.v3.webhooks import BeaconEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       rC   )BeaconEventzWebhook BeaconEvent.

    https://developers.line.biz/en/reference/messaging-api/#beacon-event

    Event object for when a user detects a LINE Beacon. You can reply to beacon events.
    Nc                    rX   )a  __init__ method.

        :param str mode: Channel state
        :param long timestamp: Time of the event in milliseconds
        :param source: Source object
        :type source: T <= :py:class:`linebot.models.sources.Source`
        :param str reply_token: Reply token
        :param beacon: Beacon object
        :type beacon: :py:class:`linebot.models.events.Beacon`
        :param kwargs:
        r8   beaconNr    )r!   r]   r"   r#   rB   r)   Beaconr^   )r+   r$   r%   r'   rB   r^   r,   r-   r    r/   r"      r[   zBeaconEvent.__init__r0   r1   r    r    r-   r/   r]     rR   r]   zUse 'from linebot.v3.webhooks import MemberJoinedEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       rC   )MemberJoinedEventzWebhook MemberJoinedEvent.

    https://developers.line.biz/en/reference/messaging-api/#member-joined-event

    Event object for when a user joins a group or room that the bot is in.

    Nc                    rX   )a  __init__ method.

        :param str mode: Channel state
        :param long timestamp: Time of the event in milliseconds
        :param source: Source object
        :type source: T <= :py:class:`linebot.models.sources.Source`
        :param str reply_token: Reply token
        :param joined: Joined object
        :type joined: :py:class:`linebot.models.events.Joined`
        :param kwargs:
        r8   memberJoinedNr    )r!   r`   r"   r#   rB   r)   Joinedjoined)r+   r$   r%   r'   rB   rc   r,   r-   r    r/   r"   B  r[   zMemberJoinedEvent.__init__r0   r1   r    r    r-   r/   r`   8  rK   r`   zUse 'from linebot.v3.webhooks import MemberLeftEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       rC   )MemberLeftEventzWebhook MemberLeftEvent.

    https://developers.line.biz/en/reference/messaging-api/#member-left-event

    Event object for when a user leaves a group or room that the bot is in.

    Nc                    6   t t| jd|||d| d| _| |t| _dS )a_  __init__ method.

        :param str mode: Channel state
        :param long timestamp: Time of the event in milliseconds
        :param source: Source object
        :type source: T <= :py:class:`linebot.models.sources.Source`
        :param left: Left object
        :type left: :py:class:`linebot.models.events.Left`
        :param kwargs:
        r8   
memberLeftNr    )r!   rd   r"   r#   r)   Leftleft)r+   r$   r%   r'   rh   r,   r-   r    r/   r"   d     
zMemberLeftEvent.__init__rJ   r1   r    r    r-   r/   rd   Z  rK   rd   zUse 'from linebot.v3.webhooks import AccountLinkEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       rC   )AccountLinkEventa  Webhook AccountLinkEvent.

    https://developers.line.me/en/docs/messaging-api/reference/#account-link-event

    Event object for when a user has linked his/her LINE account with a provider's service account.
    You can reply to account link events.
    If the link token has expired or has already been used,
    no webhook event will be sent and the user will be shown an error.
    Nc                    rX   )a  __init__ method.

        :param str mode: Channel state
        :param long timestamp: Time of the event in milliseconds
        :param source: Source object
        :type source: T <= :py:class:`linebot.models.sources.Source`
        :param str reply_token: Reply token
        :param link: Link object
        :type link: :py:class:`linebot.models.events.Link`
        :param kwargs:
        r8   accountLinkNr    )r!   rj   r"   r#   rB   r)   Linklink)r+   r$   r%   r'   rB   rm   r,   r-   r    r/   r"     r[   zAccountLinkEvent.__init__r0   r1   r    r    r-   r/   rj   y  s    
rj   zUse 'from linebot.v3.webhooks import ThingsEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       rC   )ThingsEventa<  Webhook ThingsEvent.

    https://developers.line.biz/en/reference/messaging-api/#device-link-event
    https://developers.line.biz/en/reference/messaging-api/#device-unlink-event
    https://developers.line.biz/en/reference/messaging-api/#scenario-result-event

    Event sent from LINE Things Webhook service.
    Nc                    sD   t t| jd|||d| d| _|| _| |tttd| _	dS )a  __init__ method.

        :param str mode: Channel state
        :param long timestamp: Time of the event in milliseconds
        :param source: Source object
        :type source: T <= :py:class:`linebot.models.sources.Source`
        :param str reply_token: Reply token
        :param things: Things object
        :type things: T <= :py:class:`linebot.models.things.Things`
        :param kwargs:
        r8   things)rm   unlinkscenarioResultNr    )
r!   rn   r"   r#   rB   r&   r   r   r   ro   )r+   r$   r%   r'   rB   ro   r,   r-   r    r/   r"     s   
zThingsEvent.__init__r0   r1   r    r    r-   r/   rn     r\   rn   zUse 'from linebot.v3.webhooks import UnsendEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       rC   )UnsendEventzWebhook UnsendEvent.

    https://developers.line.biz/en/reference/messaging-api/#unsend-event

    Event object for when the user unsends a message in a group or room.
    Nc                    re   )al  __init__ method.

        :param str mode: Channel state
        :param long timestamp: Time of the event in milliseconds
        :param source: Source object
        :type source: T <= :py:class:`linebot.models.sources.Source`
        :param unsend: Unsend object
        :type unsend: T <= :py:class:`linebot.models.unsend.Unsend`
        :param kwargs:
        r8   unsendNr    )r!   rr   r"   r#   r)   r   rs   )r+   r$   r%   r'   rs   r,   r-   r    r/   r"     ri   zUnsendEvent.__init__rJ   r1   r    r    r-   r/   rr     rR   rr   zUse 'from linebot.v3.webhooks import VideoPlayCompleteEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       s&   e Zd ZdZ		d fdd	Z  ZS )VideoPlayCompleteEventzWebhook VideoCompleteEvent.

    https://developers.line.biz/en/reference/messaging-api/#video-viewing-complete

    Event object Event for when a user finishes viewing a video at least once.
    Nc                    rX   )a  __init__ method.

        :param str mode: Channel state
        :param long timestamp: Time of the event in milliseconds
        :param source: Source object
        :type source: T <= :py:class:`linebot.models.sources.Source`
        :param str reply_token: Reply token
        :param video_play_complete: VideoPlayComplete object
        :type video_play_complete:
            T <= :py:class:`linebot.models.video_play_complete.VideoPlayComplete`
        :param kwargs:
        r8   videoPlayCompleteNr    )r!   rt   r"   r#   rB   r)   r   video_play_complete)r+   r$   r%   r'   rB   rv   r,   r-   r    r/   r"     s   
zVideoPlayCompleteEvent.__init__r0   r1   r    r    r-   r/   rt     s
    rt   zUse 'from linebot.v3.models import UnknownEvent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       s    e Zd ZdZ fddZ  ZS )UnknownEventzMUnknown event.

    We welcome your contribution to line-bot-sdk-python!
    c                    s    t t| jdi | d| _dS )z1__init__ method.

        :param kwargs:
        unknownNr    )r!   rw   r"   r#   )r+   r,   r-   r    r/   r"     s   
zUnknownEvent.__init__r1   r    r    r-   r/   rw     s    rw   zUse 'from linebot.v3.webhooks import PostbackContent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       rC   )rZ   zZPostback.

    https://developers.line.biz/en/reference/messaging-api/#postback-event
    Nc                    &   t t| jdi | || _|| _dS )a   __init__ method.

        :param str data: Postback data
        :param dict params: JSON object with the date and time
            selected by a user through a datetime picker action.
            Only returned for postback actions via the datetime picker.
        :param kwargs:
        Nr    )r!   rZ   r"   dataparams)r+   rz   r{   r,   r-   r    r/   r"     s   	
zPostback.__init__NNr1   r    r    r-   r/   rZ         rZ   zUse 'from linebot.v3.webhooks import BeaconContent' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       .   e Zd ZdZd fdd	Zedd Z  ZS )r_   zVBeacon.

    https://developers.line.biz/en/reference/messaging-api/#beacon-event
    Nc                    s,   t t| jdi | || _|| _|| _dS )z__init__ method.

        :param str type: Type of beacon event
        :param str hwid: Hardware ID of the beacon that was detected
        :param str dm: Optional. Device message of beacon which is hex string
        :param kwargs:
        Nr    )r!   r_   r"   r#   hwiddm)r+   r#   r   r   r,   r-   r    r/   r"   2  s   
zBeacon.__init__c                 C   s   | j durt| j S dS )zHGet dm(device_message) as bytearray.

        :rtype: bytearray
        N)r   	bytearrayfromhexr+   r    r    r/   device_message@  s   zBeacon.device_messagerQ   )r2   r3   r4   r5   r"   propertyr   r6   r    r    r-   r/   r_   +  s
    r_   zUse 'from linebot.v3.webhooks import JoinedMembers' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       r~   )rb   z]Joined.

    https://developers.line.biz/en/reference/messaging-api/#member-joined-event
    Nc                        t t| jdi | || _dS zi__init__ method.

        :param dict members: Member of users who joined
        :param kwargs:
        Nr    )r!   rb   r"   _membersr+   membersr,   r-   r    r/   r"   P     
zJoined.__init__c                 C      dd | j D S )"Get members as list of SourceUser.c                 S      g | ]	}t |d  dqS userId)user_idr   .0xr    r    r/   
<listcomp>]      z"Joined.members.<locals>.<listcomp>r   r   r    r    r/   r   Z     zJoined.membersNr2   r3   r4   r5   r"   r   r   r6   r    r    r-   r/   rb   I  
    
rb   zUse 'from linebot.v3.webhooks import LeftMembers' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                       r~   )rg   zYLeft.

    https://developers.line.biz/en/reference/messaging-api/#member-left-event
    Nc                    r   r   )r!   rg   r"   r   r   r-   r    r/   r"   g  r   zLeft.__init__c                 C   r   )r   c                 S   r   r   r   r   r    r    r/   r   t  r   z Left.members.<locals>.<listcomp>r   r   r    r    r/   r   q  r   zLeft.membersr   r   r    r    r-   r/   rg   `  r   rg   c                       rC   )rl   zWLink.

    https://developers.line.me/en/docs/messaging-api/reference/#link-object
    Nc                    ry   )z__init__ method.

        :param str result: Indicate whether the link was successful or not.
        :param str nonce: Specified nonce when verifying the user ID.
        Nr    )r!   rl   r"   resultnonce)r+   r   r   r,   r-   r    r/   r"   ~  s   
zLink.__init__r|   r1   r    r    r-   r/   rl   w  r}   rl   N)5r5   abcr   future.utilsr   linebot.models.baser   linebot.models.delivery_contextr   linebot.models.messagesr   r   r   r	   r
   r   r   linebot.models.sourcesr   r   r   linebot.models.thingsr   r   r   r   linebot.models.unsendr   "linebot.models.video_play_completer   r   linebot.deprecationsr   r   r7   rD   rL   rS   rU   rW   r]   r`   rd   rj   rn   rr   rt   rw   rZ   r_   rb   rg   rl   r    r    r    r/   <module>   sl   $	)+" !#&!