51a29e7680400268ea09ecda867df6ad41105545
[kiosk.git] / utils.py
1 import time
2 import os
3 import constants
4 from datetime import datetime
5
6 def timestamp():
7     t = datetime.fromtimestamp(time.time())
8     return t.strftime('%d/%b/%Y:%H:%M:%S%Z')
9
10 def describe_age_of_file(filename):
11     try:
12         now = time.time()
13         ts = os.stat(filename).st_ctime
14         age = now - ts
15         return describe_duration(age)
16     except Exception as e:
17         return "?????"
18
19 def describe_age_of_file_briefly(filename):
20     try:
21         now = time.time()
22         ts = os.stat(filename).st_ctime
23         age = now - ts
24         return describe_duration_briefly(age)
25     except Exception as e:
26         return "?????"
27
28 def describe_duration(age):
29     days = divmod(age, constants.seconds_per_day)
30     hours = divmod(days[1], constants.seconds_per_hour)
31     minutes = divmod(hours[1], constants.seconds_per_minute)
32
33     descr = ""
34     if (days[0] > 1):
35         descr = "%d days, " % days[0]
36     elif (days[0] == 1):
37         descr = "1 day, "
38     if (hours[0] > 1):
39         descr = descr + ("%d hours, " % hours[0])
40     elif (hours[0] == 1):
41         descr = descr + "1 hour, "
42     if (len(descr) > 0):
43         descr = descr + "and "
44     if (minutes[0] == 1):
45         descr = descr + "1 minute"
46     else:
47         descr = descr + ("%d minutes" % minutes[0])
48     return descr
49
50 def describe_duration_briefly(age):
51     days = divmod(age, constants.seconds_per_day)
52     hours = divmod(days[1], constants.seconds_per_hour)
53     minutes = divmod(hours[1], constants.seconds_per_minute)
54     descr = ""
55     if (days[0] > 0):
56         descr = "%dd " % days[0]
57     if (hours[0] > 0):
58         descr = descr + ("%dh " % hours[0])
59     descr = descr + ("%dm" % minutes[0])
60     return descr
61
62 #x = describe_age_of_file_briefly("pages/clock_10_none.html")
63 #print x