aboutsummaryrefslogtreecommitdiff
path: root/timebomb.py
blob: 9cb849684ad71669c6ce08623b611250f30c4fc6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/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-1) * pbar_len)
        print('#' * progress + '_' * int(pbar_len-progress), end='')
        print('  {:02d}:{:02d}  '.format(m, s), end='\r')
        time.sleep(1)
    
if __name__ == '__main__':
    main()
in each repos: see "about"-tab (if existing) for more details / README.
mailto contact at omeckman dot net
all timestamps in UTC (German winter time: UTC+01:00, summer time: UTC+02:00)
dark theme is a modded version of: https://gist.github.com/Yoplitein/f4b671a2ec70c9e743fa