import time

logSdkMapping = {
    'jrtt':'com.jmhy.sdk.statistics.JrttStatistics',
    'gdt':'com.jmhy.sdk.statistics.GdtStatistics'
}

def checkConfig(config):
    '''
    检查配置
    '''
    print('check config ...')
    if type(config) == dict:
        return checkChannelConfig(config)
    elif type(config) == list:
        for itemConfig in config:
            if not checkChannelConfig(itemConfig):
                return False
    return True

def checkChannelConfig(config):
    if 'name' not in config or 'packageName' not in config:
        print('name or packageName not exists in config')
        return False

    if 'subChannel' not in config:
        print('subChannel not exists in config')
        return False

    # 默认值
    if 'changeIcon' not in config:
        config['changeIcon'] = False
    if 'switchIcon' not in config:
        config['switchIcon'] = False
    if 'addLauncher' not in config:
        config['addLauncher'] = False
    if 'splitDex' not in config:
        config['splitDex'] = True
    if 'clearCache' not in config:
        config['clearCache'] = True
    if 'aapt2disable' not in config:
        config['aapt2disable'] = False
    if 'v2disable' not in config:
        config['v2disable'] = False
    if 'screenOrientation' not in config:
        config['screenOrientation'] = 'landscape'
    if 'outName' not in config:
        config['outName'] = config['name']

    if 'logSdk' in config:
        log = config['logSdk']
        setLog(config, log)



    return True

def setLog(config, logSdk):
    clazzList = []
    for log in logSdk:
        if log in logSdkMapping:
            clazzList.append(logSdkMapping[log])
        
    configData = None
    if 'configData' in config:
        configData = config['configData']
        configData['jm_log_sdk'] = clazzList
    else:
        config['configData'] = {
            'jm_log_sdk':clazzList
        }

def replaceArgs(config):
    '''
    替换占位符
    '''
    if type(config) == dict:
        replaceItemArgs(config)
    elif type(config) == list:
        # 遍历数组
        for arg in config:
            replaceItemArgs(arg)

def replaceItemArgs(config):
    '''
    替换占位符
    '''
    # 遍历字典
    for arg in config:
        if type(config[arg]) == dict:
            replaceArgs(config[arg])
        elif type(config[arg]) == str:
            replaceString(config, arg)

def replaceString(config, arg):
    '''
    替换占位符
    '''
    content = config[arg]
    if '${DATE}' in content:
        content = content.replace('${DATE}', getDate())

    config[arg] = content

def getDate():
    '''
    获取日期
    '''
    return time.strftime("%Y%m%d", time.localtime())

def getTime(seconds):
    '''
    获取时间
    '''
    time = int(seconds)
    if time < 60:
        return str(time) + '秒'
    else:
        return str(round(time/60)) + '分' + str(time%60) + '秒'