
    3 d                     H    d Z ddlmZ ddlmZ ddlmZ  G d d          ZdS )z
StatsMailer extension sends an email when a spider finishes scraping.

Use STATSMAILER_RCPTS setting to enable and give the recipient mail address
    )signals)NotConfigured)
MailSenderc                   0    e Zd Zd Zed             Zd ZdS )StatsMailerc                 0    || _         || _        || _        d S )N)stats
recipientsmail)selfr	   r
   r   s       =lib/python3.11/site-packages/scrapy/extensions/statsmailer.py__init__zStatsMailer.__init__   s    
$			    c                     |j                             d          }|st          t          j        |j                   } | |j        ||          }|j                            |j        t          j                   |S )NSTATSMAILER_RCPTS)signal)	settingsgetlistr   r   from_settingsr	   r   connectspider_closed)clscrawlerr
   r   os        r   from_crawlerzStatsMailer.from_crawler   st    %--.ABB
 	 '(899Cz4008MNNNr   c                    | j                             |          }d}|d                    d | j                                                                         D                       z  }|d|j         dz  }|d                    d |                                D                       z  }| j                            | j        d|j         |          S )NzGlobal stats


c              3   ,   K   | ]\  }}|d d| V  dS z<50z : N .0kvs      r   	<genexpr>z,StatsMailer.spider_closed.<locals>.<genexpr>   s7      VVtq!Q***q**VVVVVVr   z

z stats

c              3   ,   K   | ]\  }}|d d| V  dS r   r    r!   s      r   r%   z,StatsMailer.spider_closed.<locals>.<genexpr>!   s7      LLtq!Q***q**LLLLLLr   zScrapy stats for: )r	   	get_statsjoinitemsnamer   sendr
   )r   spiderspider_statsbodys       r   r   zStatsMailer.spider_closed   s    z++F33!		VVtz7K7K7M7M7S7S7U7UVVVVVV.v{....		LL|7I7I7K7KLLLLLLy~~do/QFK/Q/QSWXXXr   N)__name__
__module____qualname__r   classmethodr   r   r    r   r   r   r      sR          
   [Y Y Y Y Yr   r   N)__doc__scrapyr   scrapy.exceptionsr   scrapy.mailr   r   r    r   r   <module>r7      s           + + + + + + " " " " " "Y Y Y Y Y Y Y Y Y Yr   