config_utils.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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 'screenOrientation' not in config:
  37. config['screenOrientation'] = 'landscape'
  38. if 'outName' not in config:
  39. config['outName'] = config['name']
  40. if 'logSdk' in config:
  41. log = config['logSdk']
  42. setLog(config, log)
  43. return True
  44. def setLog(config, logSdk):
  45. clazzList = []
  46. for log in logSdk:
  47. if log in logSdkMapping:
  48. clazzList.append(logSdkMapping[log])
  49. configData = None
  50. if 'configData' in config:
  51. configData = config['configData']
  52. configData['jm_log_sdk'] = clazzList
  53. else:
  54. config['configData'] = {
  55. 'jm_log_sdk':clazzList
  56. }
  57. def replaceArgs(config):
  58. '''
  59. 替换占位符
  60. '''
  61. if type(config) == dict:
  62. replaceItemArgs(config)
  63. elif type(config) == list:
  64. # 遍历数组
  65. for arg in config:
  66. replaceItemArgs(arg)
  67. def replaceItemArgs(config):
  68. '''
  69. 替换占位符
  70. '''
  71. # 遍历字典
  72. for arg in config:
  73. if type(config[arg]) == dict:
  74. replaceArgs(config[arg])
  75. elif type(config[arg]) == str:
  76. replaceString(config, arg)
  77. def replaceString(config, arg):
  78. '''
  79. 替换占位符
  80. '''
  81. content = config[arg]
  82. if '${DATE}' in content:
  83. content = content.replace('${DATE}', getDate())
  84. config[arg] = content
  85. def getDate():
  86. '''
  87. 获取日期
  88. '''
  89. return time.strftime("%Y%m%d", time.localtime())