@@ -9,11 +9,27 @@ PH='\033[35m'
99QS=' \033[36m'
1010NC=' \033[0m' # No Color
1111
12- echo -e " ${PH} 警告:此脚本只适用于Debian系列系统(包含Ubuntu),因为需要使用apt来安装软件。${NC} "
13- echo -e " ${PH} 警告:此脚本只适用于Debian系列系统(包含Ubuntu),因为需要使用apt来安装软件。${NC} "
14- echo -e " ${PH} 警告:此脚本只适用于Debian系列系统(包含Ubuntu),因为需要使用apt来安装软件。${NC} "
15- echo -e " ${YELLOW} 警告:如果是群晖NAS自行安装node套件后同样可以使用脚本进行更新使用!!!${NC} "
16- echo -e " ${GREEN} 警告:脚本自动更新需要自行添加任务计划设定运行时间!!!${NC} "
12+ # 检查当前用户是否为root用户
13+ if [ " $( id -u) " -ne 0 ]; then
14+ echo -e " ${RED} 错误:此脚本需要以root用户身份运行。${NC} "
15+ exit 1
16+ fi
17+
18+ # 确认提示
19+ echo -e " ${PH} ======================================================================${NC} "
20+ echo -e " ${PH} 警告:此脚本只适用于群晖、Debian系列系统(包含Ubuntu、Fnos)。${NC} "
21+ echo -e " ${YELLOW} 警告:群晖NAS自行安装node套件后使用!!!${NC} "
22+ echo -e " ${GREEN} 警告:脚本自动更新需要自行添加任务计划设定运行时间!!!${NC} "
23+ echo -e " ${PH} ======================================================================${NC} "
24+ echo -ne " ${PH} 您是否理解并同意继续?(y/n) 默认10秒后确认(y): ${NC} "
25+ read -t 10 confirm
26+ confirm=${confirm:- " y" }
27+ if [[ " $confirm " != " y" ]]; then
28+ echo -e " ${RED} 用户取消操作。${NC} "
29+ exit 1
30+ fi
31+ echo
32+
1733# 检查是否为群晖系统
1834is_syno_system () {
1935 # 群晖系统通常会有 /etc.defaults/VERSION 文件
@@ -189,7 +205,9 @@ create_env_json() {
189205 "quark_cookie": "",
190206 "uc_cookie": "",
191207 "bili_cookie": "",
192- "thread": "10"
208+ "thread": "10",
209+ "enable_dr2": "1",
210+ "enable_py": "2"
193211}
194212EOF
195213 if [ $? -eq 0 ]; then
@@ -234,28 +252,28 @@ initialize_default_env() {
234252 echo -e " ${YELLOW} .env文件不存在,正在使用.env.development作为模板创建...${NC} "
235253 # 提示用户输入自定义值,并设置30秒超时
236254 echo -ne " ${YELLOW} 请输入网盘入库密码(30秒内无输入则使用默认值'drpys'直接回车可跳过):${NC} "
237- read -t 30 dir_path
255+ read -t 30 cookie_auth_code
238256 echo
239257 if [ -z " $cookie_auth_code " ]; then
240258 cookie_auth_code=" drpys"
241259 fi
242260
243261 echo -ne " ${YELLOW} 请输入登录用户名(30秒内无输入则使用默认值'admin'直接回车可跳过):${NC} "
244- read -t 30 dir_path
262+ read -t 30 api_auth_name
245263 echo
246264 if [ -z " $api_auth_name " ]; then
247265 api_auth_name=" admin"
248266 fi
249267
250268 echo -ne " ${YELLOW} 请输入登录密码(30秒内无输入则使用默认值'drpys'直接回车可跳过):${NC} "
251- read -t 30 dir_path
269+ read -t 30 api_auth_code
252270 echo
253271 if [ -z " $api_auth_code " ]; then
254272 api_auth_code=" drpys"
255273 fi
256274
257275 echo -ne " ${YELLOW} 请输入订阅PWD值(30秒内无输入则使用默认值'dzyyds'直接回车可跳过):${NC} "
258- read -t 30 dir_path
276+ read -t 30 api_pwd
259277 echo
260278 if [ -z " $api_pwd " ]; then
261279 api_pwd=" dzyyds"
@@ -329,7 +347,12 @@ else
329347 echo -e " ${YELLOW} 正在执行yarn..."
330348 yarn config set registry https://registry.npmmirror.com/
331349 yarn
332- echo -e " ${GREEN} yarn执行成功,正在启动应用...${NC} "
350+ echo -e " ${GREEN} yarn执行成功,开始安装python环境...${NC} "
351+ python3 -m venv $REPO_DIR /$PROJECT_NAME /.venv
352+ source $REPO_DIR /$PROJECT_NAME /.venv/bin/activate
353+ VIRTUAL_ENV=$REPO_DIR /$PROJECT_NAME /.venv
354+ pip install -r spider/py/base/requirements.txt -i https://mirrors.cloud.tencent.com/pypi/simple
355+ echo -e " ${GREEN} python执行成功,开始启动项目...${NC} "
333356 pm2 start index.js --name drpyS
334357 pm2 save
335358 pm2 startup
346369fi
347370
348371# 定义备份函数
349- backup_files_and_cookie_auth_code () {
372+ backup_files () {
350373 # 备份前先检查文件是否存在,不存在则自动创建
351374 create_env_json " $REPO_DIR /$PROJECT_NAME "
352375 create_default_env " $REPO_DIR /$PROJECT_NAME "
@@ -366,7 +389,7 @@ backup_files_and_cookie_auth_code() {
366389 echo -e " ${YELLOW} 正在备份.env文件...${NC} "
367390 cp " .env" " ./$env_backup_file "
368391 if [ $? -eq 0 ]; then
369- echo -e " ${YELLOW } .env文件已备份为 $env_backup_file ${NC} "
392+ echo -e " ${GREEN } .env文件已备份为 $env_backup_file ${NC} "
370393 else
371394 echo -e " ${RED} 备份.env文件失败。${NC} "
372395 exit 1
@@ -383,7 +406,7 @@ backup_files_and_cookie_auth_code() {
383406 echo -e " ${RED} 备份map.txt文件失败。${NC} "
384407 exit 1
385408 fi
386-
409+
387410 # 备份parses.conf文件
388411 local parses_conf_path=" $REPO_DIR /$PROJECT_NAME /config/parses.conf"
389412 local parses_conf_backup_file=" parses.conf.backup_$( date +%Y%m%d) "
@@ -395,10 +418,22 @@ backup_files_and_cookie_auth_code() {
395418 echo -e " ${RED} 备份parses.conf文件失败。${NC} "
396419 exit 1
397420 fi
421+
422+ # 备份order_common.example.html文件
423+ local order_common_example_path=" $REPO_DIR /$PROJECT_NAME /public/sub/order_common.example.html"
424+ local order_common_example_backup_file=" order_common.example.html.backup_$( date +%Y%m%d) "
425+ echo -e " ${YELLOW} 正在备份order_common.example.html文件...${NC} "
426+ cp " $order_common_example_path " " ./$order_common_example_backup_file "
427+ if [ $? -eq 0 ]; then
428+ echo -e " ${GREEN} order_common.example.html文件已备份为 $order_common_example_backup_file ${NC} "
429+ else
430+ echo -e " ${RED} 备份order_common.example.html文件失败。${NC} "
431+ exit 1
432+ fi
398433}
399434
400435# 定义恢复函数
401- restore_env_json_and_cookie_auth_code () {
436+ restore_file () {
402437 # 恢复env.json文件
403438 local env_json_backup_file=" env.json.backup_$( date +%Y%m%d) .json"
404439 if [ -f " ./$env_json_backup_file " ]; then
@@ -432,7 +467,7 @@ restore_env_json_and_cookie_auth_code() {
432467 echo -e " ${RED} 备份文件 $env_backup_file 不存在,无法恢复.env文件。${NC} "
433468 exit 1
434469 fi
435-
470+
436471 # 恢复map.txt文件
437472 local map_txt_backup_file=" map.txt.backup_$( date +%Y%m%d) "
438473 if [ -f " ./$map_txt_backup_file " ]; then
@@ -466,6 +501,23 @@ restore_env_json_and_cookie_auth_code() {
466501 echo -e " ${RED} 备份文件 $parses_conf_backup_file 不存在,无法恢复parses.conf文件。${NC} "
467502 exit 1
468503 fi
504+
505+ # 恢复order_common.example.html文件
506+ local order_common_example_backup_file=" order_common.example.html.backup_$( date +%Y%m%d) "
507+ if [ -f " ./$order_common_example_backup_file " ]; then
508+ echo -e " ${YELLOW} 正在恢复order_common.example.html文件...${NC} "
509+ cp " ./$order_common_example_backup_file " " $REPO_DIR /$PROJECT_NAME /public/sub/order_common.example.html"
510+ if [ $? -eq 0 ]; then
511+ echo -e " ${GREEN} order_common.example.html文件已恢复。${NC} "
512+ rm " ./$order_common_example_backup_file " # 删除备份文件
513+ else
514+ echo -e " ${RED} 恢复order_common.example.html文件失败。${NC} "
515+ exit 1
516+ fi
517+ else
518+ echo -e " ${RED} 备份文件 $order_common_example_backup_file 不存在,无法恢复order_common.example.html文件。${NC} "
519+ exit 1
520+ fi
469521}
470522
471523# 尝试次数限制,避免无限循环
@@ -485,7 +537,7 @@ pull_repo() {
485537 # 执行yarn
486538 echo -e " ${YELLOW} 正在还原备份的文件和入库密码值${NC} "
487539 # Git pull成功后执行pm2 restart drpyS之前,还原配置文件和COOKIE_AUTH_CODE值
488- restore_env_json_and_cookie_auth_code
540+ restore_file
489541 echo -e " ${YELLOW} 正在执行yarn...${NC} "
490542 if yarn; then
491543 echo -e " ${GREEN} yarn执行成功。${NC} "
@@ -520,7 +572,7 @@ pull_repo() {
520572 echo -e " ${YELLOW} 本地文件已被强制覆盖。${NC} "
521573 echo -e " ${YELLOW} 正在还原备份的文件和入库密码值${NC} "
522574 # Git pull成功后执行pm2 restart drpyS之前,还原配置文件和COOKIE_AUTH_CODE值
523- restore_env_json_and_cookie_auth_code
575+ restore_file
524576 if yarn; then
525577 echo -e " ${GREEN} yarn执行成功。${NC} "
526578 pm2 restart drpyS
@@ -579,7 +631,7 @@ while true; do
579631 # 如果git fetch成功,检查是否有更新
580632 if git status | grep -q " Your branch is behind" ; then
581633 echo -e " ${YELLOW} 检测到有更新,执行备份文件${NC} "
582- backup_files_and_cookie_auth_code # 调用备份函数
634+ backup_files # 调用备份函数
583635 while [ $ATTEMPT_COUNT -lt $MAX_ATTEMPTS ]; do
584636 if pull_repo; then
585637 echo -e " ${GREEN} 更新仓库完成"
0 commit comments