mirror of
https://github.com/monlor/docker-xiaoya.git
synced 2026-10-27 04:19:54 +08:00
232 lines
6.8 KiB
Bash
232 lines
6.8 KiB
Bash
#!/bin/bash
|
|
|
|
set -eu
|
|
|
|
echo "开始生成配置文件..."
|
|
|
|
if [ ! -d "/data" ]; then
|
|
mkdir /data
|
|
fi
|
|
|
|
# 设置端口
|
|
local_ip=$(ip a | grep inet | grep -v '127.0.0.1|inet6' | awk '{print $2}' | cut -d/ -f1)
|
|
echo "http://$local_ip:5678" > /data/docker_address.txt
|
|
|
|
# 生成配置,阿里云token
|
|
if [ ${#ALIYUN_TOKEN} -ne 32 ]; then
|
|
echo "长度不对,阿里云盘 Token是32位长"
|
|
echo -e "启动停止,请参考指南配置文件\nhttps://alist.nn.ci/zh/guide/drivers/aliyundrive.html \n"
|
|
exit 1
|
|
else
|
|
echo "添加阿里云盘 Token..."
|
|
echo "${ALIYUN_TOKEN}" > /data/mytoken.txt
|
|
fi
|
|
|
|
# 生成配置,阿里云open token
|
|
if [[ ${#ALIYUN_OPEN_TOKEN} -le 334 ]]; then
|
|
echo "长度不对,阿里云盘 Open Token是335位"
|
|
echo -e "安装停止,请参考指南配置文件\nhttps://alist.nn.ci/zh/guide/drivers/aliyundrive_open.html \n"
|
|
exit 1
|
|
else
|
|
echo "添加阿里云盘 Open Token..."
|
|
echo "${ALIYUN_OPEN_TOKEN}" > /data/myopentoken.txt
|
|
fi
|
|
|
|
# 生成配置,阿里云转存目录folder_id
|
|
if [ ${#ALIYUN_FOLDER_ID} -ne 40 ]; then
|
|
echo "长度不对,阿里云盘 folder id是40位长"
|
|
echo -e "安装停止,请转存以下目录到你的网盘,并获取该文件夹的folder_id\nhttps://www.aliyundrive.com/s/rP9gP3h9asE \n"
|
|
exit 1
|
|
else
|
|
echo "添加阿里云盘 Folder ID..."
|
|
echo "${ALIYUN_FOLDER_ID}" > /data/temp_transfer_folder_id.txt
|
|
fi
|
|
|
|
# 设置夸克网盘cookie
|
|
if [ -n "${QUARK_COOKIE:-}" ]; then
|
|
echo "添加夸克网盘 Cookie..."
|
|
echo "${QUARK_COOKIE}" > /data/quark_cookie.txt
|
|
else
|
|
rm -rf /data/quark_cookie.txt
|
|
fi
|
|
|
|
# 设置115 cookie
|
|
if [ -n "${PAN115_COOKIE:-}" ]; then
|
|
echo "添加115网盘 Cookie..."
|
|
echo "${PAN115_COOKIE}" > /data/115_cookie.txt
|
|
if [ "${ALIYUN_TO_115}" = "true" ]; then
|
|
cat > /data/ali2115.txt <<-EOF
|
|
purge_ali_temp=true
|
|
cookie="${PAN115_COOKIE}"
|
|
purge_pan115_temp=true
|
|
dir_id=${PAN115_FOLDER_ID:-0}
|
|
EOF
|
|
else
|
|
rm -rf /data/ali2115.txt
|
|
fi
|
|
else
|
|
rm -rf /data/115_cookie.txt
|
|
fi
|
|
|
|
# 设置pikpak用户密码观看pikpak资源
|
|
if [ -n "${PIKPAK_USER:-}" ]; then
|
|
echo "设置PIKPAK用户密码..."
|
|
rm -rf /data/pikpak.txt
|
|
user=$(echo "${PIKPAK_USER}" | cut -d':' -f1)
|
|
pass=$(echo "${PIKPAK_USER}" | cut -d':' -f2-)
|
|
echo "\"${user}\" \"${pass}\"" > /data/pikpak.txt
|
|
else
|
|
rm -rf /data/pikpak.txt
|
|
fi
|
|
|
|
# 挂载你自己 pikpak 账号
|
|
if [ -n "${PIKPAK_LIST:-}" ]; then
|
|
echo "挂载PIKPAK分享..."
|
|
rm -rf /data/pikpak_list.txt
|
|
echo "${PIKPAK_LIST}" | tr ',' '\n' | while read -r line; do
|
|
name=$(echo "$line" | cut -d':' -f1)
|
|
user=$(echo "$line" | cut -d':' -f2)
|
|
pass=$(echo "$line" | cut -d':' -f3-)
|
|
echo "${name} \"${user}\" \"${pass}\"" >> /data/pikpak_list.txt
|
|
done
|
|
else
|
|
rm -rf /data/pikpak_list.txt
|
|
fi
|
|
|
|
# 挂载pikpak分享,覆盖小雅的分享
|
|
if [ -n "${PIKPAK_SHARE_LIST:-}" ]; then
|
|
echo "挂载额外的PIKPAK分享..."
|
|
rm -rf /data/pikpakshare_list.txt
|
|
echo "${PIKPAK_SHARE_LIST}" | tr ',' '\n' | while read -r line; do
|
|
name=$(echo "$line" | cut -d':' -f1)
|
|
share_id=$(echo "$line" | cut -d':' -f2)
|
|
folder_id=$(echo "$line" | cut -d':' -f3)
|
|
echo "${name} ${share_id} ${folder_id}" >> /data/pikpakshare_list.txt
|
|
done
|
|
else
|
|
rm -rf /data/pikpakshare_list.txt
|
|
fi
|
|
|
|
# 挂载额外的阿里云盘分享
|
|
if [ -n "${ALI_SHARE_LIST:-}" ]; then
|
|
echo "挂载额外的PIKPAK分享..."
|
|
rm -rf /data/alishare_list.txt
|
|
echo "${ALI_SHARE_LIST}" | tr ',' '\n' | while read -r line; do
|
|
name=$(echo "$line" | cut -d':' -f1)
|
|
share_id=$(echo "$line" | cut -d':' -f2)
|
|
folder_id=$(echo "$line" | cut -d':' -f3)
|
|
echo "${name} ${share_id} ${folder_id}" >> /data/alishare_list.txt
|
|
done
|
|
else
|
|
rm -rf /data/alishare_list.txt
|
|
fi
|
|
|
|
# 挂载额外的夸克网盘分享
|
|
if [ -n "${QUARK_SHARE_LIST:-}" ]; then
|
|
echo "挂载额外的夸克网盘分享..."
|
|
rm -rf /data/quarkshare_list.txt
|
|
echo "${QUARK_SHARE_LIST}" | tr ',' '\n' | while read -r line; do
|
|
name=$(echo "$line" | cut -d':' -f1)
|
|
share_id=$(echo "$line" | cut -d':' -f2)
|
|
folder_id=$(echo "$line" | cut -d':' -f3)
|
|
code=$(echo "$line" | cut -d':' -f4)
|
|
echo "${name} ${share_id} ${folder_id} ${code}" >> /data/quarkshare_list.txt
|
|
done
|
|
else
|
|
rm -rf /data/quarkshare_list.txt
|
|
fi
|
|
|
|
# 挂载额外的115网盘分享
|
|
if [ -n "${PAN115_SHARE_LIST:-}" ]; then
|
|
echo "挂载额外的115网盘分享..."
|
|
rm -rf /data/115share_list.txt
|
|
echo "${PAN115_SHARE_LIST}" | tr ',' '\n' | while read -r line; do
|
|
name=$(echo "$line" | cut -d':' -f1)
|
|
share_id=$(echo "$line" | cut -d':' -f2)
|
|
folder_id=$(echo "$line" | cut -d':' -f3)
|
|
code=$(echo "$line" | cut -d':' -f4)
|
|
echo "${name} ${share_id} ${folder_id} ${code}" >> /data/115share_list.txt
|
|
done
|
|
else
|
|
rm -rf /data/115share_list.txt
|
|
fi
|
|
|
|
# 开启tvbox随机订阅
|
|
if [ "${TVBOX_SECURITY:=false}" = "true" ]; then
|
|
echo "已开启TVBOX安全模式..."
|
|
if [ ! -f /data/tvbox_security.txt ]; then
|
|
touch /data/tvbox_security.txt
|
|
fi
|
|
else
|
|
echo "已关闭TVBOX安全模式..."
|
|
rm -rf /data/tvbox_security.txt
|
|
fi
|
|
|
|
# 开启代理
|
|
if [ -n "${PROXY:-}" ]; then
|
|
echo "已开启代理..."
|
|
echo "${PROXY}" > /data/proxy.txt
|
|
else
|
|
rm -rf /data/proxy.txt
|
|
fi
|
|
|
|
# 设置webdav密码
|
|
if [ -n "${WEBDAV_PASSWORD:-}" ]; then
|
|
echo "设置webdav密码..."
|
|
# 设置webdav密码后自动开启强制登陆
|
|
echo "${WEBDAV_PASSWORD}" > /data/guestpass.txt
|
|
if [ ! -f /data/guestlogin.txt ]; then
|
|
touch /data/guestlogin.txt
|
|
fi
|
|
else
|
|
rm -rf /data/guestpass.txt
|
|
# 关闭强制登陆
|
|
rm -rf /data/guestlogin.txt
|
|
fi
|
|
|
|
# 设置数据下载目录
|
|
echo "http://127.0.0.1:5233/data" > /data/download_url.txt
|
|
|
|
crontabs=""
|
|
|
|
if [ "${AUTO_CLEAR_ENABLED:=true}" = "true" ]; then
|
|
echo "启动定时清理定时任务..."
|
|
AUTO_CLEAR_INTERVAL=${AUTO_CLEAR_INTERVAL:=10}
|
|
HOURS=$(($AUTO_CLEAR_INTERVAL / 60))
|
|
REMAINING_MINUTES=$(($AUTO_CLEAR_INTERVAL % 60))
|
|
|
|
if [ $HOURS -gt 0 ]; then
|
|
if [ $REMAINING_MINUTES -eq 0 ]; then
|
|
CRONTAB_TIME="0 */$HOURS * * *"
|
|
else
|
|
CRONTAB_TIME="$REMAINING_MINUTES */$HOURS * * *"
|
|
fi
|
|
else
|
|
CRONTAB_TIME="*/$REMAINING_MINUTES * * * *"
|
|
fi
|
|
crontabs="${crontabs}\n$CRONTAB_TIME /clear.sh"
|
|
#crontabs="${crontabs}\n*/${AUTO_CLEAR_INTERVAL:=10} * * * * /clear.sh"
|
|
fi
|
|
|
|
# 添加后台守护
|
|
crontabs="${crontabs}\n* * * * * /service.sh daemon"
|
|
|
|
if [ -n "${crontabs}" ]; then
|
|
echo -e "$crontabs" | crontab -
|
|
fi
|
|
|
|
# 设置本地变量
|
|
echo "${EMBY_APIKEY:-e825ed6f7f8f44ffa0563cddaddce14d}" > /data/infuse_api_key.txt
|
|
|
|
if [ "${AUTO_UPDATE_MEDIA_ADDR:=false}" = "true" ]; then
|
|
echo "开始自动更新媒体服务地址..."
|
|
/update_media_addr.sh &> /dev/null &
|
|
fi
|
|
|
|
/fix_media.sh &
|
|
|
|
crond
|
|
|
|
/entrypoint.sh /opt/alist/alist server --no-prefix
|
|
|