|
2 | 2 |
|
3 | 3 | tag_name="TrackerError" |
4 | 4 |
|
5 | | -## 传参$1:hash |
6 | | -find_error_msg() { |
7 | | - local hash="$1" |
8 | | - |
9 | | - # 获取tracker清单 |
10 | | - local trackers=$($cmd_curl "${api_url_base}/torrents/trackers?hash=${hash}") |
11 | | - local trackers_url=( $(echo $trackers | jq -r .[].url | sed "s# #_#g" ) ) |
12 | | - local trackers_status=( $(echo $trackers | jq .[].status) ) |
13 | | - local trackers_msg=( $(echo $trackers | jq -r .[].msg | sed "s| |_|g") ) |
14 | | - |
15 | | - # 检查tracker消息 |
16 | | - local add_tag_mark=yes |
17 | | - local n |
18 | | - for ((n = $((${#trackers_url[*]} - 1)); n >= 0; n--)); do |
19 | | - if [[ ${trackers_url[n]} == *http* ]] && [[ ${trackers_status[n]} -ne 4 || ${trackers_msg[n]} == expected_digit_in_bencoded_string ]]; then |
20 | | - add_tag_mark=no |
21 | | - break |
22 | | - fi |
23 | | - done |
24 | | - [[ $add_tag_mark == yes ]] && add_hashes="${add_hashes}|${hash}" |
25 | | -} |
26 | | - |
27 | 5 | ## 处理所有torrent |
28 | | -main() { |
29 | | - . /usr/local/bin/share |
30 | | - hashes=( $($cmd_curl ${api_url_base}/torrents/info | jq -r .[].hash) ) |
31 | | - tracker_error_count=0 |
32 | | - add_hashes="" |
33 | | - $cmd_curl_post -d "hashes=all&tags=${tag_name}" ${api_url_base}/torrents/removeTags |
34 | | - for hash in "${hashes[@]}"; do |
35 | | - find_error_msg "$hash" |
36 | | - done |
| 6 | +. /usr/local/bin/share |
| 7 | +hashes=( $($cmd_curl ${api_url_base}/torrents/info | jq -r .[].hash) ) |
| 8 | +tracker_error_count=0 |
| 9 | +add_hashes="" |
| 10 | +$cmd_curl_post -d "hashes=all&tags=${tag_name}" ${api_url_base}/torrents/removeTags |
| 11 | +for hash in "${hashes[@]}"; do |
| 12 | + if [[ -z $($cmd_curl "${api_url_base}/torrents/trackers?hash=${hash}" | jq '.[] | select(.tier >= 0)' | jq -r '.status | select(. <= 3)') ]]; then |
| 13 | + add_hashes="${add_hashes}|${hash}" |
| 14 | + fi |
| 15 | +done |
37 | 16 |
|
38 | | - ## 调整标签 |
39 | | - if [[ -n $add_hashes ]]; then |
40 | | - echo "hashes=${add_hashes/|/}&tags=${tag_name}" | $cmd_curl_post -d @- ${api_url_base}/torrents/addTags |
41 | | - |
42 | | - ## 发送通知 |
43 | | - TRACKER_ERROR_COUNT_MIN=${TRACKER_ERROR_COUNT_MIN:-3} |
44 | | - tracker_error_count=$(echo ${add_hashes/|/} | awk -F "|" '{print NF}') |
45 | | - if [[ $tracker_error_count -ge $TRACKER_ERROR_COUNT_MIN ]]; then |
46 | | - notify "tracker出错数量超过阈值" "主机:${HOSTNAME}\n时间:$(date +'%Y-%m-%d %H:%M:%S')\n注意:当前有${tracker_error_count}个种子tracker出错,建议检查一下\n说明:您收到本通知是因为您设置了通知阈值TRACKER_ERROR_COUNT_MIN=${TRACKER_ERROR_COUNT_MIN}(默认值:3)" |
47 | | - fi |
| 17 | +## 调整标签 |
| 18 | +if [[ -n $add_hashes ]]; then |
| 19 | + echo "hashes=${add_hashes/|/}&tags=${tag_name}" | $cmd_curl_post -d @- ${api_url_base}/torrents/addTags |
| 20 | + |
| 21 | + ## 发送通知 |
| 22 | + TRACKER_ERROR_COUNT_MIN=${TRACKER_ERROR_COUNT_MIN:-3} |
| 23 | + tracker_error_count=$(echo ${add_hashes/|/} | awk -F "|" '{print NF}') |
| 24 | + if [[ $tracker_error_count -ge $TRACKER_ERROR_COUNT_MIN ]]; then |
| 25 | + notify "tracker出错数量超过阈值" "主机:${HOSTNAME}\n时间:$(date +'%Y-%m-%d %H:%M:%S')\n注意:当前有${tracker_error_count}个种子tracker出错,建议检查一下\n说明:您收到本通知是因为您设置了通知阈值TRACKER_ERROR_COUNT_MIN=${TRACKER_ERROR_COUNT_MIN}(默认值:3)" |
48 | 26 | fi |
49 | | -} |
| 27 | +fi |
50 | 28 |
|
51 | | -main "$@" |
0 commit comments