- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!ひげそり
長男にひげそりの仕方を教えた.
自分が父親から教わったように.
!アラーム
打合せまでの間仕事しようというときにスマホのタイマーを使っていたけど,
セットが面倒になったので,Pythonで.
#!/usr/bin/env python3
import time
import os
from datetime import datetime
from optparse import OptionParser
def timer_func(y, m, d, hh, mm, num, audio, mesg="", volume=65000):
now = datetime.now()
req = datetime(y, m, d, hh, mm)
print("Now:", now)
print("Request:", req)
diff = req - now
wait_sec = diff.total_seconds()
if wait_sec > 0:
time.sleep(wait_sec)
print("Now:", datetime.now(), mesg)
command = "timeout 3 paplay --volume={} {}".format(volume, audio)
os.system(command)
for i in range(num-1):
time.sleep(1)
os.system(command)
if __name__ == "__main__":
now = datetime.now()
usage = "usage: %prog [options] hh:mm"
parser = OptionParser(usage=usage)
parser.add_option("-y", "--year", dest="year", type="int", help="year", default=now.year)
parser.add_option("-m", "--month", dest="month", type="int", help="month", default=now.month)
parser.add_option("-d", "--day", dest="day", type="int", help="day", default=now.day)
parser.add_option("-n", "--num", dest="num", type="int", help="the numbers of repetition", default=3)
parser.add_option("-s", "--message", dest="mesg", help="message", default="")
parser.add_option("-v", "--volume", dest="volume", type="int", help="volume", default=65000)
parser.add_option("-a",
"--audio",
dest="audio",
help="audio file",
default="/usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga")
(options, args) = parser.parse_args()
if len(args) < 1:
parser.print_help()
exit(0)
(req_hour, req_min) = [int(v) for v in args[0].split(':')]
timer_func(options.year,
options.month,
options.day,
req_hour,
req_min,
options.num,
options.audio,
options.mesg,
options.volume)
ちょうどスクリプト実行中に日付をまたぐくらいのタイミングで実行すると,
一日前の時間をセットしてしまうことになるけど,その時はすぐにアラートなるから,
運用上は問題ないかな,と.