#!/bin/bash

echo "正在更新软件包..."
sudo apt update
sudo apt upgrade -y


REPO="AndreRH/hangover"
API_URL="https://api.github.com/repos/$REPO/releases/latest"

# 获取最新release的版本号并储存在变量中
latest_version=$(wget -qO- $API_URL | grep -oP '"tag_name": "\Khangover-\K([^"]+)' )

# 检查是否成功获取版本号
if [ -z "$latest_version" ]; then
  echo "无法获取到最新版本号。"
  exit 1
fi

echo "最新版本: $latest_version"

hangover_url="https://github.com/AndreRH/hangover/releases/download/hangover-${latest_version}/hangover_${latest_version}_debian13_trixie_arm64.tar"

mirror_sites=(
    "https://gh-proxy.org/"
    "https://cdn.gh-proxy.org/"
    "https://edgeone.gh-proxy.org/"
    "https://gh.llkk.cc/"
    "https://github.moeyy.xyz/"
    "https://mirror.ghproxy.com/"
    ""
)

mkdir -p /tmp/hangover
cd /tmp/hangover

for mirror in "${mirror_sites[@]}"; do
    url="${mirror}${hangover_url}"
    echo "尝试从 $url 下载Hangover..."
    wget "${url}" -O hangover.tar
    if [ $? -eq 0 ]; then
        echo "成功下载Hangover"
        break
    fi
    if [ -z "$mirror" ]; then
        cd /tmp
        rm -rf /tmp/hangover
        echo "下载失败...退出安装..."
        exit
    fi
done

echo "正在安装Hangover..."
tar xvf hangover.tar
sudo DEBIAN_FRONTEND=noninteractive apt install -y ./hangover*.deb
if [ $? -ne 0 ]; then
    cd /tmp
    rm -rf /tmp/hangover
    echo "安装失败...退出安装..."
    exit 1
fi

echo "正在初始化Wine..."
wineboot --init

echo "正在安装DXVK..."
tar xvf dxvk-v*.tar.gz
mv dxvk-v*/x32/* /home/tiny/.wine/drive_c/windows/syswow64
mv dxvk-v*/arm64ec/* /home/tiny/.wine/drive_c/windows/system32

echo "正在修复字体..."
regedit "Z:\\home\\tiny\\.local\\share\\tiny\\extra\\chn_fonts.reg" && wine reg delete "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes" /va /f

cd /tmp
rm -rf /tmp/hangover
echo "安装完成"
