import sys
import os
import io

def is_float(string):
    try:
        float(string)
        return True
    except ValueError:
        return False

def read_allfilelist(platform, version, files):
    allformat = "Hotfix/{0}/LV{1}/{1}.0/AllFileList.csv"
    with io.open(allformat.format(platform, version), 'r', encoding="utf-8") as file:
        lines = file.readlines()
        for line in lines:
            ls = line.split(",")
            if is_float(ls[2]):
                files[ls[0]] = float(ls[2])

def compare_version(platform, curVersion, lastVersion):
    lastfiles = {}
    curfiles = {}
    
    read_allfilelist(platform, lastVersion, lastfiles)
    read_allfilelist(platform, curVersion, curfiles)

    difffiles = curfiles.copy()
    for item in curfiles:
        # print(item, curfiles[item])
        if item in lastfiles:
            difffiles[item] = curfiles[item] - lastfiles[item]

    diffkeys = list(difffiles.keys())
    diffkeys.sort(key = difffiles.get, reverse = True)
    with io.open("diff{0}-{1}.0-{2}.0.csv".format(platform,lastVersion,curVersion), 'w', encoding="utf-8") as file:
        for item in diffkeys:
            # print(item, difffiles[item])
            if item in lastfiles:
                file.write(item + "," + str(difffiles[item]) +","+ str(curfiles[item]) +"-"+ str(lastfiles[item]) + "\n")
            else:
                file.write(item + "," + str(difffiles[item]) +","+ str(curfiles[item]) +"-0" + "\n")

if __name__ == '__main__':

    compare_version("Android", "2.52", "2.50")
    compare_version("iOS", "2.52", "2.50")

    compare_version("Android", "2.50", "2.49")
    compare_version("iOS", "2.50", "2.49")

