ちょいと物思いにふける時に考え過ぎないようカウントダウンタイマーを使ってみようと思ったのだけど、自分にしっくりくるアプリがなかったから Python で書いてみた(MacOSX only)
環境:MacOSX10.6, Python27
やりたいこと
- 10分ごとに経過時間をお知らせ
- お知らせは視覚と音で
- お知らせは思考の邪魔にならないよう控えめに
- OFF にするのを忘れても大丈夫なように
90分60分経過したら終了させる
こんな感じか
やっぱり Python 2.6 での場合
コード
上記リンク先のを書き換えてやってみた。
countdown.py
#!/usr/bin/env python # *-# -*- coding: utf-8 -*- import Growl import time import os SIXTY_SEC = 60 # interval_min = 0.02 #debug # limit_min = 0.04 #debug interval_min = 10 limit_min = 60 interval_sec = interval_min * SIXTY_SEC limit_sec = limit_min * SIXTY_SEC def say(say_word): os.system("say %s" % say_word) def main(): message_str = "Start [every %s minutes]" % interval_min total_time_sec = 0 g = Growl.GrowlNotifier( applicationName = 'GrowlPython', notifications = [ 'Countdown' ], defaultNotifications = [ 0 ], hostname = 'localhost', password = '', ) g.register() flg_stop = False for i in range(50): if limit_sec <= total_time_sec: stop_str = "%s minutes. Stop. have a break." %\ total_time_minute message_str = stop_str flg_stop = True say(message_str) current_time = time.strftime('%H:%M') print "%s [%s]" % (message_str, current_time) g.notify( noteType = 'Countdown', title = '%s' % message_str, description = '%s' % current_time, sticky = False ) if flg_stop: break total_time_sec += interval_sec total_time_minute = total_time_sec / SIXTY_SEC message_str = "%s minutes" % total_time_minute time.sleep(interval_sec) if __name__ == '__main__': main()