config_utils.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import time
  2. logSdkMapping = {
  3. 'jrtt':'com.jmhy.sdk.statistics.JrttStatistics',
  4. 'gdt':'com.jmhy.sdk.statistics.GdtStatistics'
  5. }
  6. def checkConfig(config):
  7. '''
  8. 检查配置
  9. '''
  10. print('check config ...')
  11. if type(config) == dict:
  12. return checkChannelConfig(config)
  13. elif type(config) == list:
  14. for itemConfig in config:
  15. if not checkChannelConfig(itemConfig):
  16. return False
  17. return True
  18. def checkChannelConfig(config):
  19. if 'name' not in config or 'packageName' not in config:
  20. print('name or packageName not exists in config')
  21. return False
  22. if 'subChannel' not in config:
  23. print('subChannel not exists in config')
  24. return False
  25. # 默认值
  26. if 'changeIcon' not in config:
  27. config['changeIcon'] = False
  28. if 'switchIcon' not in config:
  29. config['switchIcon'] = False
  30. if 'addLauncher' not in config:
  31. config['addLauncher'] = False
  32. if 'splitDex' not in config:
  33. config['splitDex'] = True
  34. if 'clearCache' not in config:
  35. config['clearCache'] = True
  36. if 'aapt2disable' not in config:
  37. config['aapt2disable'] = False
  38. if 'v2disable' not in config:
  39. config['v2disable'] = False
  40. if 'screenOrientation' not in config:
  41. config['screenOrientation'] = 'landscape'
  42. if 'outName' not in config:
  43. config['outName'] = config['name']
  44. if 'logSdk' in config:
  45. log = config['logSdk']
  46. setLog(config, log)
  47. return True
  48. def setLog(config, logSdk):
  49. clazzList = []
  50. for log in logSdk:
  51. if log in logSdkMapping:
  52. clazzList.append(logSdkMapping[log])
  53. configData = None
  54. if 'configData' in config:
  55. configData = config['configData']
  56. configData['jm_log_sdk'] = clazzList
  57. else:
  58. config['configData'] = {
  59. 'jm_log_sdk':clazzList
  60. }
  61. def replaceArgs(config):
  62. '''
  63. 替换占位符
  64. '''
  65. if type(config) == dict:
  66. replaceItemArgs(config)
  67. elif type(config) == list:
  68. # 遍历数组
  69. for arg in config:
  70. replaceItemArgs(arg)
  71. def replaceItemArgs(config):
  72. '''
  73. 替换占位符
  74. '''
  75. # 遍历字典
  76. for arg in config:
  77. if type(config[arg]) == dict:
  78. replaceArgs(config[arg])
  79. elif type(config[arg]) == str:
  80. replaceString(config, arg)
  81. def replaceString(config, arg):
  82. '''
  83. 替换占位符
  84. '''
  85. content = config[arg]
  86. if '${DATE}' in content:
  87. content = content.replace('${DATE}', getDate())
  88. config[arg] = content
  89. def getDate():
  90. '''
  91. 获取日期
  92. '''
  93. return time.strftime("%Y%m%d", time.localtime())
  94. def getTime(seconds):
  95. '''
  96. 获取时间
  97. '''
  98. time = int(seconds)
  99. if time < 60:
  100. return str(time) + '秒'
  101. else:
  102. return str(round(time/60)) + '分' + str(time%60) + '秒'