#!/bin/env python3
# Egg timer
# 2020-02-08
# OM
from tkinter import *
from tkinter import messagebox
from tkinter import Canvas
import argparse
import time
root = Tk()
def message(m, s):
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
if screen_width <= 0:
screen_width = 1024
if screen_height <= 0:
screen_height = 768
c = Canvas(root, bg = "darkred", \
width = screen_width, height = screen_height)
c.pack()
messagebox.showwarning('ALARM', 'Timer ran ' + str(m) + ' m and ' \
+ str(s) + ' s')
#root.mainloop()
def main():
argparser = argparse.ArgumentParser()
argparser.add_argument(
'-s',
help='seconds',
type=int,
nargs=1
)
argparser.add_argument(
'-m',
help='minutes',
type=int,
nargs=1
)
args = argparser.parse_args()
if not args.s and not args.m:
argparser.print_help()
time_s = 0
time_m = 0
if args.s:
time_s = abs(args.s[0])
if args.m:
time_m = abs(args.m[0])
if args.s or args.m:
sleep(m=time_m, s=time_s)
message(m=time_m, s=time_s)
def sleep(m, s):
print('Start: ' + time.ctime())
print('Sleeping for: ' + str(m) \
+ ' mins and ' + str(s) + ' seconds')
sleep_time_s = s + (m*60)
pbar_len = 40
for x in range(sleep_time_s):
pr_m, pr_s = divmod(x, 60)
print(' {:02d}:{:02d} '.format(pr_m, pr_s), end='')
progress = int(x/sleep_time_s * pbar_len)
print('#' * progress + '_' * int(pbar_len-progress), end='')
print(' {:02d}:{:02d} '.format(m, s), end='\r')
time.sleep(1)
if __name__ == '__main__':
main()