mň Ş%ÜGc@s|dkZdkZdkZdklZdklZd„Zd„Z e d„Z d„Z d„Z dfd „ƒYZdS( N(s moduleFinder(snewtokencCs:|iidƒ|ii|iiƒƒ|iiƒdS(Nt _spy_login( tapitcookietdeletetredirecttexternaltrequestturitresponsetend(R((t2/home/holguin2/public_html/spyce/tags/_coreutil.pytlogoutscCsdk}|iidƒdkl}|iidƒ}d|jo8t i |dƒ\}}|i ||ƒo|Sq}ndS(Ns_cookie!(s login_storageRR(tsyststderrtwritet spyceConfigt login_storageRt_apit getModuleRtpickletloadstuidttokentvalidatetNone(RRR RRR((R tlogin_from_cookie s    c CsÄy|||ƒ}Wntj o d‚nX|dj o„dkl} t|i ƒ}t |ƒ}| i||ƒ|odddd}nd}|iidti||fƒ|ƒn|S(Ns-invalid login_validator function in spyceconf(s login_storageiiimi R(t validatortlogintpasswordRt TypeErrorRRRt moduleFinderRRtmftnewtokenRtsett remembermetexpiresRRtdumps( RRRRR"RRR#RR((R t login_stubs    )cCs1t|||idƒ|idƒ|idƒƒS(Nt_spy_login_usert_spy_login_passwordt_spy_login_rememberme(R%RRtgetpost1(RR((R t login_perform's   cCs |idƒS(NR&(Rtgetpost(R((R t login_pending-st FileStoragecBsGtZd„Zd„Zd„Zd„ZhZd„ZeeƒZRS(NcCs ||_dS(N(tpathtself(R/R.((R t__init__3scCsT|i|ƒ}ti|ƒ}|iƒzt|dƒi |ƒWd|i ƒXdS(Ntw( R/t_pathRtpR-t_getLocktLtacquiretopenRRtrelease(R/RRR5R3((R R!5s cCsr|i|ƒ}ti|ƒ}|iƒz8y|t |ƒi ƒjSWnt j o t SnXWd|i ƒXdS(N(R/R2RR3R-R4R5R6RR7treadtIOErrortFalseR8(R/RRR5R3((R R=s  cCs,dk}dk}|ii|id|ƒS(Ns spytoken-%s(tspycetos.pathtosR.tjoinR/R(R/RR>R<((R R2HscCs5|tijoti|ƒti|