
    u*e|              	      (   d Z ddlmZ ddlZddlmZ dddZd	 Zd
 Zd Z	ddZ
d Zedk    rdddlZddlZej        dd         \  ZZZ ee          5 Z e ee ej        e                               ddd           dS # 1 swxY w Y   dS dS )z%
Generate RSS feed from channeldata.
    )annotationsN)minidomd   returnlist[tuple[str, dict]]c                h    t          | d                                         d d          d |         S )Npackagesc                :    | d                              dd          S )N   	timestampr   get)items    5lib/python3.11/site-packages/conda_index/index/rss.py<lambda>z%get_recent_packages.<locals>.<lambda>   s    a[!44     T)keyreverse)sorteditems)channeldatathreshold_packagess     r   get_recent_packagesr      sF    J%%''44   	 r   c                P    t          j        dt          j        |                     S )Nz%a, %d %b %Y %T GMT)timestrftimegmtime)r   s    r   _iso822r      s    =.I0F0FGGGr   c                    d|  d|  dt          |           d|  dt          t          j                              t          t          j                              dS )Nzanaconda.org/zhttps://conda.anaconda.org/zThe most recent z updates for .)titlelinkdescriptionpubDatelastBuildDate)lenr   r   )channel_namer	   s     r   _get_channelr(      se    ///<l<<U#h--UUlUUU49;;'' --  r   c           
     l    |  d| dd                     t          d |D                                  dS )N z [z, c                    h | ]}|S  r,   ).0xs     r   	<setcomp>z_get_title.<locals>.<setcomp>"   s    1E1E1E!1E1E1Er   ])joinr   )nameversionsubdirss      r   
_get_titler5   !   sD    JJWJJ		&1E1EW1E1E1E*F*F G GJJJJr   r	   c                z   g }| D ]\  }fdddfd
}t          | d           d                     |dd           d	           d
           d          t           d                     d          d}|                    d |                                D                        |S )Nc                .                         |           S Nr   )r.   packages    r   __z_get_items.<locals>.__*   s    ;;q>>!r   zNo description.)defaultc                <    fd|D             D ]}|         c S | S )Nc                *    g | ]} |          |S r,   r,   )r-   ar:   s     r   
<listcomp>z0_get_items.<locals>.coalesce.<locals>.<listcomp>.   s&    111a22a551111r   r,   )r;   argsargr:   r9   s      r   coalescez_get_items.<locals>.coalesce-   s;    11114111 $ $s|###Nr   r3   r4   r#   summarydoc_urldev_url
source_urlr   home)r!   r#   r"   commentsguidr$   sourcec                    i | ]
\  }}|||S r,   r,   )r-   kvs      r   
<dictcomp>z_get_items.<locals>.<dictcomp><   s#    999tq!q9a999r   )r5   r   appendr   )r	   r   r2   rB   r   r:   r9   s        @@r   
_get_itemsrP   %   s   E! ; ;g	" 	" 	" 	" 	" %6 	 	 	 	 	 	 	 	  bbmmRR	]]CC#8M9==ByMM9B|$$rr+//bjj	
 	
 	99tzz||999::::Lr   c                   t          j        d          dfd}t          |          }                    d          } ||t	          | |                     t          |          D ]8}                    d          } |||           |                    |           9j        }|                    |                               d	
          S )Nz<rss version='2.0'></rss>nodeminidom.Elementstringsdict[str, str]c                    |                                 D ]d\  }}                    |          }|                                        t	          |                               |                     |           ed S r8   )r   createElementappendChildcreateTextNodestr)rR   rT   r   valueenewdocs        r   append_stringszget_rss.<locals>.append_stringsC   sx    !--// 	  	 JC!'!5!5c!:!:AMM&//E

;;<<<Q	  	 r   channelr   z  )indent)rR   rS   rT   rU   )	r   parseStringr   rW   r(   rP   rX   documentElementtoprettyxml)	r'   r   r^   r	   r_   r9   r   rssr]   s	           @r   get_rssre   @   s    &23NOOF            #;//H%33I>>GN7Lx@@AAAh'' " "##F++tW%%%D!!!!!1COOGT***r   __main__r   )r   )r   r   )r	   r   )__doc__
__future__r   r   xml.domr   r   r   r(   r5   rP   re   __name__jsonsysargvr_   channeldata_fnthreshold_daysopenfdprintloadr,   r   r   <module>rt      s    # " " " " "           H H H  K K K   6+ + +2 zKKKJJJ.1hqrrl+G^^	n		 /gggyty}}--.../ / / / / / / / / / / / / / / / / / s   $BB	B	