U
    fH                     @   sZ  d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dlZd dl	m
Z
 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Zd d
lmZmZ 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$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l0m1Z1 ddl2m3Z3 d dl4Z4dd Z5dd Z6e edddd  Z7d!d" Z2e eddd#d$ Z.e eddd%d& Z0d'd( Z8d)d* Z9d+d, Z:d-d. Z;d/d0 Z<d1d2 Z=d3d4 Z>d5d6 Z?d7d8 Z@d9d: ZAd;d< ZBd=d> ZCd?d@ ZDdAdB ZEdCdD ZFdEdF ZGdGdH ZHeIdIkrVeJd  dS )J    N)runPIPE)split)filemode)HttpResponseHttp404render)View)FileSystemStorage)login_required)HttpResponseRedirectFileResponse)authmessages)logout)csrf_exempt)settings)escape_uri_path	smart_str)JsonResponse)CaptchaStore)captcha_image_url   )MyForm)redirect)updatedb)searchdb)	searchef2c                 C   s6   |   r&t }t|}t||dS ti ddS d S )N)	image_urlkeyi  )status)Zis_ajaxr   generate_keyr   r   )requestZnew_captchar    r$   &/home/mars/bis/apps/parsefile/views.pyrefresh_captcha.   s
    r&   c                 C   s<   | j dkr,t r t| d nt| d t| ddtiS )NPOSTzsuccess!zWrong Captcha	home.htmlform)methodr)   is_validr   successerrorr	   r#   r$   r$   r%   captcha8   s
    
r/    )Zredirect_field_namec                 C   sV   d }| j jr| j j}t| td d}|dd}t| td t| dt S )N-----------------   測試中文utf-8==================z
title.html)useris_authenticatedusernameprintencodedecoder	   locals)r#   r7   sssr$   r$   r%   titleC   s    r>   c                 C   s\   | j dkrNt| jd | jd | jd | jd | jd | jd }t| dt S t| dS d S )	Nr'   	startdateZ	starttimeenddateendtimeIDnamezsearchef.html)r*   r   r'   r	   r;   )r#   valuer$   r$   r%   searchefd   s    
6rE   c                 C   s   | j j}| jdkr| jd | jd | jd | jd | jd | jd | jd g}d	}tt|D ]}|| d
kr^d} qxq^|dkrd}t| dt S t|}|dkrd}t| dt S n
t| dS d S )Nr'   rC   arear!   identityrB   zc-datezc-userr   r0   r   u   資料未齊全zupdate.htmlTu   更新成功)	r5   r7   r*   r'   rangelenr	   r;   r   )r#   r5   listaitextr$   r$   r%   updatel   s     
<rN   c                 C   s   t d| j | jdkr| jd | jd | jd | jd | jd g}t|\}}}|dkr\d	}| jd | jd | jd | jd | jd g}t| d
t S t| d
S d S )N2r'   z
start-datezend-daterC   rB   sortr   u$   搜尋內容錯誤，請重新輸入zsearch.html)r8   r'   r*   r   r	   r;   )r#   rJ   varZvar1Zvar2rM   phr$   r$   r%   search   s    
,,rS   c                 C   s   t |  tdS )N/)r   r   r.   r$   r$   r%   
logoutuser   s    rU   c                 C   s   | j dkrt| j}t|j | rtd |jd }|jd }|jd }tj||d}tt  |d k	rt	| | t
d}|r|jd|dd	 |S d
}t| dt S qt| dt S n(t }d| jkr| jd }t| dt S d S )Nr'   rO   r7   passwordremember_me)r7   rV   z/titlei,  )expireszWrong Password!!z
login.html)r*   r   r'   r8   r+   cleaned_datar   authenticater;   loginr   
set_cookier	   COOKIES)r#   r)   r7   rV   rW   r5   responserQ   r$   r$   r%   login2   s.    








r_   c                 C   s   t | dddiS )Nz
test1.htmldatazHello Django I am Bella!!!r   r.   r$   r$   r%   hello   s     ra   c                 C   s   t | dddiS )Nr(   r`   uK   這個網站是愛豐的營運資訊系統 (Business Information System)。r   r.   r$   r$   r%   home   s     rb   c                 C   s   t dS )Nu)    Django讓您方便連網頁_Bella show ~)r   r.   r$   r$   r%   show   s    rc   c                 C   s   t | di S )NzE_10_1.htmlr   r.   r$   r$   r%   deposits   s    rd   c                 C   sL   t | jd }t| jd }t | jd }tt|d| |  d}t|S )NamountZrateperiodr      )intGETfloatstrroundr   )r#   pvrL   nZfvr$   r$   r%   cal   s
    ro   c                 C   s   i }| j dkr| jd }td|j t|j t }||j| |j|d< ttj	d|jgdt
d}tdd	}| |d
< tdd	}|D ]j}t|dd |dr|dd  }|dd  |d< |dd  |d< td|d   qqt| d|S )Nr'   documentzbella:fNamez;/home/mars/bis/apps/parsefile/extScript/cvt_dispatch_web.pyFshellstdoutu>   /home/mars/bis/apps/parsefile/extScript/轉檔問題回報.txtrrc   r0   )endu   轉檔完成:r   mediafileLocrT      Z
resultFilezresultFile:upload.html)r*   FILESr8   rC   sizer   saver   sys
executabler   openread
startswithr   stripr	   )r#   contextuploaded_filefsoutflinery   r$   r$   r%   upload   s*    






r   c                 C   s   i }| j dkr| jd }t|j t|j ttj j	}ttj j	 t
 }||j| |jdkrttjd||jgdtd}|j|d< td n|j|d	< td
 t| d|S )Nr'   rp   u   FAB運輸資訊.xlsxz2/home/mars/bis/apps/parsefile/extScript/upt_FAB.pyFrr   rq   zuploadFAB SUCCEEDED!r-   zuploadFAB ERROR!zuploadFAB.html)r*   r|   r8   rC   r}   rk   datetimedatetodayyearr   r~   r   r   r   r   r	   )r#   r   r   ZfYearr   r   r$   r$   r%   	uploadFAB   s     







r   c                 C   s@   t tjddgdtd}td| td| t| dd|j iS )	N//home/mars/bis/apps/parsefile/extScript/test.pyZBellaFrr   OUT=out.stdout=r{   result)r   r   r   r   r8   r	   rt   r:   )r#   r   r$   r$   r%   parse	  s    

r   c                 C   s
   t | dS )Nr(   r   r.   r$   r$   r%   button  s    r   c                 C   s    t d}|j}t| dd|iS )Nzhttps://www.google.com/r(   r`   )requestsgetrM   r	   )r#   r`   r$   r$   r%   output  s    
r   c                 C   sV   | j d}td| ttjd|gdtd}td| td| t| dd	|j	 iS )
Nparamzinp=r   Frr   r   r   r(   Zdata1)
r'   r   r8   r   r   r   r   r	   rt   r:   )r#   Zinpr   r$   r$   r%   external  s    


r   c                 C   s   i }t d| j  | jdkrz| jd }t |j t |j |j|d< t }||j| |rptd|j dS tdS nt d t	| d	|S )
Nzrequest.POST = r'   rp   rq   zFile: z was uploaded successfully!zNo file selected!zesh_resttime_report - elsezesh_resttime_report.html)
r8   r'   r*   r|   rC   r}   r   r~   r   r	   )r#   r   r   r   r$   r$   r%   esh_resttime_report#  s    





r   c              
   C   s  | j dkr| jj}| jd}| jd}d| d| d| }zXtj|dd}|d}|d	}|d
}||d | }	t	j
|	}
t	j
|	}W nB tjk
r } z"td|  d}d}	d}
d}W 5 d }~X Y nX t| dd| d| |
||	 dS t| dddiS d S )Nr'   r?   r@   zW/usr/bin/python3 /home/mars/bis/apps/parsefile/extScript/download_speeding_info_web.py  T)rs   r3   z^^==^^z$$==$$   zError executing smartctl: u4   錯誤, 錯誤, 錯誤 --> 請告訴資訊部人員!r0   gen_speeding_report.htmlu   產生了司機超速表: z ~ )r`   dirNamerq   ry   r`   zHmm???)r*   r5   r7   r'   r   
subprocesscheck_outputr:   findospathdirnamebasenameCalledProcessErrorr8   r	   )r#   r7   Z	startDateZendDateZbatcmdZrtn1ZrtnZstartPosZendPosry   r   rq   er$   r$   r%   gen_speeding_reportE  s:    


 r   c              
   C   s   d}t |d t d t d|  tjtj|}td|  zdt	|dP}|
 }tt	|d}tj|}d|d< d	t||d
< |W  5 Q R  W S Q R X W n tk
r   td Y S X d S )Nr2   r3   u   ---測試中文---zTTTTTTTTTT occurred: zremoteFilePath = rbzapplication/octet-streamzContent-Typezattachment; filename*=UTF-8''{}zContent-DispositionzFile not found)loggingr-   r9   r   r   joinr   
MEDIA_ROOTr8   r   r   r   r   formatr   FileNotFoundErrorr   )r#   fpathZchinese_stringZremoteFilePathfhZfileContentr^   filenamer$   r$   r%   download_fileg  s     
r   c                 C   s^   dd l }td|j td|  i }td d}|dd}t| td t| d|S )	Nr   zPython version:zDefault encoding:r1   r2   r3   r4   r   )r   r8   versiongetdefaultencodingr9   r:   r	   )r#   r   r   r<   r=   r$   r$   r%   download_file_test  s    &r   __main__)Kr   r   r   r   r   r   rer   r   statr   django.httpr   r   Zdjango.shortcutsr	   Zdjango.views.genericr
   django.core.files.storager   Zdjango.contrib.auth.decoratorsr   urllib.parseurllibr   r   django.contribr   r   django.contrib.authr   django.views.decorators.csrfr   django.confr   django.utils.encodingr   r   r   Zcaptcha.modelsr   Zcaptcha.helpersr   formsr   r   rN   r   rS   r   rE   r   timer&   r/   r>   rU   r_   ra   rb   rc   rd   ro   r   r   r   r   r   r   r   r   r   r   __name__exitr$   r$   r$   r%   <module>   sx   
 	""V
