B
    §0H[†  ã               @   sl   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	 d dl
mZmZ d dlmZ G dd	„ d	eƒZd
S )é    )Úapps)Úsettings)ÚRedirect)Úget_current_site)ÚImproperlyConfigured)ÚHttpResponseGoneÚHttpResponsePermanentRedirect)ÚMiddlewareMixinc                   s.   e Zd ZeZeZd‡ fdd„	Zdd„ Z‡  Z	S )ÚRedirectFallbackMiddlewareNc                s"   t  d¡stdƒ‚tƒ  |¡ d S )Nzdjango.contrib.siteszUYou cannot use RedirectFallbackMiddleware when django.contrib.sites is not installed.)r   Zis_installedr   ÚsuperÚ__init__)ÚselfZget_response)Ú	__class__© úgC:\Users\HIRONO~1\AppData\Local\Temp\pip-install-6bm3nxem\django\django\contrib\redirects\middleware.pyr      s    
z#RedirectFallbackMiddleware.__init__c             C   sÆ   |j dkr|S | ¡ }t|ƒ}d }ytjj||d�}W n tjk
rL   Y nX |d krœtjrœ|j	 
d¡sœytjj||jdd�d�}W n tjk
rš   Y nX |d k	rÂ|jdkr¶|  ¡ S |  |j¡S |S )Ni”  )ÚsiteZold_pathú/T)Zforce_append_slashÚ )Ústatus_codeZget_full_pathr   r   ÚobjectsÚgetZDoesNotExistr   ZAPPEND_SLASHÚpathÚendswithÚnew_pathÚresponse_gone_classÚresponse_redirect_class)r   ÚrequestÚresponseÚ	full_pathZcurrent_siteÚrr   r   r   Úprocess_response   s*    

z+RedirectFallbackMiddleware.process_response)N)
Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r    Ú__classcell__r   r   )r   r   r
   
   s   r
   N)Zdjango.appsr   Zdjango.confr   Zdjango.contrib.redirects.modelsr   Zdjango.contrib.sites.shortcutsr   Zdjango.core.exceptionsr   Zdjango.httpr   r   Zdjango.utils.deprecationr	   r
   r   r   r   r   Ú<module>   s   