mirror of
				https://github.com/karl0ss/comfy_fm24_newgens.git
				synced 2025-10-25 12:43:59 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			103 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| import xml.etree.ElementTree as ET
 | |
| 
 | |
| 
 | |
| def parse_or_create_xml(file_path, create_if_missing=True):
 | |
|     """
 | |
|     Parse an existing XML file or create a new one if it doesn't exist.
 | |
|     """
 | |
|     if os.path.exists(file_path):
 | |
|         tree = ET.parse(file_path)
 | |
|         root = tree.getroot()
 | |
|     elif create_if_missing:
 | |
|         # Create a new XML structure if file doesn't exist
 | |
|         root = ET.Element("record")
 | |
|         tree = ET.ElementTree(root)
 | |
|     else:
 | |
|         raise FileNotFoundError(f"The file {file_path} does not exist.")
 | |
|     return tree, root
 | |
| 
 | |
| 
 | |
| def get_or_create_maps_list(root):
 | |
|     """
 | |
|     Get the <list id="maps"> element or create it if it doesn't exist.
 | |
|     """
 | |
|     maps = root.find(".//list[@id='maps']")
 | |
|     if maps is None:
 | |
|         maps = ET.SubElement(root, "list", id="maps")
 | |
|     return maps
 | |
| 
 | |
| 
 | |
| def add_uid_to_maps(maps, uid, football_manager_version):
 | |
|     """
 | |
|     Add a UID to the maps list if it doesn't already exist.
 | |
|     """
 | |
|     if football_manager_version == "2024":
 | |
|         prefix = "r-"
 | |
|     else:
 | |
|         prefix = ""
 | |
|     for record in maps.findall("record"):
 | |
|         if record.attrib.get("from") == str(uid):
 | |
|             return  # UID already exists
 | |
|     ET.SubElement(
 | |
|         maps,
 | |
|         "record",
 | |
|         attrib={
 | |
|             "from": str(uid),
 | |
|             "to": f"graphics/pictures/person/{prefix}{uid}/portrait",
 | |
|         },
 | |
|     )
 | |
| 
 | |
| 
 | |
| def update_player_file_list(folder_path, processed_players):
 | |
|     """
 | |
|     Updates each player in the list with the full file path and `.png` extension.
 | |
| 
 | |
|     Args:
 | |
|         folder_path (str): The path to the folder where the player files are stored.
 | |
|         processed_players (list): A list of player names to be updated.
 | |
|     """
 | |
|     for i in range(len(processed_players)):
 | |
|         processed_players[i] = os.path.join(folder_path, f"{processed_players[i]}.png")
 | |
|     return processed_players
 | |
| 
 | |
| 
 | |
| def create_config_xml(folder_path, processed_players, football_manager_version):
 | |
|     """
 | |
|     Create a new config.xml file based on .png files in the folder.
 | |
|     """
 | |
|     # Prepare the XML structure
 | |
|     root = ET.Element("record")
 | |
|     ET.SubElement(root, "boolean", id="preload", value="false")
 | |
|     ET.SubElement(root, "boolean", id="amap", value="false")
 | |
|     maps = ET.SubElement(root, "list", id="maps")
 | |
| 
 | |
|     # Add records for each .png file
 | |
|     for player in processed_players:
 | |
|         add_uid_to_maps(maps, player, football_manager_version)
 | |
| 
 | |
|     # Save the XML file
 | |
|     output_path = os.path.join(folder_path, "config.xml")
 | |
|     tree = ET.ElementTree(root)
 | |
|     tree.write(output_path, encoding="utf-8", xml_declaration=True)
 | |
|     print(f"Config XML created at: {output_path}")
 | |
| 
 | |
| 
 | |
| def append_to_config_xml(folder_path, processed_players, football_manager_version):
 | |
|     """
 | |
|     Append new UIDs to an existing config.xml file.
 | |
|     """
 | |
|     file_path = os.path.join(folder_path, "config.xml")
 | |
|     tree, root = parse_or_create_xml(file_path, create_if_missing=False)
 | |
| 
 | |
|     # Get the maps list
 | |
|     maps = get_or_create_maps_list(root)
 | |
| 
 | |
|     # Add new UIDs
 | |
|     for uid in processed_players:
 | |
|         add_uid_to_maps(maps, uid, football_manager_version)
 | |
| 
 | |
|     # Save the updated XML file
 | |
|     tree.write(file_path, encoding="utf-8", xml_declaration=True)
 | |
|     print(f"Appended new UIDs to {file_path}")
 |