
    h	                        S r SSKrSSKrSSKJr  SSKJrJr   " S S\R                  5      r	 " S S\R                  5      r
\" \R                  5       " S	 S
\R                  5      5       r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r/ SQrg)zzImplement standard (and unused) TCP protocols.

These protocols are either provided by inetd, or are not provided at all.
    N)implementer)
interfacesprotocolc                       \ rS rSrSrS rSrg)Echo   z;
As soon as any data is received, write it back (RFC 862).
c                 :    U R                   R                  U5        g N)	transportwriteselfdatas     ]/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/twisted/protocols/wire.pydataReceivedEcho.dataReceived   s    T"     N__name__
__module____qualname____firstlineno____doc__r   __static_attributes__r   r   r   r   r      s    #r   r   c                       \ rS rSrSrS rSrg)Discard   z&
Discard any received data (RFC 863).
c                     g r
   r   r   s     r   r   Discard.dataReceived    s    r   r   Nr   r   r   r   r   r      s    r   r   c                   4    \ rS rSrSrSrS rS rS rS r	Sr
g	)
Chargen%   z%
Generate repeating noise (RFC 864).
sG   @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&?c                 <    U R                   R                  U S5        g )Nr   )r   registerProducerr   s    r   connectionMadeChargen.connectionMade-   s    ''a0r   c                 N    U R                   R                  U R                  5        g r
   )r   r   noiser&   s    r   resumeProducingChargen.resumeProducing0   s    TZZ(r   c                     g r
   r   r&   s    r   pauseProducingChargen.pauseProducing3       r   c                     g r
   r   r&   s    r   stopProducingChargen.stopProducing6   r0   r   r   N)r   r   r   r   r   r*   r'   r+   r.   r2   r   r   r   r   r"   r"   %   s#     XE1)r   r"   c                   $    \ rS rSrSrS rS rSrg)QOTD:   z&
Return a quote of the day (RFC 865).
c                     U R                   R                  U R                  5       5        U R                   R                  5         g r
   )r   r   getQuoteloseConnectionr&   s    r   r'   QOTD.connectionMade?   *    T]]_-%%'r   c                     g)z2
Return a quote. May be overrriden in subclasses.
s'   An apple a day keeps the doctor away.
r   r&   s    r   r8   QOTD.getQuoteC   s     <r   r   N)r   r   r   r   r   r'   r8   r   r   r   r   r5   r5   :   s    (<r   r5   c                   $    \ rS rSrSrS rS rSrg)WhoJ   z'
Return list of active users (RFC 866)
c                     U R                   R                  U R                  5       5        U R                   R                  5         g r
   )r   r   getUsersr9   r&   s    r   r'   Who.connectionMadeO   r;   r   c                     g)z.
Return active users. Override in subclasses.
s   root
r   r&   s    r   rB   Who.getUsersS   s     r   r   N)r   r   r   r   r   r'   rB   r   r   r   r   r?   r?   J   s    (r   r?   c                       \ rS rSrSrS rSrg)DaytimeZ   z0
Send back the daytime in ASCII form (RFC 867).
c                     U R                   R                  [        R                  " [        R                  " [        R                  " 5       5      5      S-   5        U R                   R                  5         g )Ns   
)r   r   timeasctimegmtimer9   r&   s    r   r'   Daytime.connectionMade_   sA    T\\$++diik*BCgMN%%'r   r   Nr   r   r   r   r   r'   r   r   r   r   rG   rG   Z   s    (r   rG   c                       \ rS rSrSrS rSrg)Timed   z8
Send back the time in machine readable form (RFC 868).
c                     [         R                  " S[        [        R                  " 5       5      5      nU R                  R                  U5        U R                  R                  5         g )Nz!i)structpackintrJ   r   r   r9   )r   results     r   r'   Time.connectionMadei   s?    T3tyy{#34V$%%'r   r   NrN   r   r   r   rP   rP   d   s    (r   rP   )r   r   r"   r5   r?   rG   rP   )r   rS   rJ   zope.interfacer   twisted.internetr   r   Protocolr   r   	IProducerr"   r5   r?   rG   rP   __all__r   r   r   <module>r]      s      & 1#8 #h  Z!!"h  #(<8 < (

  (h (	(8 	( Kr   