#!/bin/bash

echo "请选择你的 NAS 系统类型："
echo "1. 群晖"
echo "2. 飞牛"
echo "3. 威联通"
read -p "请输入对应数字 (1/2/3): " nas_type

case "$nas_type" in
    1)
        echo "你选择的是：群晖"
        ;;
    2)
        echo "你选择的是：飞牛"
        ;;
    3)
        echo "你选择的是：威联通"
        ;;
    *)
        echo "无效输入，请输入 1、2 或 3。"
        exit 1
        ;;
esac

echo "可在此页面查看可用版本：https://cf.mb6.top/tmp/?dir=emby"

case "$nas_type" in
    1)
        loglocal=$(find /volume*/@appdata/EmbyServer/logs -name "embyserver.txt" 2>/dev/null)
		version=$(grep -m1 "Emby Server" ${loglocal} | sed -n 's/.*Emby Server Version: //p')
		echo "你要安装的版本是：$version"
        ;;
    2)
        loglocal=$(find /vol*/@appdata/EmbyServer4-9/logs -name "embyserver.txt" 2>/dev/null)
		version=$(grep -m1 "Emby Server" ${loglocal} | sed -n 's/.*Emby Server //p')
		echo "你要安装的版本是：$version"
        ;;
    3)
        loglocal=$(find /share/CACHEDEV1_DATA/.qpkg/EmbyServer/programdata/logs -name "embyserver.txt" 2>/dev/null)
		version=$(grep "Loading Emby.Api" ${loglocal} | grep -m1 "Version=" | sed -n 's/.*Version=\([0-9.]*\).*/\1/p')
		echo "你要安装的版本是：$version"
        ;;
esac


workdir="/tmp"
cd "$workdir"
[ -d system ] && rm -rf system

mkdir -p system/dashboard-ui/modules/emby-apiclient
mkdir -p system/dashboard-ui/embypremiere
mkdir -p system/dashboard-ui/videoosd
cd system

# 下载文件函数
download_file() {
    local url=$1
    local file=$2
    if ! wget -q --spider "$url"; then
        # echo "警告: $file 不存在，尝试使用 curl 下载..."
        if ! curl -fsSL "$url" -o "$file"; then
            # echo "错误: 下载 $file 失败，跳过。"
            return 1
        fi
    else
        if ! wget -q "$url" -O "$file"; then
            # echo "错误: wget 下载 $file 失败，跳过。"
            return 1
        fi
    fi
}

# 带备选版本号的下载并移动
safe_download_and_move() {
    local relative_path=$1
    local filename=$2
    local target_path=$3

    local base_url="https://cf.mb6.top/tmp/emby"
    local full_url="${base_url}/${version}/${relative_path}"

    echo "尝试下载：$full_url"
    download_file "$full_url" "$filename"
    if [ $? -ne 0 ]; then
        
        local fallback_url="${base_url}/${version}b/${relative_path}"
		echo "文件不存在"
		echo "尝试修改地址并下载：$fallback_url"
        download_file "$fallback_url" "$filename" || {
            echo "跳过 ${filename}（两次尝试均失败）"
            return 0
        }
    fi

    if [ -f "$filename" ]; then
        if [ "$target_path" != "." ]; then
            mv "$filename" "$target_path/$filename" || echo "⚠️ 警告: 移动 $filename 到 $target_path 失败"
        fi
    else
        echo "跳过移动 $filename（文件不存在）"
    fi
}


# 下载所有文件
safe_download_and_move "linux_32_64/Emby.Web.dll" "Emby.Web.dll" .
safe_download_and_move "linux_32_64/MediaBrowser.Model.dll" "MediaBrowser.Model.dll" .
safe_download_and_move "linux_32_64/Emby.Server.Implementations.dll" "Emby.Server.Implementations.dll" .

safe_download_and_move "linux_32_64/dashboard-ui/modules/emby-apiclient/connectionmanager.js" "connectionmanager.js" "./dashboard-ui/modules/emby-apiclient"
safe_download_and_move "linux_32_64/dashboard-ui/modules/emby-apiclient/apiclient.js" "apiclient.js" "./dashboard-ui/modules/emby-apiclient"
safe_download_and_move "linux_32_64/dashboard-ui/embypremiere/embypremiere.js" "embypremiere.js" "./dashboard-ui/embypremiere"
safe_download_and_move "linux_32_64/dashboard-ui/videoosd/videoosd.js" "videoosd.js" "./dashboard-ui/videoosd"

echo
echo "下载完成，开始查找 Emby 安装路径..."

# 根据系统类型查找 Emby 安装路径
case "$nas_type" in
    1)
        EmbyServer_local=$(find /volume*/@appstore -type d -name "EmbyServer" 2>/dev/null | head -n 1)
        ;;
    2)
        EmbyServer_local=$(find /vol*/@appcenter -type d -name "EmbyServer*" 2>/dev/null | head -n 1)
        ;;
    3)
        EmbyServer_local=$(find /share/CACHEDEV1_DATA/.qpkg -type d -name "EmbyServer" 2>/dev/null | head -n 1)
        ;;
esac

if [ -z "$EmbyServer_local" ]; then
    echo "❌ 错误：未找到 Emby 安装目录，终止操作。"
    exit 1
fi

echo "✅ 找到 Emby 安装目录：$EmbyServer_local"
echo "替换文件中..."

cp -rf "$workdir/system" "$EmbyServer_local"

# 清理下载内容
rm -rf "$workdir/system"

echo
echo "✅ 替换完成，请执行以下操作："
echo "1. 填写任意激活码"
echo "2. 重启 Emby 套件"
echo "3. 清除浏览器缓存即可使用！"
