123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- import urllib.request
- import random
- import sys
- import os
- from datetime import datetime
- from datetime import timedelta
- import dateutil.parser
- import sys
- def cprint(*text,color="blue",space=" ",end="\n"):
- #return 0 #disable print dbg
- if not color:
- print(text)
- return 0
- if color == "green":
- txt = '\033[92m'
- elif color == "red":
- txt = '\033[0;31m\033[1m'
- elif color == "yellow":
- txt = '\033[93m\033[1m'
- elif color == "cyan":
- txt = '\033[96m'
- else:
- txt = '\033[94m'
- for t in text:
- txt += str(t ) +" "
- #HEADER = '\033[95m'
- #OKBLUE = '\033[94m'
- #OKCYAN = '\033[96m'
- #OKGREEN = '\033[92m'
- #WARNING = '\033[93m'
- #FAIL = '\033[91m'
- #ENDC = '\033[0m'
- #BOLD = '\033[1m'
- #UNDERLINE = '\033[4m'
- txt += '\033[0m'
- print(txt,end=end)
- #return txt
- try:
- sys.stdout.flush() # to grep output
- except BrokenPipeError as e:
- print("BROKEN PIPE ERROR CPRINT = EXIT")
- #exit()
- host = "http://uxsrv.de"
- host = "http://librelight.de"
- #host = "https://google.com"
- host += "?r={}".format(random.randint(1_000_000_000,9_000_000_000))
- print(sys.argv)
- if "-v" in sys.argv:print(host)
- if "-v" in sys.argv:print()
- import ssl
- #ignore cert warning ... localtime is not correct
- ctx = ssl.create_default_context()
- ctx.check_hostname = False
- ctx.verify_mode = ssl.CERT_NONE
- now = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
- now = dateutil.parser.parse(now)
- now = now.replace(tzinfo=None)
- try:
- with urllib.request.urlopen(host,context=ctx) as response:
- #print(dir(response) )
- date = response.getheader("date")
- if "-v" in sys.argv:print("response:".ljust(20," "),date)
-
- date = dateutil.parser.parse(date)
-
- date = date.replace(tzinfo=None)
- delta = date-now
- if "-v" in sys.argv:print("delta: ".ljust(20," "),delta,type(delta))
-
- #print( timedelta(seconds=100))
- max_delta=timedelta(seconds=100)
- min_delta=timedelta(seconds=-100)
- print("-------")
- print( delta > max_delta , delta < min_delta)
- if delta > min_delta and delta < max_delta:
- cprint(delta,"delta is OK",color="green")
- exit()
- cprint(delta,"delta is to high",color="red")
- if "-v" in sys.argv:print("parse: ".ljust(20," "),date)
- date = date.strftime("%Y-%m-%d %H:%M:%S")
- ndate = os.popen("date").read().strip()
- print("current date: ".ljust(20," "),ndate)
- # set local linux date
- CMD = "/usr/bin/date -u -s '{}' > /dev/null ".format(date)
- print("CMD:".ljust(20," "),CMD)
- os.system(CMD)
- date = os.popen("date").read().strip()
- print("current date: ".ljust(20," "),date)
- # set hwclock
- date = os.popen("/usr/sbin/hwclock").read().strip()
- print("hwclock: ".ljust(20," "),date)
- date = os.popen("/usr/sbin/hwclock -w").read().strip()
- print("hwclock: ".ljust(20," "),date)
- except Exception as e:
- cprint("ERR",e,color="red")
|