| import os | |
| import requests | |
| import subprocess | |
| import time | |
| from tqdm import tqdm | |
| def download(filename, url): | |
| try: | |
| response = requests.get(url, stream=True) | |
| total_size = int(response.headers.get("content-length", 0)) | |
| chunk_size = 1024 | |
| with open(filename, "wb") as file, tqdm( | |
| desc=f"Downloading {filename} from '{url}'...", | |
| total=total_size, | |
| unit="B", | |
| unit_scale=True, | |
| unit_divisor=1024, | |
| ) as bar: | |
| for data in response.iter_content(chunk_size=chunk_size): | |
| size = file.write(data) | |
| bar.update(size) | |
| except Exception as e: | |
| print(f"Error: {e}, retrying...") | |
| time.sleep(10) | |
| download(filename, url) | |
| apkname = "MuseScore.AppImage" | |
| extra_dir = "squashfs-root" | |
| if not os.path.exists(apkname): | |
| download( | |
| filename=apkname, | |
| url="https://www.modelscope.cn/studio/Genius-Society/piano_trans/resolve/master/MuseScore.AppImage", | |
| ) | |
| if not os.path.exists(extra_dir): | |
| subprocess.run(["chmod", "+x", f"./{apkname}"]) | |
| subprocess.run([f"./{apkname}", "--appimage-extract"]) | |
| MSCORE = f"./{extra_dir}/AppRun" | |
| os.environ["QT_QPA_PLATFORM"] = "offscreen" |