#!/usr/bin/python3.7 import os from datetime import datetime, timedelta from urllib.parse import parse_qs print("Content-Type: text/html\n\n") STREAM_KEY_FILE = "stream-key.json" LOG_FILE = "stream-key.log" ci_flag = False def write_log(text): log_items = [] # open log file for reading if os.path.exists(LOG_FILE): with open(LOG_FILE, "r") as f: log_items = f.readlines() if len(log_items) == 1000: log_items.pop(0) log_items.append(text) # reopen the file for appending with open(LOG_FILE, "w") as f: f.writelines(log_items) try: # update log file remote_addr = os.getenv("REMOTE_ADDR", "127.0.0.1") # "175.141.119.171 qs = os.getenv("QUERY_STRING") if qs == None: raise Exception("QUERY_STRING is empty.") # timestamp = int(os.environ["QUERY_STRING"].split("=")[1]) # 1622465624 qs = parse_qs(qs, strict_parsing=True) timestamp = int(qs["t"][0]) if "ci" in qs.keys(): ci_flag = bool(int(qs["ci"][0])) d = datetime.fromtimestamp(timestamp) d = d + timedelta(hours=8) # log_text = "Stream key accessed from %s at %s.\n" % (remote_addr, d.strftime("%c")) log_text = "Check-in detected from %s at %s.\n" % (remote_addr, d.strftime("%c")) write_log(log_text) # read stream key file if ci_flag != True: with open(STREAM_KEY_FILE, "r") as f: print(f.read()) except Exception as ex: # print("Error:", ex) pass # fail silently in production