import hashlib import shutil from pathlib import Path from d4dj_utils.manager.asset_manager import AssetManager from d4dj_utils.master.master_asset import MasterAsset from miyu_bot.commands.common.master_asset_manager import MasterFilterManager, hash_master def main(): target_dir = Path('./export') target_dir.mkdir(parents=True, exist_ok=True) asset_manager = AssetManager('assets') music_dir = target_dir / 'music' chart_dir = music_dir / 'charts' card_dir = target_dir / 'cards' card_icon_dir = card_dir / 'icons' card_art_dir = card_dir / 'art' music_dir.mkdir(exist_ok=True) chart_dir.mkdir(exist_ok=True) card_dir.mkdir(exist_ok=True) card_icon_dir.mkdir(exist_ok=True) card_art_dir.mkdir(exist_ok=True) for music in asset_manager.music_master.values(): for chart in music.charts.values(): try: chart_hash = hash_master(chart) chart_path = chart.image_path target_path = chart_dir / f'{chart_path.stem}_{chart_hash}{chart_path.suffix}' shutil.copy(chart_path, target_path) except FileNotFoundError: pass for card in asset_manager.card_master.values(): card_hash = hash_master(card) try: for lb in range(2): art_path = card.art_path(lb) art_target = card_art_dir / f'{art_path.stem}_{card_hash}{art_path.suffix}' icon_path = card.icon_path(lb) icon_target = card_icon_dir / f'{icon_path.stem}_{card_hash}{icon_path.suffix}' shutil.copy(art_path, art_target) shutil.copy(icon_path, icon_target) except FileNotFoundError: pass if __name__ == '__main__': main()