1
0

Remove unzip functiionality
All checks were successful
Run Python tests (through Pytest) / Test (push) Successful in 34s
Verify Python project can be installed, loaded and have version checked / Test (push) Successful in 30s

This commit is contained in:
Jon Michael Aanes 2025-02-02 01:03:04 +01:00
parent 19c7eb37de
commit 36db389e3c

View File

@ -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)