#!/usr/bin/env python3 import time import os from datetime import datetime import constants def timestamp() -> str: t = datetime.fromtimestamp(time.time()) return t.strftime("%d/%b/%Y:%H:%M:%S%Z") def describe_age_of_file(filename) -> str: try: now = time.time() ts = os.stat(filename).st_ctime age = now - ts return describe_duration(age) except Exception as e: return "?????" def describe_age_of_file_briefly(filename) -> str: try: now = time.time() ts = os.stat(filename).st_ctime age = now - ts return describe_duration_briefly(age) except Exception as e: return "?????" def describe_duration(age: int) -> str: days = divmod(age, constants.seconds_per_day) hours = divmod(days[1], constants.seconds_per_hour) minutes = divmod(hours[1], constants.seconds_per_minute) descr = "" if days[0] > 1: descr = f"{int(days[0]):d} days, " elif days[0] == 1: descr = "1 day, " if hours[0] > 1: descr = descr + f"{int(hours[0]):d} hours, " elif hours[0] == 1: descr = descr + "1 hour, " if len(descr) > 0: descr = descr + "and " if minutes[0] == 1: descr = descr + "1 minute" else: descr = descr + f"{int(minutes[0]):d} minutes" return descr def describe_duration_briefly(age: int) -> str: days = divmod(age, constants.seconds_per_day) hours = divmod(days[1], constants.seconds_per_hour) minutes = divmod(hours[1], constants.seconds_per_minute) descr = "" if days[0] > 0: descr = f"{int(days[0]):d}d " if hours[0] > 0: descr = descr + f"{int(hours[0]):d}h " descr = descr + f"{int(minutes[0]):d}m" return descr # x = describe_age_of_file_briefly("pages/clock_10_none.html") # print x