U
    ic4                     @   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   s
   t | dS )Nzregister.htmlr   request r   ,/var/www/html/project/apps/routeros/views.pyregister   s    r   c                 C   s   | j dkr| jd}| jd}ztjj|d}W nX   t| tjd t| ||d}|d k	rxt	| | t
d Y S t| tjd Y nX 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  zZt jddddd}| }|d}|d}|d}|d	}| }| }| }	| }
| }t|}t|}t|}t|
}t|	}	tj	
td
}|D ]}|d }|r6d|}|d}| }|D ]T}|d dkr|d }ddddddg}|fdd}|t|}||||||	|daqqd}d|}|||||	||daqW n* t jjk
r   t| tjd Y nX 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 qqt | | }t|trJ|\}}|dkrF|}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   )r7   r8   r9   r:   r;   r<   r6   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_ur7   r8   r9   transr*   numr<   Zlist_2Ztest2cZwanZUNITS_MAPPINGr5   r6   r   r   r   r   .   sv    







	


r   c                 C   sz   zBt jddddd}| }|d}| }t|}||d}W n( t jjk
rj   t	| tj
d Y nX t| d	|d
S )Nr$   r%   r&   Tr'   r)   )r<   r7   r=   zapp-user-list.htmlr>   )r@   rA   rB   rC   r   rE   rJ   rK   r
   r    r!   r   )r   rL   rM   Zlist_users_pppoeZ
list_usersr<   usersr   r   r   	user_list   s    

rT   c                 C   s
   t | dS )Nznavbar.htmlr   r   r   r   r   navbar   s    rU   c                 C   s    t j }d|i}t| d|dS )Nsalez
sales.htmlr>   )r   rF   r<   r   )r   rV   r<   r   r   r   sales   s
    
 rW   c                 C   s
   t | dS )Nzapp-user-view-billing.htmlr   r   r   r   r   view_customers   s    rX   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>   )r@   rA   rB   rC   r   r   )	r   rL   rM   rN   r"   ZdeletrZ   r[   Zall_delr   r   r   delete_user   s    

r\   c                 C   s
   t | dS )Nzanalytics.htmlr   r   r   r   r   	analytics   s    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pandasrD   Zmatplotlib.pyplotZpyplotZpltZnumpynpr@   r   r#   rI   r   rT   rU   rW   rX   r\   r]   r   r   r   r   <module>   s@   
f


