a „oe&ã@söddlZddlZddlZddlZddlZddlZddlmZmZm Z Gdd„de j ƒZ Gdd„dƒZ Gdd„dƒZ Gd d „d e ƒZGd d „d eƒZGd d„deƒZGdd„deƒZGdd„de jƒZdd„ZeƒZdd„ZedkròddlZe ¡dS)éN)ÚappÚcmdlineÚ dlgappcorec@sBeZdZdZddd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dS)ÚTimerAppDialogéÚcCs`tj |tj¡||_d|_t|jƒdkr\ttj ƒdkr\tj dddkr\tj d|_d|_dS)Nrrú/) rÚ AppDialogÚ__init__Úwin32uiZIDD_GENERAL_STATUSÚ timerAppNameÚargOffÚlenÚsysÚargv)ÚselfZappName©rúHC:\Program Files\Certbot\pkgs\pythonwin\pywin\Demos\app\basictimerapp.pyr s  zTimerAppDialog.__init__cCsdS©Nr©rrrrÚ PreDoModalszTimerAppDialog.PreDoModalcCs|D]}|dkr| ¡qdS)Nz/now)ÚOnOK)rÚargsÚargrrrÚ ProcessArgsszTimerAppDialog.ProcessArgscCst d¡t |jdd¡|_t |jdd¡|_t |jdd¡|_|j dd ¡|_tj   |¡|  |j¡|  tj ¡|_|  tj¡|_|  tj¡|_|  tj¡|_|  tj¡|_|j  d ¡|j  d ¡|j  d ¡|j  d ¡|j  d ¡t|ƒ|_| tj|jd…¡|j ¡dS)Nz pytimer.iniZTitlezRemote System TimerÚTimerzEachMinuteIntervaler()ZWorkz DoDemoWork()z\nÚ zPython Timer Apprz Do it nowÚCloser)r ZSetProfileFileNameZ GetProfileValr ÚtitleÚ buildTimerÚdoWorkÚreplacerr Ú OnInitDialogÚ SetWindowTextZ GetDlgItemZ IDC_PROMPT1Úprompt1Z IDC_PROMPT2Zprompt2Z IDC_PROMPT3Úprompt3Úwin32conZIDOKÚbutOKZIDCANCELÚ butCancelÚ TimerManagerÚ timerManagerrrrr Úgorrrrr"#s2 ÿÿ         zTimerAppDialog.OnInitDialogcCstj ||¡|j ¡dSr)rr Ú OnDestroyr*Ústop)rÚmsgrrrr,AszTimerAppDialog.OnDestroycCs |j ¡d|j_|j ¡dS©Nr)r*r-Ú bConnectNowr+rrrrrEs  zTimerAppDialog.OnOKN)r) Ú__name__Ú __module__Ú __qualname__Z softspacer rrr"r,rrrrrrs rc@sDeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dS)r)cCs*||_d|_t|jjƒ|_d|_d|_dS©Nr)ÚdlgÚtimerIdÚevalrÚ intervalerr0ÚbHaveSetPrompt1)rr5rrrr Rs zTimerManager.__init__cCs&tj|_tj|_|t_t_d|_dSr4)rÚstdoutÚoldOutÚstderrÚoldErrr9rrrrÚ CaptureOutputYs zTimerManager.CaptureOutputcCs|jt_|jt_dSr)r;rr:r=r<rrrrÚ ReleaseOutput_szTimerManager.ReleaseOutputcCs<| ¡}t|ƒr8|jr |jj}n|jj}d|_| |¡dSr/)Ústriprr9r5r%r$r#)rÚstrÚsÚdestrrrÚwritecs zTimerManager.writecCs| dd¡dSr)ÚOnTimerrrrrr+mszTimerManager.gocCs|jrt |j¡d|_dSr)r6ÚtimerÚ kill_timerrrrrr-ps zTimerManager.stopc Csž|rt |¡|j ¡s |jrzÈ|j |jjd¡|jj  d¡|jj   d¡|  ¡zt |jj ƒtdƒWnBt ¡\}}}d|t|ƒf}t|ƒ|j |¡d}Yn0W| ¡|jj  ¡|jj   ¡|j |jj¡n2| ¡|jj  ¡|jj   ¡|j |jj¡0n`t ¡}|j ¡}|r~||} t| dƒ} | d} t| dƒ} | d} |jj d| | | f¡t |j ¡|j¡|_d|_dS)Nz - Working...rz*The last operation completed successfully.zFailed: %s: %sé<z%Next connection due in %02d:%02d:%02d)rFrGr8ÚIsTimer0r5r#rr'Z EnableWindowr(r>Úexecr ÚprintrÚexc_infoÚreprr=rDr?ÚtimeÚ GetNextTimeÚintr$Z set_timerÚGetWakeupIntervalrEr6) rÚidZtimeValÚtÚvÚtbrAÚnowÚnextTimeZtimeDiffSecondsZtimeDiffMinutesZ timeDiffHoursrrrrEusT       ý     ÿÿ ÿzTimerManager.OnTimerN) r1r2r3r r>r?rDr+r-rErrrrr)Qs r)c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚTimerIntervalercCsd|_d|_dS)NéÐ)rWÚwakeUpIntervalrrrrr ¡szTimerIntervaler.__init__cCs|jSr)rZrrrrrQ¥sz!TimerIntervaler.GetWakeupIntervalcCs|jSr)rWrrrrrO¨szTimerIntervaler.GetNextTimecCsDt ¡}|jdur| |¡|_d}||jkr@d}| |j|¡|_|S)Nrr)rNrWÚ SetFirstTimeÚ SetNextTime)rrVÚretrrrrI«s   zTimerIntervaler.IsTimeN)r1r2r3r rQrOrIrrrrrX srXc@s&eZdZddd„Zdd„Zdd„ZdS) ÚEachAnyIntervalerNcCs*t |¡||_||_||_|r&||_dSr)rXr ÚtimeAtÚtimePosÚtimeAddrZ)rr_r`rarZrrrr ¸s  zEachAnyIntervaler.__init__cCs|t |¡}g}|D]}| |¡q||j|jk}|j||j<t|jddƒD] }d||<qNt t|ƒ¡}|rx||j}|S)Nrér) rNÚ localtimeÚappendr`r_ÚrangeÚmktimeÚtuplera)rrVZtimeTupZlstÚitemZbAddÚposr]rrrr[Às     zEachAnyIntervaler.SetFirstTimecCs ||jSr)ra)rZlastTimerVrrrr\ÎszEachAnyIntervaler.SetNextTime)N)r1r2r3r r[r\rrrrr^·s r^c@seZdZddd„ZdS)ÚEachMinuteIntervalerrcCst ||ddd¡dS)NérHrY©r^r ©rZatrrrr ÓszEachMinuteIntervaler.__init__N)r©r1r2r3r rrrrrjÒsrjc@seZdZddd„ZdS)ÚEachHourIntervalerrcCst ||ddd¡dS)Néié'rlrmrrrr ØszEachHourIntervaler.__init__N)rrnrrrrro×sroc@seZdZddd„ZdS)ÚEachDayIntervalerrcCst ||ddd¡dS)Néi€Qrqrlrmrrrr ÝszEachDayIntervaler.__init__N)rrnrrrrrrÜsrrc@seZdZdd„ZdS)ÚTimerDialogAppcCstƒSr)rrrrrÚ CreateDialogâszTimerDialogApp.CreateDialogN)r1r2r3rurrrrrtásrtcCs„tdƒtdƒt tj¡t d¡tdƒt tj¡t d¡tdƒt tj¡t d¡tdƒt tj¡t d¡dS)NzDoing the work...zAbout to connectrYzDoing something else...z More work.z The last bit.) rKÚwin32apiZ MessageBeepr&ZMB_ICONASTERISKZSleepZMB_ICONEXCLAMATIONZ MB_ICONHANDZMB_OKrrrrÚ DoDemoWorkæs       rwcCstdƒ}| ¡|S)Nz Test Dialog)rZDoModal)rSrrrrSùsrSÚ__main__)rrNrFrvr&r Zpywin.frameworkrrrr rr)rXr^rjrorrZ DialogApprtrwrSr1Z demoutilsZNeedApprrrrÚs(CO