From 36db389e3c13314278adb89696fc5c5a60d1a679 Mon Sep 17 00:00:00 2001 From: Jon Michael Aanes Date: Sun, 2 Feb 2025 01:03:04 +0100 Subject: [PATCH] Remove unzip functiionality --- scripts/download_simfiles.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/scripts/download_simfiles.py b/scripts/download_simfiles.py index 1e5b5cc..5b1e511 100644 --- a/scripts/download_simfiles.py +++ b/scripts/download_simfiles.py @@ -8,6 +8,9 @@ from pathlib import Path import personal_data.csv_import import personal_data.main import dataclasses +import logging + +logger = logging.getLogger(__name__) @dataclasses.dataclass class Result: @@ -25,13 +28,13 @@ def parse_results(response) -> list[Result]: results = [] for tr in soup.select('table tbody tr'): - if tr.get_text().strip() == 'Nothing found.': - continue - cells = tr.select('td') title = cells[0].get_text().strip() - id = cells[0].a['href'].removeprefix('viewsimfile.php?simfileid=') + link = cells[0].a + if link is None: + continue + id = link['href'].removeprefix('viewsimfile.php?simfileid=') levels = cells[1].get_text().strip() results.append(Result(title , int(id), levels)) return results @@ -52,6 +55,7 @@ def search_for_song(song_data) -> Result | None: }) if results := parse_results(response): return results[0] + logger.warning('No results for %s', song_data['song.name_eng']) return None def download_song(song_data, output_dir: Path): @@ -60,14 +64,16 @@ def download_song(song_data, output_dir: Path): return path_zip = output_dir/f'zenius-{song_result.id}-{song_result.title}.zip' + if path_zip.exists(): + logger.warning('Skipping existing file') + return + + logger.warning('Downloading to %s', path_zip) url = f'https://zenius-i-vanisher.com/v5.2/download.php?type=ddrsimfile&simfileid={song_result.id}' cmd = ['curl', '-L', '--fail', url, '-o', path_zip] - result = subprocess.run(cmd, check=True, capture_output=True) - - with zipfile.ZipFile(path_zip, 'r') as zip_ref: - zip_ref.extractall(output_dir) + subprocess.run(cmd, check=True, capture_output=True) def main(): csv_path = Path('./output/myanimelist_songs.csv') @@ -76,6 +82,7 @@ def main(): songs = personal_data.csv_import.load_csv_file(csv_path) for song in songs: + logger.warning('Trying to download %s', song['song.name_eng']) download_song(song, output_path)