
    Evg1                         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dS )    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<   dS )SitemapIndexItemlocationNlast_mod)__name__
__module____qualname__str__annotations__r   bool     Z/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/contrib/sitemaps/views.pyr   r      s+         MMMHdr   r   c                 <     t                      fd            }|S )Nc                 4     | g|R 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   s4    41$111&11+F(r   r   )r"   r#   s   ` r   x_robots_tagr$      s3    
4[[    [
 Lr   c                 ,   t          |t          j                  s/t          j                            |t          j        j                  }t          j        |          r$t          j        |t          j        j                  }| |n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      s|    
 k8#455 P'//X]=NOO%% N)+x7H7LMM)1;;s?K7X7XXr   sitemap_index.xmlapplication/xml%django.contrib.sitemaps.views.sitemapc           	         | j         }t          |           }g }d}d }	|                                D ]\  }
}t          |          r
 |            }|j        |n|j        }t          |d|
i          }|d|j        |}|                                }|r|t          |	|          }	nd}|	                    t          ||                     t          d|j        j        dz             D ]*}|	                    t          |d||                     +|r&|	r$d	t          |	                                          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   r:   template_namer<   sitemap_url_namereq_protocolreq_sitesitesall_indexes_lastmodlatest_lastmodr6   siter@   sitemap_urlabsolute_urlsite_lastmodpager   s                     r   indexrT   *   s    >L((HEN!))   D>> 	466D#'=#8<<dm.	77KLLL&.hhM..00 	,'!4^\!R!R&+#%lLAABBB!T^59:: 	 	DLL lllDD!A<PP   	  ~ "In.F.F.H.H$I$IJ	U!   r   sitemap.xmlc                    | j         }t          |           }| ||vrt          d|z            ||         g}n|                                }| j                            dd          }d }	d}
g }|D ]}	 t          |          r
 |            }|                    |                    |||                     |
r&t          |dd           }|t          |	|          }	nd}
p# t          $ r t          d|z            t          $ r t          d	|z            w xY w|
r(|	r#d
t          |	                                          ind }nd }t          | |d|i||          S )Nz$No sitemap available for section: %rpr8   T)rS   rO   r@   rN   FzPage %s emptyzNo page '%s'r9   urlsetr;   )r=   r   r	   valuesGETgetr?   extendget_urlsgetattrr1   r   r   r   rG   r
   )r   r:   r6   rH   r<   rJ   rK   mapsrS   lastmodall_sites_lastmodurlsrO   rR   r   s                  r   sitemaprc   [   s    >L((H(""@7JKKK!"  ;??3""DGD 1 1	1~~ tvvKK4hVVWWW  .&t-=tDD+1'<HHGG(-% 	2 	2 	2/D0111 	1 	1 	1.4/000	1  GNX?Ig.?.?.A.A$B$BCCTX	4!   s   3A,C  8D)r2   r3   r4   )NrU   r3   )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   rT   rc   r   r   r   <module>rm      sl    ! ! ! ! ! !       ; ; ; ; ; ; = = = = = = = =       5 5 5 5 5 5       ! ! ! ! ! ! ' ' ' ' ' '        
  	Y 	Y 	Y  &"<- - - -`  "0 0 0 0 0 0r   