
    Oj                     n    S SK Jr  S SKJr  S SKJrJrJr  SSKJ	r	  SSK
JrJrJrJr  \\S 5       5       rg)	    )csrf_exempt)require_POST)HttpResponseBadRequestHttpResponseServerErrorHttpResponse   )WebMentionResponse)url_resolvesfetch_and_validate_sourceSourceFetchErrorTargetNotFoundErrorc                    SU R                   ;   a  SU R                   ;   a  U R                   R                  S5      nU R                   R                  S5      nS n[        U5      (       d  [        S5      $   [        R
                  R                  XS9n[        X5      nUR                  XU5        [        SSS9$ [        S5      $ ! [        R                   a    [	        5       n NRf = f! [        [        4 a.  nUR                  5         [        [        U5      5      s S nA$ S nAf[         a  n[        [        U5      5      s S nA$ S nAff = f)	Nsourcetargetz6Target URL did not resolve to a resource on the server)r   response_toz(The webmention was successfully received   )statusz.webmention source and/or target not in request)POSTgetr
   r   r	   objectsDoesNotExistr   updater   r   r   
invalidatestr	Exceptionr   )requestr   r   
webmentionresponse_bodyes         /opt/fre/webmention/views.pyreceiver!   	   s$    7<<H$<!!(+!!(+
F##)*bcc	32/77;;6;^
 6fEMfm< JSVWW &&VWW &22 2/1
2 !"56 	2!!#)#a&11 	3*3q622	3sN   6C &C) C&#C) %C&&C) )E9#D"E"E/EEEN)django.views.decorators.csrfr   django.views.decorators.httpr   django.httpr   r   r   modelsr	   
resolutionr
   r   r   r   r!        r    <module>r)      s8    4 5 U U & f f X  Xr(   