o
    VAb4                     @   sP  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 d dlmZ d d	lmZ d d
lmZmZmZ d dlmZ d dlmZmZ d dlZd dlZd dlZd dlZd dlmZ d dlZ d dlZ d dl!Z!dd Z"dd Z#i a$edddd Z%edddd Z&edddd Z'edddd Z(dd Z)dd Z*dd  Z+dS )!    )renderredirect)HttpResponse   )Details)Customer)RedirectView)login_required)messages)User)authenticateloginlogout)Sum)datetime	timedeltaNc                 C   
   t | dS )Nzregister.htmlr   request r   5C:\Users\DAVID\Desktop\project\apps\routeros\views.pyregister      
r   c                 C   s   | j dkrE| jd}| jd}z	tjj|d}W n*   t| tjd t| ||d}|d ur<t	| | t
d Y S t| tjd Y t| d	S )
NPOSTusernamepassword)r   z$username or password does not exist.)r   r   home zlogin_register.html)methodr   getr   objectr
   add_messageINFOr   r   r   r   )r   r   r   userr   r   r   
user_login   s   


r%   )Z	login_urlc              
   C   s  zt jddddd}| }|d}|d}|d}|d	}| }| }| }	| }
| }t|}t|}t|}t|
}t|	}	tj	
td
}|D ]Q}|d }|rd|}|d}| }|D ]&}|d dkry|d }g d}|fdd}|t|}||||||	|daqmqUd}d|}|||||	||daqUW n t jjy   t| tjd Y nw t| dtdS )N
172.16.0.1adminmakenadavid@comTr   r   Zplaintext_login/ip/hotspot/active/z/ip/hotspot/user//ppp/secret/z/ppp/active/amountZamount__sumz{:,}z
/interfacenamezWAN-1zrx-byte))l           z PB)l        z TB)i   @z GB)i   z MB)i   z KB)r   )z bytez bytesc                 S   sV   |D ]
\}}| |kr nqt | | }t|tr%|\}}|dkr#|}n|}t|| S )Nr   )int
isinstancetuplestr)bytesunitsZfactorsuffixZamosingularmultipler   r   r   pretty_sizeh   s   
zhome.<locals>.pretty_size)gigadfresult	all_userspppoe_userspppoe_a_allallr   )r9   r:   r;   r<   r=   r>   r8   KNo connection could be made because the target machine actively refused it.z
index.htmlcontext)routeros_apiRouterOsApiPoolget_apiget_resourcer    pdZ	DataFramelenr   objects	aggregater   formatr.   mydict
exceptionsRouterOsApiConnectionErrorr
   r"   r#   r   )r   
connectionapilist_addressZhotspot_usersr<   Zpppoe_activeZall_usertestr=   Z	ppp_usersZppp_ur9   r:   r;   transr,   numr>   Zlist_2Ztest2cZwanZUNITS_MAPPINGr7   r8   r   r   r   r   .   sp   







	'
:r   c                 C   sx   z!t jddddd}| }|d}| }t|}||d}W n t jjy4   t	| tj
d Y nw t| d	|d
S )Nr&   r'   r(   Tr)   r+   )r>   r9   r?   zapp-user-list.htmlr@   )rB   rC   rD   rE   r    rG   rL   rM   r
   r"   r#   r   )r   rN   rO   Zlist_users_pppoeZ
list_usersr>   usersr   r   r   	user_list   s   

rV   c                 C   r   )Nznavbar.htmlr   r   r   r   r   navbar   s   
rW   c                 C   s    t j }d|i}t| d|dS )Nsalez
sales.htmlr@   )r   rH   r>   r   )r   rX   r>   r   r   r   sales   s   
rY   c                 C   r   )Nzapp-user-view-billing.htmlr   r   r   r   r   view_customers   r   rZ   c           	      C   sd   t jddddd}| }|d}| }|D ]}|d }|d }||d	}t| d
|d  S d S )Nr&   r'   r(   Tr)   r*   r$   id)ppkzdelete.htmlr@   )rB   rC   rD   rE   r    r   )	r   rN   rO   rP   r$   Zdeletr\   r]   Zall_delr   r   r   delete_user   s   

r^   c                 C   r   )Nzanalytics.htmlr   r   r   r   r   	analytics   r   r_   ),Zdjango.shortcutsr   r   django.httpr   modelsr   r   django.views.generic.baser   Zdjango.contrib.auth.decoratorsr	   django.contribr
   django.contrib.auth.modelsr   django.contrib.authr   r   r   django.db.modelsr   r   r   localetimeZpandasrF   Zmatplotlib.pyplotZpyplotZpltZnumpynprB   r   r%   rK   r   rV   rW   rY   rZ   r^   r_   r   r   r   r   <module>   sB    
f


