
    'j
                         d dl m Z  d dlmZmZ d dlmZ  G d de          Z G d de          Z G d d	e          Z G d
 de          Z	 G d de          Z
 G d de          ZdS )    )datetime)OptionalUnion)
BaseObjectc                   $    e Zd ZdedefdZd ZdS )Linkurltextc                "    || _         || _        dS )zBase class used to generate links in Slack's not-quite Markdown, not quite HTML syntax
        https://docs.slack.dev/messaging/formatting-message-text/#linking_to_urls
        Nr	   r
   )selfr	   r
   s      c/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/slack_sdk/models/messages/__init__.py__init__zLink.__init__   s     			    c                 B    | j         rd}nd}d| j         | | j          dS )N| <>)r
   r	   )r   	separators     r   __str__zLink.__str__   s7    9 	III4484Y4	4444r   N)__name__
__module____qualname__strr   r    r   r   r   r      sE        s #    5 5 5 5 5r   r   c            
       R     e Zd Zdddeeef         dededee         f fdZ xZ	S )DateLinkN)linkdatedate_formatfallbackr   c                    t          |t                    r"t          |                                          }n|}|d| }nd}t	                                          d| d| | |           dS )zText containing a date or time should display that date in the local timezone of the person seeing the text.
        https://docs.slack.dev/messaging/formatting-message-text/#date-formatting
        N^r   z!date^r   )
isinstancer   int	timestampsuperr   )r   r    r!   r"   r   epoch	__class__s         r   r   zDateLink.__init__   s     dH%% 	(())EEEt::DDDAeAAkA4AAQQQQQr   )
r   r   r   r   r   r&   r   r   r   __classcell__r*   s   @r   r   r      s         #R R R HcM"R 	R
 R smR R R R R R R R R Rr   r   c                   @     e Zd ZdddddddZdddedef fd	Z xZS )

ObjectLink#@z	!subteam^)CGUWBSr   )r
   	object_idr
   c                    | j                             |d                                         d          }t                                          | | |           dS )zConvenience class to create links to specific object types
        https://docs.slack.dev/messaging/formatting-message-text/#linking-channels
        r   r0   r   N)prefix_mappinggetupperr(   r   )r   r7   r
   prefixr*   s       r   r   zObjectLink.__init__8   s[     $((1););)=)=sCC3	33$?????r   )r   r   r   r9   r   r   r+   r,   s   @r   r.   r.   .   s         N 79 @ @ @S @ @ @ @ @ @ @ @ @ @ @r   r.   c                        e Zd Z fdZ xZS )ChannelLinkc                 N    t                                          dd           dS )zRepresents an @channel link, which notifies everyone present in this channel.
        https://docs.slack.dev/messaging/formatting-message-text/
        z!channelchannelr   Nr(   r   r   r*   s    r   r   zChannelLink.__init__A   s(     	Zi88888r   r   r   r   r   r+   r,   s   @r   r>   r>   @   s8        9 9 9 9 9 9 9 9 9r   r>   c                        e Zd Z fdZ xZS )HereLinkc                 N    t                                          dd           dS )zRepresents an @here link, which notifies all online users of this channel.
        https://docs.slack.dev/messaging/formatting-message-text/
        z!hereherer   NrA   rB   s    r   r   zHereLink.__init__I   s(     	W622222r   rC   r,   s   @r   rE   rE   H   s8        3 3 3 3 3 3 3 3 3r   rE   c                        e Zd Z fdZ xZS )EveryoneLinkc                 N    t                                          dd           dS )zRepresents an @everyone link, which notifies all users of this workspace.
        https://docs.slack.dev/messaging/formatting-message-text/
        z	!everyoneeveryoner   NrA   rB   s    r   r   zEveryoneLink.__init__Q   s(     	[z:::::r   rC   r,   s   @r   rI   rI   P   s8        ; ; ; ; ; ; ; ; ;r   rI   N)r   typingr   r   slack_sdk.models.basic_objectsr   r   r   r.   r>   rE   rI   r   r   r   <module>rN      sW         " " " " " " " " 5 5 5 5 5 55 5 5 5 5: 5 5 5 R R R R Rt R R R.@ @ @ @ @ @ @ @$9 9 9 9 9$ 9 9 93 3 3 3 3t 3 3 3; ; ; ; ;4 ; ; ; ; ;r   