
    k"g1                         d dl Z d dlmZ d dlmZ d dlmZ d dl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 e G d d             Zd Zd Ze	 	 	 dd       Ze	 	 	 dd       Zy)    N)	dataclasswraps)get_current_site)	EmptyPagePageNotAnInteger)Http404)TemplateResponse)reverse)timezone)	http_datec                   &    e Zd ZU eed<   dZeed<   y)SitemapIndexItemlocationNlast_mod)__name__
__module____qualname__str__annotations__r   bool     V/var/www/html/djangosite/lib/python3.12/site-packages/django/contrib/sitemaps/views.pyr   r      s    MHdr   r   c                 .     t                fd       }|S )Nc                 >     | g|i |}d|j                   d<   |S )Nznoindex, noodp, noarchivezX-Robots-Tag)headers)requestargskwargsresponsefuncs       r   innerzx_robots_tag.<locals>.inner   s,    1$1&1+F(r   r   )r"   r#   s   ` r   x_robots_tagr$      s     
4[ 
 Lr   c                 L   t        |t        j                        s8t        j                  j                  |t        j                  j                        }t        j                  |      r.t        j                  |t        j
                  j                        }| |S t        | |      S )z^
    Returns the latest `lastmod` where `lastmod` can be either a date or a
    datetime.
    )

isinstancedatetimecombinetimeminr   is_naive
make_awareutcmax)current_lastmodnew_lastmods     r   _get_latest_lastmodr1      sy    
 k8#4#45''//X]]=N=NO%))+x7H7H7L7LM)1;Xs?K7XXr   c           	      |   | j                   }t        |       }g }d}d }	|j                         D ]  \  }
}t        |      r |       }|j                  |n|j                  }t        |d|
i      }|d|j                  |}|j                         }|r|t        |	|      }	nd}|j                  t        ||             t        d|j                  j                  dz         D ]"  }|j                  t        |d||             $  |r|	rd	t        |	j                               i}nd }t!        | |d
|i||      S )NTsection)r    z://F      z?p=Last-Modifiedsitemapscontent_typer   )schemer   itemscallableprotocolr   domainget_latest_lastmodr1   appendr   range	paginator	num_pagesr   	timestampr
   )r   r7   template_namer9   sitemap_url_namereq_protocolreq_sitesitesall_indexes_lastmodlatest_lastmodr3   siter=   sitemap_urlabsolute_urlsite_lastmodpager   s                     r   indexrQ   *   sI    >>L(HEN!)  D>6D#'==#8<dmm.	77KL&.M..0'!4^\!R&+#%lLAB!T^^559: 	DLL lD!A<P	!, ~"In.F.F.H$IJ	U! r   c                 R   | j                   }t        |       }|||vrt        d|z        ||   g}n|j                         }| j                  j                  dd      }d }	d}
g }|D ]X  }	 t        |      r |       }|j                  |j                  |||             |
rt        |dd       }|t        |	|      }	nd}
Z |
r |	rd
t        |	j                               ind }nd }t        | |d|i||      S # t        $ r t        d|z        t        $ r t        d	|z        w xY w)Nz$No sitemap available for section: %rpr5   T)rP   rL   r=   rK   FzPage %s emptyzNo page '%s'r6   urlsetr8   )r:   r   r	   valuesGETgetr<   extendget_urlsgetattrr1   r   r   r   rD   r
   )r   r7   r3   rE   r9   rG   rH   mapsrP   lastmodall_sites_lastmodurlsrL   rO   r   s                  r   sitemapr_   [   s\    >>L(H("@7JKK!" ;;??3"DGD 1	1~vKK4hVW &t-=tD+1'<HG(-%1" GN?Ig.?.?.A$BCTX	4!   	2/D011 	1.4/00	1s   +AC88.D&)zsitemap_index.xmlapplication/xmlz%django.contrib.sitemaps.views.sitemap)Nzsitemap.xmlr`   )r'   dataclassesr   	functoolsr   django.contrib.sites.shortcutsr   django.core.paginatorr   r   django.httpr	   django.template.responser
   django.urlsr   django.utilsr   django.utils.httpr   r   r$   r1   rQ   r_   r   r   r   <module>rj      s     !  ; =  5  ! '   
	Y  &"<- -`  "0 0r   