|
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" |