#!/usr/bin/env python3 import sys from datetime import datetime import time import pytz try: if len(sys.argv) < 3: print("Usage: {scriptname} timezone_left timezone_right".format(scriptname=sys.argv[0]), file=sys.stderr) exit(1) try: tzleft = pytz.timezone(sys.argv[1]) tzright = pytz.timezone(sys.argv[2]) except pytz.exceptions.UnknownTimeZoneError as e: print('Unknown time zone "{}"'.format(e.args[0]), file=sys.stderr) exit(1) hourhands = "" minutehands = "" def face_for(t): minute = minutehands[ t.minute // 5 ] hour = hourhands [ t.hour % 12 ] return "%{F000}%{O-24}" + hour + "%{O-24}" + minute def color_for(t): if t.hour < 5 or t.hour > 22: return "888" elif t.hour < 10: return "DB9" elif t.hour < 14: return "DDB" elif t.hour < 19: return "DDD" else: return "D9B" while True: utcnow = datetime.now(tz=pytz.utc) localnow = datetime.now() leftnow = utcnow.astimezone(tzleft ) rightnow = utcnow.astimezone(tzright) print( localnow.strftime("%A") + " " + "%{T8}%{F#" + color_for(leftnow) + "}" + face_for(leftnow) + "%{F}%{T-}" + " %{F"+color_for(localnow)+"}" + # "%{T4}" + localnow.strftime("%H:%M") + "%{T-}" + "%{T8}" + face_for(localnow) + "%{T-}" + "%{F} " + "%{T8}%{F#" + color_for(rightnow) + "}" + face_for(rightnow) + "%{F}%{T-}" + " " + localnow.strftime("%d %b"), flush = True ) delay = 60 - localnow.second - (localnow.microsecond * 10e-7) time.sleep(delay) except Exception as e: print(e, file=sys.stderr)