
    `oiZQ                        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	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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l0m1Z1 ddl2m3Z3 d dlm4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z:  e,d           d Z;d Z<ed9d             Z=e% ed!"          d#                         Z>d$ Z9e% ed!"          d%                         Z5e% ed!"          d&                         Z7d' Z?d( Z@d) ZAd* ZBd+ ZCd, ZDd- ZEd. ZFd/ ZGd0 ZHd1 ZId2 ZJd3 ZKd4 ZLd5 ZMd6 ZNd7 ZOePd8k    r ejQ        d            dS dS ):    N)runPIPE)split)contextmanager)BytesIO)filemode)HttpResponseHttp404render)View)FileSystemStorage)login_required)HttpResponseRedirectFileResponse)authmessages)logout)csrf_exempt)settings)escape_uri_path	smart_str)activate)JsonResponse)CaptchaStore)captcha_image_url   )MyForm)redirect)updatedb)searchdb)	searchef2zzh-hantc                     |                                  r4t          j                    }t          |          }t	          ||d          S t	          i d          S )N)	image_urlkeyi  )status)is_ajaxr   generate_keyr   r   )requestnew_captchar$   s      '/srv/django_bis/apps/parsefile/views.pyrefresh_captchar,   2   sX     ,"/11%k22	)KHHIIIBs++++    c                    | j         dk    rTt          | j                  }|                                rt	          j        | d           n$t	          j        | d           nt                      }t          | dd|i          S )NPOSTzsuccess!zWrong Captcha	home.htmlform)methodr   r/   is_validr   successerrorr   )r)   r1   s     r+   captchar6   <   sx    ~gl##==?? 	9 *5555w8888xx';777r-   UTF-8c              #      K   t                      }| |_        t          j        |c}t          _        	 |V  |t          _        d S # |t          _        w xY w)N)r   encodingsysstdout)codecoutputorigs      r+   capture_stdout_unicoder?   L   sR      YYFFOz6D#*


T
s   A A )redirect_field_namec                    d }| j         j        r| j         j        }t          |           t          d           d}|                    d          }t          j        d|            |                    d          }t          j        d|            t          d           t          d|           t          t          |                     t                      5 }t          j
                            |           d d d            n# 1 swxY w Y   t          j        |                                           t          d           t          | d	t                                S )
N-----------------u   測試中文123utf-8zs: zss: ==================ztext=z****************z
title.html)useris_authenticatedusernameprintencodeloggingr5   typer?   r:   r;   writegetvaluer   locals)r)   rH   stextssouts         r+   titlerT   m   s}    <( 	-|,Hh 	!"""  xx  iAii   XXgkRkk""" 	"###gtd4jj#%% 	!JR   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!
 	cllnn%%% !!! g|VXX666s    DDDc           	         | j         dk    rst          | j        d         | j        d         | j        d         | j        d         | j        d         | j        d                   }t          | dt	                                S t          | d          S )	Nr/   	startdate	starttimeenddateendtimeIDnamezsearchef.html)r2   r"   r/   r   rO   )r)   values     r+   searchefr]      s    
.F
"
"k27<3LW\ZcMdeleqr{e|  ~E  ~J  KO  ~P  QX  Q]  ^d  Qe  f  fwvxx88	8w//	/r-   c                    | 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} n|dk    rd}t          | dt                                S t          |          }|dk    rd}t          | dt                                S d S t          | d          S )Nr/   r[   arear&   identityrZ   zc-datezc-userr   r@   r   u   資料未齊全zupdate.htmlTu   更新成功)	rF   rH   r2   r/   rangelenr   rO   r    )r)   rF   listairQ   s         r+   updaterf      s?    L!d	6	!	!L(f)=gl8>TU\UablUmnunz{  oA  BI  BN  OW  BX  Y`  Ye  fn  Yo  pdaSYY''  !7b==!% ! a'wfhh???D>>II'$vxx@@@ I -000r-   c                    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 )N2r/   z
start-datezend-dater[   rZ   sortr   u$   搜尋內容錯誤，請重新輸入zsearch.html)rI   r/   r2   r!   r   rO   )r)   rc   varvar1var2rQ   phs          r+   searchrn      s     C	6	!	! \*7<
+CGLQWDXY`YefjYklslxy  mA  B$!$-#d4QYY8Tl<(j)A',vBVW^WcdhWijqjvw}j~"vxx88
8W]+++r-   c                 >    t          |            t          d          S )N/)r   r   r)   s    r+   
logoutuserrr      s    
///#
r-   c                    | j         dk    r9t          | j                  }t          |j                   |                                rt          d           |j        d         }|j        d         }|j        d         }| ||||d d}t          |           t          j        ||          }t          t                                 |@t          j	        | |           t          d          }|r|                    d|d	
           |S d}t          | dt                                S t          | dt                                S t                      }d| j        v r| j        d         }t          | dt                                S )Nr/   zlogin2()rH   passwordremember_me)r)   r1   rH   rt   ru   rF   )rH   rt   z/titlei,  )expireszWrong Password!!z
login.html)r2   r   r/   rI   r3   cleaned_datar   authenticaterO   loginr   
set_cookier   COOKIES)	r)   r1   rH   rt   ru   
debug_inforF   responserj   s	            r+   login2r~      s   ~W\""tT]
--// ;*(4H(4H+M:K #$$* J * $hJJJD&((OOOJw---&x00H" N ++Jx+MMM#O*C!'<BBB'<:::xx((_Z08g|VXX666r-   c                 (    t          | dddi          S )Nz
test1.htmldatazHello Django I am Bella!!!r   rq   s    r+   hellor     s#    'L	.*   r-   c                 (    t          | dddi          S )Nr0   r   uK   這個網站是愛豐的營運資訊系統 (Business Information System)。r   rq   s    r+   homer     s#    'K	_)   r-   c                      t          d          S )Nu)    Django讓您方便連網頁_Bella show ~)r	   rq   s    r+   showr     s    CDDDr-   c                 $    t          | di           S )NzE_10_1.htmlr   rq   s    r+   depositsr     s    'M"---r-   c                    t          | j        d                   }t          | j        d                   }t          | j        d                   }t          t	          |d|z   |z  z  d                    }t          |          S )Namountrateperiodr      )intGETfloatstrroundr	   )r)   pvre   nfvs        r+   calr     so    
7;x !!BGK  A	'+h
  A
5acAXq!!""Br-   c                 r   i }| j         dk    r| j        d         }t          d|j                   t          |j                   t                      }|                    |j        |           |j        |d<   t          t          j	        d|j        gdt                    }t          dd	          }|                                |d
<   t          dd	          }|D ]}t          |d           |                    d          r|                    d          d                                         }|                    d          d                                         |d<   |                    d          d                                         |d<   t          d|d                     nt!          | d|          S )Nr/   documentzbella:fNamez;/home/mars/bis/apps/parsefile/extScript/cvt_dispatch_web.pyFshellr;   u>   /home/mars/bis/apps/parsefile/extScript/轉檔問題回報.txtrr   r@   )endu   轉檔完成:r   mediafileLocrp      
resultFilezresultFile:upload.html)r2   FILESrI   r[   sizer   saver   r:   
executabler   openread
startswithr   stripr   )r)   contextuploaded_filefsrS   fliner   s           r+   uploadr   !  s   G~j1h})***m !!!  
"=111(-#.!^_l_qry~  GK  L  L  LQSVWW&&((QSVWW 	 	D$B~.. **S//!,2244%)ZZ%8%8%;%A%A%C%C	"(,

3(:(@(@(B(B%mW\%:;;; 'M7333r-   c                    i }| j         dk    r&| j        d         }t          |j                   t          |j                   t          t          j                                        j	                  }t          t          j                                        j	                   t                      }|                    |j        |           |j        dk    rDt          t          j        d||j        gdt                    }|j        |d<   t          d           n|j        |d	<   t          d
           t!          | d|          S )Nr/   r   u   FAB運輸資訊.xlsxz2/home/mars/bis/apps/parsefile/extScript/upt_FAB.pyFr   r   zuploadFAB SUCCEEDED!r5   zuploadFAB ERROR!zuploadFAB.html)r2   r   rI   r[   r   r   datetimedatetodayyearr   r   r   r:   r   r   r   )r)   r   r   fYearr   rS   s         r+   	uploadFABr   A  s6   G~j1m !!!m !!!HM'')).//hm!!##()))  
"=111!777cn%Y[`bobtu  }B  JN  O  O  OC,1GG()))),1GG$%%%',W555r-   c                     t          t          j        ddgdt                    }t	          d|           t	          d|           t          | dd|j                                        i          S )	N//home/mars/bis/apps/parsefile/extScript/test.pyBellaFr   OUT=out.stdout=r   result)r   r:   r   r   rI   r   r;   decode)r)   rS   s     r+   parser   W  sg    	cnNwW^cko	p	p	pC	&	-'M8CJ4E4E4G4G*HIIIr-   c                 "    t          | d          S )Nr0   r   rq   s    r+   buttonr   ^  s    '+&&&r-   c                 j    t                               d          }|j        }t          | dd|i          S )Nzhttps://www.google.com/r0   r   )requestsgetrQ   r   )r)   r   s     r+   r=   r=   b  s1    	/	0	0D	D'+vdm444r-   c                 2   | j                             d          }t          d|           t          t          j        d|gdt                    }t          d|           t          d|           t          | dd	|j        	                                i          S )
Nparamzinp=r   Fr   r   r   r0   data1)
r/   r   rI   r   r:   r   r   r   r;   r   )r)   inprS   s      r+   externalr   h  s    			'	"	"C	&	cnNsSZ_gk	l	l	lC	&	-'+wsz/@/@/B/B&CDDDr-   c                    i }t          d| j                    | j        dk    r| j        d         }t          |j                   t          |j                   |j        |d<   t                      }|                    |j        |           |rt          d|j         d          S t          d          S t          d           t          | d	|          S )
Nzrequest.POST = r/   r   r   zFile: z was uploaded successfully!zNo file selected!zesh_resttime_report - elsezesh_resttime_report.html)
rI   r/   r2   r   r[   r   r   r   r	   r   )r)   r   r   r   s       r+   esh_resttime_reportr   q  s    G	
*GL
*
*+++~j1m !!!m !!!(-  
"M222 	5 X); X X XYYY 3444 	*+++ '6@@@r-   c           	         | j         dk    r@| j        j        }| j                            d          }| j                            d          }d| d| d| }	 t          j        |d          }|                    d          }|                    d	          }|                    d
          }||dz   |         }	t          j
                            |	          }
t          j
                            |	          }n6# t
          j        $ r$}t          d|            d}d}	d}
d}Y d }~nd }~ww xY wt          | dd| d| |
||	 d          S t          | dddi          S )Nr/   rV   rX   zW/usr/bin/python3 /home/mars/bis/apps/parsefile/extScript/download_speeding_info_web.py  T)r   rD   z^^==^^z$$==$$   zError executing smartctl: u4   錯誤, 錯誤, 錯誤 --> 請告訴資訊部人員!r@   gen_speeding_report.htmlu   產生了司機超速表: z ~ )r   dirNamer   r   r   zHmm???)r2   rF   rH   r/   r   
subprocesscheck_outputr   findospathdirnamebasenameCalledProcessErrorrI   r   )r)   rH   	startDateendDatebatcmdrtn1rtnstartPosendPosr   r   r   es                r+   gen_speeding_reportr     s   ~<(L$$[11	,""9-- Lks  L  Lv  L  L  CJ  L  L	*6>>>D++g&&Cxx))HXXh''F(1*V+,Ggoog..GG$$W--EE, 	 	 	2q22333HCGGEEEEEE	 g :SISS'SS") %%,,	=
 =
   	 g :x=
   	s   B C: :D-	D((D-c                    d}t          j        |                    d                     t          j        d           t          j        d|            t          j                            t          j        |          }t          d|            	 t          |d          5 }|
                                }t          t          |d                    }t          j                            |          }d|d<   d	                    t          |                    |d
<   |cd d d            S # 1 swxY w Y   d S # t          $ r t!          d          cY S w xY w)Nu   測試中文rD   u   ---測試中文---zTTTTTTTTTT occurred: zremoteFilePath = rbzapplication/octet-streamzContent-Typezattachment; filename*=UTF-8''{}zContent-DispositionzFile not found)rK   r5   rJ   r   r   joinr   
MEDIA_ROOTrI   r   r   r   r   formatr   FileNotFoundErrorr
   )r)   fpathchinese_stringremoteFilePathfhfileContentr}   filenames           r+   download_filer     s    $NM.''00111M&'''M:.::;;;W\\("5u==N	/~//111).$'' 	2''))K#D$>$>??Hw''77H'AH^$.O.V.VWfgoWpWp.q.qH*+	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  ) ) )'((((()s7   D8 "A<D+D8 +D//D8 2D/3D8 8EEc                 `   dd l }t          d|j                   t          d |j                               i }t          d           d}|                    d                              d          }t          |           t          |           t          d           t          | d|          S )	Nr   zPython version:zDefault encoding:rC   u   ABC測試中文rD   rE   r   )r:   rI   versiongetdefaultencodingrJ   r   r   )r)   r:   r   rP   rR   s        r+   download_file_testr     s     JJJ	
S[)))	
5s577888G 

A	
'			!	!'	*	*B 
!HHH	"III
 

L '6@@@r-   __main__)r7   )Rr   r   r:   r   r   r   rer   rK   time
contextlibr   ior   statr   django.httpr	   r
   django.shortcutsr   django.views.genericr   django.core.files.storager   django.contrib.auth.decoratorsr   urllib.parseurllibr   r   django.contribr   r   django.contrib.authr   django.views.decorators.csrfr   django.confr   django.utils.encodingr   r   django.utils.translationr   r   captcha.modelsr   captcha.helpersr   formsr   r   rf   r    rn   r!   r]   r"   r,   r6   r?   rT   rr   r~   r   r   r   r   r   r   r   r   r   r=   r   r   r   r   r   __name__exit r-   r+   <module>r     sx   
			  



                     % % % % % %             - - - - - - - - # # # # # # % % % % % % 7 7 7 7 7 7 9 9 9 9 9 9 # # # # # #     ; : : : : : : : ) ) ) ) ) ) ) ) & & & & & & 4 4 4 4 4 4             < < < < < < < < - - - - - - $ $ $ $ $ $ ' ' ' ' ' ' - - - - - -       % % % % % %                  
 	   , , ,	8 	8 	8     @ B'''27 27 (' 27j0 0 0 B'''1 1 (' 1* B''', , (' ,   
(7 (7 (7V    E E E. . .  4 4 4@6 6 6,J J J' ' '5 5 5E E EA A AD  D) ) )4CA CA CAn zCHQKKKKK r-   