import sys
import os
import logging

logging.basicConfig(format='[SecFace] %(message)s')
logger = logging.getLogger("find_algorithm")
logger.setLevel(logging.INFO)

MAX_LEN = 20

def find_algorithm():
    try:
        f = open(sys.argv[1], "r")
    except:
        f = False
        logger.info("Can't open file")

    if f:
        flag = False

        while True:
            line = f.readline()
            if not line:
                break

            # find prefix
            if "Face_version_" in line:
                index = line.find("Face_version_")
                version_len = int(line[index + 13 : index + 15])

                flag = True

                # version_len is over MAX_LEN
                if version_len > MAX_LEN:
                    logger.warning("Too long to read")
                    break

                # index + 15 + version_len is over length of line
                # 15 is length of Face_version_(version_length)
                if index + 15 + version_len > len(line):
                    logger.warning("Too long to read")
                    break
                
                logger.info("FR v." + line[index + 15 : index + 15 + version_len])
                
                # algorithm version check
                # if there is no version or algorithm_version is an invalid value, return 0
                # if algorithm_version is valid value, return 4 or 5
                path_index = sys.argv[1].find("algorithm/v")
                if path_index != -1:
                    algorithm_version = sys.argv[1][path_index+11]
                    try:
                        int(algorithm_version)
                        print algorithm_version
                    except:
                        print 0
                else:
                    print 0
                    
                break

        f.close()

        if not flag:
            logger.info("[SecFace] Can't find Algorithm version")


if os.path.isfile(sys.argv[1]):
    find_algorithm()
else:
    logger.info("[SecFace] Can't find file")



