53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
import os
 | 
						|
import shutil
 | 
						|
from pathlib import Path
 | 
						|
 | 
						|
from scripts.task import Task
 | 
						|
from utils import FileUtils
 | 
						|
from utils.logger_utils import app_logger
 | 
						|
 | 
						|
 | 
						|
class ProjectUpdateImage(Task):
 | 
						|
 | 
						|
    def update_image(self):
 | 
						|
        """
 | 
						|
        更新游戏的资源
 | 
						|
        :return:
 | 
						|
        """
 | 
						|
 | 
						|
        if not self.context.update_res_img:
 | 
						|
            app_logger().info("No update image found")
 | 
						|
            return
 | 
						|
        dst = os.path.join(self.context.temp_project_path, "drawable_res")
 | 
						|
        if os.path.exists(dst):
 | 
						|
            shutil.rmtree(dst)
 | 
						|
 | 
						|
        FileUtils.decompress(self.context.res_img_path, dst)
 | 
						|
 | 
						|
        if os.path.join(dst, "drawable-xxhdpi"):
 | 
						|
            dst = os.path.join(dst, "drawable-xxhdpi")
 | 
						|
 | 
						|
        target_root_path = os.path.join(self.context.temp_project_path,
 | 
						|
                                        f"launcher-game{os.sep}res{os.sep}drawable-xxhdpi")
 | 
						|
 | 
						|
        image_list = list(map(lambda f: Path(f).stem, os.listdir(target_root_path)))
 | 
						|
 | 
						|
        for file in os.listdir(dst):
 | 
						|
            if file == ".DS_Store":
 | 
						|
                continue
 | 
						|
            res_name = Path(file).stem
 | 
						|
            file_name = self.context.get_map_from_key(res_name)
 | 
						|
            temp_tar = os.path.join(dst, file)
 | 
						|
            temp_dst = os.path.join(target_root_path, file).replace(file_name, self.context.get_map_from_key(res_name))
 | 
						|
            if file_name in image_list:
 | 
						|
                FileUtils.delete(os.path.join(target_root_path, file_name + ".png"))
 | 
						|
                FileUtils.delete(os.path.join(target_root_path, file_name + ".jpg"))
 | 
						|
                pass
 | 
						|
            app_logger().info(f"copy {temp_tar} => {temp_dst}")
 | 
						|
            FileUtils.copy(temp_tar, temp_dst, True)
 | 
						|
            pass
 | 
						|
 | 
						|
    def execute(self):
 | 
						|
        self.update_image()
 | 
						|
        self.context.save_cache_config("res_img", self.context.config_res_img_md5)
 |