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