#!/bin/bash if [ -n "${PROXY_HOST}" ]; then CURL_OPTIONS="-sL -x ${PROXY_HOST}" PIP_OPTIONS="--proxy=${PROXY_HOST}" echo "使用代理更新程序" else CURL_OPTIONS="-sL" echo "不使用代理更新程序" fi if [ "${MOVIEPILOT_AUTO_UPDATE_DEV}" = "true" ]; then echo "Dev 更新模式" curl ${CURL_OPTIONS} "https://github.com/jxxghp/MoviePilot/archive/refs/heads/main.zip" | busybox unzip -d /tmp - if [ $? -eq 0 ]; then mv /tmp/MoviePilot-main /tmp/app echo "后端程序下载成功" # 重新安装依赖 pip install ${PIP_OPTIONS} --upgrade pip pip install ${PIP_OPTIONS} -r /tmp/app/requirements.txt if [ $? -eq 0 ]; then echo "安装依赖成功" # 下载插件 echo "正在下载插件..." curl ${CURL_OPTIONS} "https://github.com/jxxghp/MoviePilot-Plugins/archive/refs/heads/main.zip" | busybox unzip -d /tmp - if [ $? -eq 0 ]; then echo "插件下载成功" # 下载资源 echo "正在下载资源包..." curl ${CURL_OPTIONS} "https://github.com/jxxghp/MoviePilot-Resources/archive/refs/heads/main.zip" | busybox unzip -d /tmp - if [ $? -eq 0 ]; then echo "资源包下载成功" # 检查前端最新版本 frontend_version=$(curl ${CURL_OPTIONS} "https://api.github.com/repos/jxxghp/MoviePilot-Frontend/releases/latest" | jq -r .tag_name) if [[ "${frontend_version}" == *v* ]]; then echo "正在下载前端程序 ${frontend_version}..." curl ${CURL_OPTIONS} "https://github.com/jxxghp/MoviePilot-Frontend/releases/download/${frontend_version}/dist.zip" | busybox unzip -d /tmp - if [ $? -eq 0 ]; then echo "前端程序下载成功" rm -rf /app mv /tmp/app /app rm -rf /public mv /tmp/dist /public mv /tmp/MoviePilot-Plugins-main/plugins/* /app/app/plugins/ mv /tmp/MoviePilot-Resources-main/resources/* /app/app/helper/ mkdir -p /app/config/sites mv /app/app/helper/user.sites.bin /app/config/sites/user.sites.bin rm -rf /tmp/MoviePilot-* echo "程序更新成功,前端版本:${frontend_version}" else echo "前端程序下载失败,继续使用旧的程序来启动..." fi else echo "前端最新版本号获取失败,继续启动..." fi else echo "资源包下载失败,继续使用旧的程序来启动..." fi else echo "插件下载失败,继续使用旧的程序来启动..." fi else echo "安装依赖失败,请重新拉取镜像" fi else echo "后端程序下载失败,继续使用旧的程序来启动..." fi else old_version=$(cat /app/version.py) if [[ "${old_version}" == *APP_VERSION* ]]; then current_version=v$(echo ${old_version} | sed -ne "s/APP_VERSION\s=\s'v\(.*\)'/\1/gp") echo "当前版本号:${current_version}" # 检查后端最新版本 new_version=$(curl ${CURL_OPTIONS} "https://api.github.com/repos/jxxghp/MoviePilot/releases/latest" | jq -r .tag_name) if [[ "${new_version}" == *v* ]]; then release_version=${new_version} echo "最新版本号:${release_version}" if [ "${current_version}" != "${release_version}" ]; then echo "发现新版本,开始自动升级..." echo "正在下载后端程序 ${release_version}..." curl ${CURL_OPTIONS} "https://github.com/jxxghp/MoviePilot/archive/refs/tags/${release_version}.zip" | busybox unzip -d /tmp - if [ $? -eq 0 ]; then echo "后端程序下载成功" # 重新安装依赖 pip install ${PIP_OPTIONS} --upgrade pip pip install ${PIP_OPTIONS} -r /tmp/MoviePilot*/requirements.txt if [ $? -eq 0 ]; then echo "安装依赖成功" # 下载插件 echo "正在下载插件..." curl ${CURL_OPTIONS} "https://github.com/jxxghp/MoviePilot-Plugins/archive/refs/heads/main.zip" | busybox unzip -d /tmp - if [ $? -eq 0 ]; then echo "插件下载成功" # 下载资源 echo "正在下载资源包..." curl ${CURL_OPTIONS} "https://github.com/jxxghp/MoviePilot-Resources/archive/refs/heads/main.zip" | busybox unzip -d /tmp - if [ $? -eq 0 ]; then echo "资源包下载成功" # 检查前端最新版本 frontend_version=$(curl ${CURL_OPTIONS} "https://api.github.com/repos/jxxghp/MoviePilot-Frontend/releases/latest" | jq -r .tag_name) if [[ "${frontend_version}" == *v* ]]; then echo "正在下载前端程序 ${frontend_version}..." curl ${CURL_OPTIONS} "https://github.com/jxxghp/MoviePilot-Frontend/releases/download/${frontend_version}/dist.zip" | busybox unzip -d /tmp - if [ $? -eq 0 ]; then echo "前端程序下载成功" rm -rf /app mv /tmp/MoviePilot* /app rm -rf /public mv /tmp/dist /public mv /tmp/MoviePilot-Plugins-main/plugins/* /app/app/plugins/ mv /tmp/MoviePilot-Resources-main/resources/* /app/app/helper/ mkdir -p /app/config/sites mv /app/app/helper/user.sites.bin /app/config/sites/user.sites.bin rm -rf /tmp/MoviePilot-* echo "程序更新成功,前端版本:${frontend_version},后端版本:${release_version}" else echo "前端程序下载失败,继续使用旧的程序来启动..." fi else echo "前端最新版本号获取失败,继续启动..." fi else echo "资源包下载失败,继续使用旧的程序来启动..." fi else echo "插件下载失败,继续使用旧的程序来启动..." fi else echo "安装依赖失败,请重新拉取镜像" fi else echo "后端程序下载失败,继续使用旧的程序来启动..." fi else echo "未发现新版本,跳过更新步骤..." fi else echo "最新版本号获取失败,继续启动..." fi else echo "当前版本号获取失败,继续启动..." fi fi