o
    h
                     @   sz   d dl Z d dl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 e d	Ze
 dd
dZdS )    N)defaultdict)urlsplit
urlunsplit)settings)task)get_content_languages   )get_backendszwagtail.frontendcachec              
      sZ  | sd S t ||}|sd S ttdd}|rt ni }ttdt| }tjra|radd| }g }|D ]*}| D ]%}	t|	}
t	|
j
|
jt|d| |
j|
j|
jf}||v rXq8|| q8q4|} tt}| D ]}	|t|	j |	 qg| D ]2\ }  fdd| D }|std	  qx| D ]\}}| D ]	}	td
||	 q||  qqxd S )NWAGTAIL_I18N_ENABLEDFWAGTAILFRONTENDCACHE_LANGUAGESz^/(%s)/|z/%s/c                    s    i | ]\}}|  r||qS  )invalidates_hostname).0backend_namebackendhostnamer   d/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/contrib/frontend_cache/tasks.py
<dictcomp>E   s    z.purge_urls_from_cache_task.<locals>.<dictcomp>z#Unable to find purge backend for %sz[%s] Purging URL: %s)r	   getattrr   r   listkeysUSE_I18Njoinr   r   schemenetlocresubpathqueryfragmentappendr   itemsloggerinfopurge_batch)urlsbackend_settingsbackendswagtail_i18n_enabledcontent_languages	languageslangs_regexnew_urlsisocodeurlupnew_urlurls_by_hostnamebackends_for_hostnamer   r   r   r   r   purge_urls_from_cache_task   sZ   


r5   )NN)loggingr   collectionsr   urllib.parser   r   django.confr   django_tasksr   wagtail.coreutilsr   utilsr	   	getLoggerr$   r5   r   r   r   r   <module>   s    
