Files
KKAFIO/modules/remove_chara.py
2024-10-06 23:43:33 +01:00

50 lines
1.8 KiB
Python

from pathlib import Path
from util.classifier import CardType, get_card_type, is_male, is_coordinate
from util.logger import logger
class RemoveChara:
def __init__(self, config, file_manager):
"""Initializes the RemoveChara module.
Args:
config (Config): KKAFIO Config instance
"""
self.config = config
self.file_manager = file_manager
self.game_path = self.config.game_path
self.input_path = self.config.remove_chara["InputPath"]
def resolve_png(self, image_path: Path):
image_bytes = image_path.read_bytes()
card_type = get_card_type(image_bytes)
match card_type:
case CardType.KK:
if is_male(image_bytes):
self.file_manager.find_and_remove("CHARA M", image_path, self.game_path["charaMale"])
else:
self.file_manager.find_and_remove("CHARA F", image_path, self.game_path["charaFemale"])
case CardType.UNKNOWN:
if is_coordinate(image_bytes):
self.file_manager.find_and_remove("COORD", image_path, self.game_path["coordinate"])
else:
self.file_manager.find_and_remove("OVERLAYS", image_path, self.game_path["Overlays"])
def run(self):
foldername = self.input_path.name
logger.info("FOLDER", foldername)
file_list, archive_list = self.file_manager.find_all_files(self.input_path)
for path, size, extension in file_list:
match extension:
case ".zipmod":
self.file_manager.find_and_remove("MODS", path, self.game_path["mods"])
case ".png":
self.resolve_png(path)
case _:
pass
logger.line()