"""
A quick script to turn lightmeter input from CET(+DST) to UTC.

[Einfach in einem Verzeichnis mit Dateien wie YYYYMMDD.txt laufen lassen
und die _utc.txt-Dateien einsammeln.]
"""

import datetime
import glob
import os

DST_THRESH = datetime.datetime(2009, 10, 25)
TO_UTC_DST = datetime.timedelta(hours=-2)
TO_UTC_NODST = datetime.timedelta(hours=-1)

def doConversion(srcName, destName):
  src, dest = open(srcName), open(destName, "w")
  for ln in src:
    try:
      dt = datetime.datetime.strptime(ln[:19], "%Y-%m-%d %H:%M:%S")
    except ValueError:  # some weird line without datetime
      dest.write(ln)
      continue
    if dt<DST_THRESH:
      dt = dt+TO_UTC_DST
    else:
      dt = dt+TO_UTC_NODST
    dest.write(dt.strftime("%Y-%m-%d %H:%M:%S"+ln[19:]))
  src.close()
  dest.close()


def convertOne(fName):
  baseName = os.path.splitext(os.path.basename(fName))[0]
  try:
    baseDate = datetime.datetime.strptime(baseName, "%Y%m%d")
  except ValueError:
    print "SKIPPING %s"%fName
    return
  doConversion(fName, baseName+"_utc.txt")
  print "Done %s"%fName


if __name__=="__main__":
  for fName in glob.glob("*.txt"):
    convertOne(fName)
