새 토렌트가 추가될 때 Deluge 토렌트 클라이언트가 다운로드한 파일을 다시 확인하도록 하는 스크립트?

새 토렌트가 추가될 때 Deluge 토렌트 클라이언트가 다운로드한 파일을 다시 확인하도록 하는 스크립트?

나는 정기적으로 업데이트되는 토렌트를 다운로드합니다. 토렌트가 새 버전의 토렌트를 업데이트/출시할 때 이전 버전의 토렌트와 정확히 동일한 이름을 사용하고 이전 버전의 토렌트와 동일한 파일을 모두 포함하며 토렌트를 다음과 같은 디렉토리에 다운로드합니다. 이전 버전의 토렌트.

시드의 첫 번째 버전에는 다음과 같은 파일이 포함될 수 있습니다.

  • 01.2020.S15.The.Hollis.Hurlbut.Show.Trouble.With.Deluge.1080P.mkv
  • 02.2020.S15.The.Hollis.Hurlbut.Show.Head.Meet.Brick.Wall.1080P.mkv
  • 03.2020.S15.The.Hollis.Hurlbut.Show.Plugin.Problems.1080P.mkv

토렌트의 새 버전이 출시되면 다음이 포함됩니다.

  • 01.2020.S15.The.Hollis.Hurlbut.Show.Trouble.With.Deluge.1080P.mkv
  • 02.2020.S15.The.Hollis.Hurlbut.Show.Head.Meet.Brick.Wall.1080P.mkv
  • 03.2020.S15.The.Hollis.Hurlbut.Show.Plugin.Problems.1080P.mkv
  • 04.2020.S15.The.Hollis.Hurlbut.Show.Is.It.Lunch.Time.Yet.1080P.mkv
  • 05.2020.S15.The.Hollis.Hurlbut.Show.I.Want.A.Beer.Now.1080P.mkv

다운로드를 위해 새 버전의 토렌트가 추가되면 기존 파일을 다시 다운로드하지만(CoW 파일 시스템을 사용하고 대역폭을 낭비하므로 이는 바람직하지 않습니다) 새로 추가된 토렌트를 수동으로 강제로 다시 확인하면 , Deluge는 기존 파일을 감지하고 새 다운로드가 재개되면(편집 참조) 새 데이터 또는 누락된 데이터만 다운로드합니다.

새 토렌트가 추가되면 Deluge에서 특정 토렌트가 특정 명명 체계와 일치하는지 또는 특정 LabelPlus 태그가 있는지 다시 확인하도록 할 수 있는 방법이 있습니까? 아니면 bash 스크립팅이 옵션/더 나은 솔루션입니까?

[편집] 방금 토렌트를 추가하고 다시 확인하려고 했는데 기존 다운로드의 특정 경로에 토렌트를 수동으로 추가하면 자동으로 다시 확인되는 것을 발견했습니다...문제는 내 설정에 있으며 문제의 토렌트는 YaRSS2 플러그인을 통해 발생합니다. 자동으로 추가한 다음 태그를 지정하고 이동하며 LabelPlus 플러그인을 통해 다운로드 디렉터리를 설정합니다. 이를 통해 각 이벤트에 대한 라벨 및 다운로드 디렉터리(/genre/year/event/event_name)를 설정할 수 있습니다.

따라서 현재 설정의 문제는 YaRRS2가 새 토렌트를 추가하면 기본 다운로드 디렉터리에 추가된다는 것입니다. 그런 다음 LaabelPlus가 토렌트를 이동할 때 재확인이 트리거되지 않습니다. 설상가상으로 재검사가 수행되지 않았기 때문에 새 버전의 토렌트는 기존 파일을 덮어쓰기 시작했으며 이는 수동 재검사가 실패함을 의미합니다.

답변1

나는 세 가지 요소를 사용하여 내 질문에 대답했습니다. Deluge에 내장된 "실행" 플러그인인 "deluge-console" 패키지를 설치하여 셸/콘솔을 통해 Deluge에 명령을 내릴 수 있게 했고, 퍼즐의 마지막 조각은 제가 작성한 스크립트였습니다.

Deluge는 일시 중지되지 않은 상태에서 토렌트를 추가하도록 전역적으로 설정되어 있지만 일시 중지된 상태에서 문제가 있는 토렌트를 추가하도록 YaRSS2 피드를 설정했습니다. 따라서 YaRSS2는 일시 중지된 상태에서 토렌트를 추가한 후 LabelPlus 플러그인이 이에 태그를 지정하고 토렌트의 다운로드 디렉터리를 설정합니다. 동시에 실행 플러그인에 의해 트리거된 스크립트가 실행됩니다.


    #!/bin/bash

    #variables
    torrentid=$1
    torrentname=$2
    torrentpath=$3
    DATE=$(date +"%Y%m%d_%H%M%S")
        
    if [[ $torrentpath == /media/downloads/foo* ]] ; then 
    
         sleep 5 #sleep so that LabelPlus can do it's stuff
         deluge-console "recheck [ * |  $torrentid [$torrentid ...] ]"
         echo  "$DATE Rechecked: " "$torrentname " "$torrentid " "$torrentpath"  >> /home/deluge/media/execute_script.log
         deluge-console "resume [ * |  $torrentid [$torrentid ...] ]"
    
    else
    
         sleep 5 #sleep so that LabelPlus can do it's stuff
         echo  "$DATE Unchecked: " "$torrentname " "$torrentid " "$torrentpath"  >> /home/deluge/media/execute_script.log
         deluge-console "resume [ * |  $torrentid [$torrentid ...] ]"
    
    fi

그냥 메모 좀...

Execute 플러그인을 활성화하면 Deluge 데몬을 다시 시작해야 합니다!

sleep 5 명령은 LabelPlus가 다운로드 디렉터리를 기존 데이터가 있는 위치로 변경하기 전이나 도중에 실행되는 스크립트 관련 문제를 방지하기 위한 것입니다.

위 스크립트를 사용하는 경우 Deluged를 실행하는 사용자에게 스크립트를 실행하고 로그를 작성하는 데 필요한 권한이 있는지 확인하세요(필요한 경우).

[편집] 스크립트에 경로에 따라 토렌트 재검사를 다시 확인하거나 건너뛰는 기능을 추가했습니다.

관련 정보