mò "á¸Ec@sðdZdkZdkZdkZdkZdkZdkZdkZdkZdk Z dk Z dk Z ei Z dk l Z dfd„ƒYZeideiƒZeideiƒZeideiƒZeiZeiZd„ZdS( s=$Id: default_handler.py 24763 2004-05-17 05:59:28Z philikon $N(scountertdefault_handlercBsktZddgZdZddgZeiZd„ZdZ d„Z d „Z d „Z d „Z d „ZRS( NtgettheadsDefault HTTP Request Handlers index.htmls default.htmlcCs1||_tƒ|_tƒ|_tƒ|_dS(N(t filesystemtselftcountert hit_countert file_countert cache_counter(RR((t=/data/zmath/zope/lib/python/ZServer/medusa/default_handler.pyt__init__8s   icCsd|i|it|ƒfS(Ns<%s (%s hits) at %x>(RtIDENTRtid(R((R t__repr__CscCsdS(Ni((Rtrequest((R tmatchKscCs‹|i|ijo|idƒdSn|iiƒ|iƒ\} }}} d| jot | ƒ} nx'| o| ddjo| d} qmW|i i| ƒoØ| oC| ddjo2d|iii| f|d<|id ƒdSnd}| o| ddjo| d} nx?|iD]4} | | } |i i| ƒo| } d}Pq'q'W|p|id ƒdSq§n)|i i| ƒp|id ƒdSn|i i| ƒti}tt|iƒ}d}|oR|id ƒ} | o8y*t!i"| ƒ} | |jo d}nWq-q-Xq1nd}|ot$i%|idƒƒ}ny|i i| ƒti&}Wn|id ƒdSnX|o@|o9||jo(d |_(|i)ƒ|i*iƒdSqÙny|i i+| d ƒ}Wn$t-j o|id ƒdSnXt$i.|ƒ|d<||d<|i/| |ƒ|idjo|i0|i1|ƒƒn|i2iƒ|i)ƒdS(Nit%it/iiÿÿÿÿs http://%s/%s/tLocationi-i”ii0trbs Last-ModifiedsContent-LengthR(3RtcommandRtvalid_commandsterrorRt incrementt split_uritpathtparamstquerytfragmenttunquoteRtisdirtchanneltservert server_nametfoundtdirectory_defaultstdefaulttptisfiletstattST_SIZEt file_lengthtget_header_matchtIF_MODIFIED_SINCEtheadertimst length_matchtgrouptlengthtstringtatoitims_datet http_datetparse_http_datetST_MTIMEtmtimet reply_codetdoneRtopentfiletIOErrortbuild_http_datetset_content_typetpushtdefault_file_producerR(RRR;R7RR)R3R-RRRR$R%R0R"R.((R thandle_requestPsŠ                      cCsKtit|ƒƒ}tii|ƒoti||d®scCsCtidti|ƒdd|id|id|idƒS(Ns
  • %ss(t producerstsimple_producertstatus_handlert html_reprRRRR(R((R tstatus·s(t__name__t __module__RR R#RHt file_producerR@R RR RRAR>RL(((R R*s       ^ s2If-Modified-Since: ([^;]+)((; length=([0-9]+)$)|$)sUser-Agent: (.*)sDContent-Type: ([^;]+)((; boundary=([A-Za-z0-9\'\(\)+_,./:=?-]+)$)|$)cCsIti|dƒ}ti|dƒ}||jo||dSndSdS(NRt.it(R1trfindRtdirseptdotsep(RRSRT((R RCÓs  (tRCS_IDtostret posixpathR'R1ttimeR4t http_serverRERJRHRRRtcompilet IGNORECASER+t USER_AGENTt CONTENT_TYPEt get_headerR*RC(RR'RXR+RERURR]RRJRHRWR4RZR^RYR*RCRVR_R1((R t?s,             š