Files

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