当前位置:首页 > NAS > 正文内容

群晖Download Station下载 自动添加tracker

Yuki2025-02-15 16:49:44NAS68

控制面板——任务计划——新增——计划的任务——用户定义的脚本

常规——任务名称tracker用户账号root

计划——在以下天中运行(每天00:00)运行

任务设置

#!/bin/bash  


DISABLE_COLOR=false  


BLACK="\e[30m"  

RED="\e[31m"  

GREEN="\e[32m"  

YELLOW="\e[33m"  

BLUE="\e[34m"  

MAGENTA="\e[35m"  

CYAN="\e[36m"  

LIGHT_GRAY="\e[37m"  

DARK_GRAY="\e[90m"  

LIGHT_RED="\e[91m"  

LIGHT_GREEN="\e[92m"  

LIGHT_YELLOW="\e[93m"  

LIGHT_BLUE="\e[94m"  

LIGHT_MAGENTA="\e[95m"  

LIGHT_CYAN="\e[96m"  

WHITE="\e[97m"  

END="\e[0m"  


if [ $DISABLE_COLOR == true ]; then  

  BLACK=""  

  RED=""  

  GREEN=""  

  YELLOW=""  

  BLUE=""  

  MAGENTA=""  

  CYAN=""  

  LIGHT_GRAY=""  

  DARK_GRAY=""  

  LIGHT_RED=""  

  LIGHT_GREEN=""  

  LIGHT_YELLOW=""  

  LIGHT_BLUE=""  

  LIGHT_MAGENTA=""  

  LIGHT_CYAN=""  

  WHITE=""  

  END=""  

fi  


# 群晖DS 任务状态定义  

TASK_STATUS_WAITING=1  

TASK_STATUS_DOWNLOADING=2  

TASK_STATUS_PAUSED=3  

TASK_STATUS_FINISHING=4  

TASK_STATUS_FINISHED=5  

TASK_STATUS_HASH_CHECKING=6  

TASK_STATUS_SEEDING=7  

TASK_STATUS_FILEHOSTING_WAITING=8  

TASK_STATUS_EXTRACTING=9  

TASK_STATUS_ERROR=10  

TASK_STATUS_BROKEN_LINK=11  

TASK_STATUS_DESTINATION_NOT_EXIST=12  

TASK_STATUS_DESTINATION_DENIED=13  

TASK_STATUS_DISK_FULL=14  

TASK_STATUS_QUOTA_REACHED=15  

TASK_STATUS_TIMEOUT=16  

TASK_STATUS_EXCEED_MAX_FILE_SYSTEM_SIZE=17  

TASK_STATUS_EXCEED_MAX_DESTINATION_SIZE=18  

TASK_STATUS_EXCEED_MAX_TEMP_SIZE=19  

TASK_STATUS_ENCRYPTED_NAME_TOO_LONG=20  

TASK_STATUS_NAME_TOO_LONG=21  

TASK_STATUS_TORRENT_DUPLICATE=22  

TASK_STATUS_FILE_NOT_EXIST=23  

TASK_STATUS_REQUIRED_PREMIUM_ACCOUNT=24  

TASK_STATUS_NOT_SUPPORTED_TYPE=25  

TASK_STATUS_TRY_IT_LATER=26  

TASK_STATUS_TASK_ENCRYPTION=27  

TASK_STATUS_MISSING_PYTHON=28  

TASK_STATUS_PRIVATE_VIDEO=29  

TASK_STATUS_FTP_ENCRYPTION_NOT_SUPPORTED_TYPE=30  

TASK_STATUS_EXTRACT_FAILED=31  

TASK_STATUS_EXTRACT_FAILED_WRONG_PASSWORD=32  

TASK_STATUS_EXTRACT_FAILED_INVALID_ARCHIVE=33  

TASK_STATUS_EXTRACT_FAILED_QUOTA_REACHED=34  

TASK_STATUS_EXTRACT_FAILED_DISK_FULL=35  

TASK_STATUS_UNKNOWN=36  


trackerlistUrl="https://cdn.jsdelivr.net/gh/ngosang/trackerslist@master/trackers_all.txt"  

trackerlistUrl="https://cf.trackerslist.com/all.txt"  


trackerList=$(curl -f $trackerlistUrl 2>/dev/null)  

if [[ $? != 0 ]]; then  

  echo "Tracker list url unavailable please check url: $trackerlistUrl"  

  exit 1  

fi  

trackerList=$(echo '"'$trackerList'"' | jq -c 'split(" ")')  

trackerListLength=$(jq 'length' <<<$trackerList)  


if [[ $trackerListLength == 0 ]]; then  

  echo "No found tracker please check tracker list: $trackerlistUrl"  

  exit 1  

fi  


pakcageList=$(synowebapi --exec api=SYNO.Core.Package method=list version=2 additional='["status"]' 2>/dev/null | jq -c '.data.packages | map(select(.id == "DownloadStation"))')  


isRunning=$(jq -r 'map(select(.id == "DownloadStation") | .additional.status) | .[]' <<<$pakcageList)  


if [ $isRunning != "running" ]; then  

  echo -e "Download Station$RED not running$END exit"  

  exit  

fi  


echo "Download Station is running go next step"  


downloadList=$(synowebapi --exec api=SYNO.DownloadStation2.Task method=list version=2 limit=-1 "status=[$TASK_STATUS_DOWNLOADING]" 2>/dev/null | jq -c '.data.task | map(select(.type == "bt"))')  

downloadListCount=$(jq 'length' <<<$downloadList)  


if [[ $downloadListCount -eq 0 ]]; then  

  echo "Not found bt download task"  

  exit  

fi  


echo "Download tasks count: $downloadListCount"  


for idx in $(seq 0 $((downloadListCount - 1))); do  

  echo "----------------Task [$idx]------------------"  

  task=$(jq -c ".[$idx]" <<<$downloadList)  

  taskId=$(jq -r .id <<<$task)  

  taskName=$(jq -r .title <<<$task)  

  taskTrackerList=$(synowebapi --exec api=SYNO.DownloadStation2.Task.BT.Tracker method=list version=2 task_id="$taskId" limit=-1 2>/dev/null | jq -c '.')  

  taskTrackerListMap=$(jq -c '.data.items | reduce .[] as $i ({}; .[$i.url] = 1)' 2>/dev/null <<<$taskTrackerList)  

  if [[ $? != 0 ]]; then  

    echo "Task: 【$taskName】 is busy skip task; $taskTrackerList"  

    continue  

  fi  

  taskTrackerListCount=$(jq '.data.total' <<<$taskTrackerList)  

  echo "Task:【$taskName】 has tracker count: $taskTrackerListCount"  

  needAddedTrackerList=$(jq -c --argjson hashMap $taskTrackerListMap 'map(select(. | in($hashMap) == false))' <<<$trackerList)  

  needAddedTrackerListLength=$(jq 'length' <<<$needAddedTrackerList)  


  if [[ $needAddedTrackerListLength == 0 ]]; then  

    echo "The task does not need to add a new tracker"  

    continue  

  fi  


  echo "A list of trackers that need to be added to the task: $needAddedTrackerList , count: $needAddedTrackerListLength"  


  result=$(synowebapi --exec api=SYNO.DownloadStation2.Task.BT.Tracker method=add version=2 task_id=$taskId tracker=$needAddedTrackerList 2>/dev/null)  


  if [[ $(jq '.success' <<<$result) == true ]]; then  

    echo "Task: [$taskName] tracker list add success"  

  else  

    echo "Task: [$taskName] tracker list add fail"  

  fi  

done  


echo "Automatically add tracker script to complete" 


扫描二维码推送至手机访问。

版权声明:本文由发布,如需转载请注明出处。

本文链接:http://suzumiya.fun:8003/?id=45

分享给朋友:
返回列表

上一篇:群晖搭建clash实现科学代理

没有最新的文章了...

“群晖Download Station下载 自动添加tracker” 的相关文章

群晖NAS实现外网映射本地磁盘访问

群晖NAS实现外网映射本地磁盘访问

1、我的电脑右键管理,点服务,找到WebClient服务,设置启动类型设置为自动2、同时按windows+R按键打开运行,输入regedit打开注册表,然后到注册表找到下面的路径HKEY_ LOCAL_MACHINE\SYSTEMICurrentControlSet\Services\WebClie...

Jellyfin封面图和字幕乱码解决办法

Jellyfin封面图和字幕乱码解决办法

封面解决方法1.在 docker中 打开 bash。具体地方 容器实例 -> 详情 -> 终端机 -> 新增 -> bash 2.在 bash 里面执行:apt update3.等待完成后输入apt install fonts-noto-cjk-extra4.按Y确...

Jellyfin提示:该客户端与媒体不兼容,服务器未发送兼容的媒体格式,解决办法

Jellyfin提示:该客户端与媒体不兼容,服务器未发送兼容的媒体格式,解决办法

下载FFmpeg官网下载 选择Linux32-bit and 64-bit for kernel选择最新的amd64位下载安装FFmpeg解压并上传到jellyfin共享文件夹中现在进入jellyfin的管理页面,控制台-播放设置-FFmpeg路径选择上述共享文件夹测试播放...

群晖安装Zerotier实现无公网内网穿透

群晖安装Zerotier实现无公网内网穿透

申请Zerotier账号https://www.zerotier.com/ 申请账号点击Create A Network创建网络拷贝并记录network ID备用网络名字可改可不改,其他的设置(路由、IPV4等)全部默认或任选一个即可,不用改动。 群晖docker安装zerotier在do...

群晖文件夹清理缓存删除方法

群晖文件夹清理缓存删除方法

以download station为例sudo -i #进入存储空间1cd /volume1#查询文件大小du -ah --max-depth=1#进入该存储空间du -sh /volume1/@download#删除文件夹命令rm -rf /volume1/@download...

群晖自动更新hosts

群晖自动更新hosts

关于群晖NAS video station TMDB连接测试失败及搜刮结果下载失败的解决方案如果使用过别的脚本或者hosts手动添加过相关的地址可以先在任务计划中执行以下脚本来清理hosts文件#!/bin/shLOCAL_HOST_LIST=`cat /etc/hosts | grep -v &q...