U
    á—ˆg
  ã                   @   sŒ   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 ddl
mZ ddlmZ d d	lmZmZ d
d„ ZG dd„ de	ƒZdS )é    )Úrender)ÚJsonResponse)Úcsrf_exempt)Úmethod_decorator)ÚViewé   )ÚPasswordQuery)Ú
SearchForm)ÚprocessÚfuzzc           	      C   s¾   t ƒ }g }d}| jdkrªt | jƒ}| ¡ rª|jd }tj ¡ jddd�}t	j
||dtjd�}|r¦|d	 d	 }|d	 d
 dkr tjj|d�}| |j|jdœ¡ qªd}nd}t| d|||dœƒS )NFÚGETÚqueryÚquestionT©Úflaté   ©ÚlimitZscorerr   r   éF   ©r   ©r   Úanswerzsearch.html)ÚformÚresultsÚ
no_results)r	   Úmethodr   Úis_validÚcleaned_datar   ÚobjectsÚallÚvalues_listr
   Úextractr   Úpartial_ratioÚgetÚappendr   r   r   )	Úrequestr   r   r   r   Úall_queriesÚbest_matchesÚ
best_matchÚresult© r*   úY/var/www/ai-model.devtechnosys.tech/public_html/python-ai-model/password_queries/views.pyÚsearch_queries   s"    


r,   c                   @   s   e Zd Zdd„ ZdS )ÚSearchQueryViewc                 O   sà   g }t |jƒ}| ¡ rÈ|jd }td|› �ƒ tj ¡ jddd�}t	j
||dtjd�}td|ƒ |r¢|d	 d
 dkr¢|d	 d	 }	tjj|	d�}
| |
j|
jdœ¡ |r´t|ddd�S td|dœdd�S ntd|jdœdd�S d S )Nr   zSearching for: r   Tr   r   r   zBest matches:r   r   r   r   r   FéÈ   )ÚsafeÚstatuszNo matches found)Úerrorr   i”  )r0   zInvalid form data)r1   Údetailsi�  )r	   r   r   r   Úprintr   r   r   r    r
   r!   r   r"   r#   r$   r   r   r   Úerrors)Úselfr%   ÚargsÚkwargsr   r   r   r&   r'   r(   r)   r*   r*   r+   r#   (   s"    


zSearchQueryView.getN)Ú__name__Ú
__module__Ú__qualname__r#   r*   r*   r*   r+   r-   '   s   r-   N)Zdjango.shortcutsr   Údjango.httpr   Údjango.views.decorators.csrfr   Údjango.utils.decoratorsr   Údjango.viewsr   Úmodelsr   Úformsr	   Z
fuzzywuzzyr
   r   r,   r-   r*   r*   r*   r+   Ú<module>   s   