73 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
import os
 | 
						|
import shutil
 | 
						|
 | 
						|
import javaproperties
 | 
						|
 | 
						|
from scripts.task import Task
 | 
						|
from utils import FileUtils
 | 
						|
from utils.logger_utils import app_logger
 | 
						|
 | 
						|
 | 
						|
class ProjectUpdateConfig(Task):
 | 
						|
 | 
						|
    def update_config(self):
 | 
						|
        target_path = self.context.config_path
 | 
						|
        dst = os.path.join(self.context.temp_project_path, os.path.basename(target_path).replace(".zip", ""))
 | 
						|
        
 | 
						|
        if not self.context.update_config:
 | 
						|
            app_logger().info("配置文件没有更新")
 | 
						|
 | 
						|
            with open(os.path.join(dst, "tkg_config_mainly.properties"), 'rb') as f:
 | 
						|
                self.context.config = javaproperties.load(f)
 | 
						|
 | 
						|
            # 不打admob
 | 
						|
            if self.context.admob_app_id is None or self.context.admob_app_id == "":
 | 
						|
                self.context.admob_app_id = self.context.get_config("admob_id")
 | 
						|
            return
 | 
						|
 | 
						|
        """
 | 
						|
        更新配置文件
 | 
						|
        :return:
 | 
						|
        """
 | 
						|
 | 
						|
        if os.path.exists(dst):
 | 
						|
            shutil.rmtree(dst)
 | 
						|
 | 
						|
        result = FileUtils.decompress(target_path, dst)
 | 
						|
        app_logger().debug(f"{target_path} -> {dst} , 解压结果: {result}")
 | 
						|
 | 
						|
        with open(os.path.join(dst, "tkg_config_mainly.properties"), 'rb') as f:
 | 
						|
            self.context.config = javaproperties.load(f)
 | 
						|
 | 
						|
        # 不打admob
 | 
						|
        if self.context.admob_app_id is None or self.context.admob_app_id == "":
 | 
						|
            self.context.admob_app_id = self.context.get_config("admob_id")
 | 
						|
        mainly_path = os.path.join(dst, "mainly")
 | 
						|
        if not os.path.exists(mainly_path):
 | 
						|
            mainly_path = os.path.join(dst, "appConfig")
 | 
						|
 | 
						|
        google_services_json_path = os.path.join(dst, "google-services.json")
 | 
						|
        if not os.path.exists(google_services_json_path):
 | 
						|
            google_services_json_path = os.path.join(dst, "appConfig", "google-services.json")
 | 
						|
 | 
						|
        FileUtils.copy(google_services_json_path,
 | 
						|
                       os.path.join(self.context.temp_project_path, "google-services.json"),
 | 
						|
                       True)
 | 
						|
 | 
						|
        dst_path = os.path.join(self.context.temp_project_path, f"launcher-game{os.sep}assets")
 | 
						|
 | 
						|
        for file in list(filter(lambda f: not (f == "google_fonts.json" or f == "pag_gl_slide.pag"),
 | 
						|
                                os.listdir(dst_path))):
 | 
						|
            FileUtils.delete(os.path.join(dst_path, file), True)
 | 
						|
            pass
 | 
						|
 | 
						|
        for file in list(filter(lambda f: f.find(".") <= 0, os.listdir(mainly_path))):
 | 
						|
            FileUtils.copy(os.path.join(mainly_path, file), os.path.join(dst_path, file), True)
 | 
						|
 | 
						|
        pass
 | 
						|
 | 
						|
    def execute(self):
 | 
						|
        self.update_config()
 | 
						|
        self.context.save_cache_config("config", self.context.config_config_md5)
 | 
						|
        pass
 |