반응형
[Python] Transmission 완료 자동삭제 스크립트
Last Edited: Jun 03, 2020 8:45 AM
Tags: PYTHON, QNAP
이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다)
Notion 가입 Link
필요사항
- QPython3 ( Qnap Club )
본문
Transmission의 시딩완료 항목들이나 특정 Status의 항목들을 삭제해 주는 Script이다.
transmission-remote를 Control 하는 Wrapper로 개인에 맞게 다음 항목들을 수정하여 사용가능하다
- BASEDIR: Transmission-remote경로
- TR_PORT: Transmission UI사용 Port
- TR_ID/TR_PW: Transmission ID/PW
- 현재 Status=="Finished"만 제거하게 되어있는데 필요시 if 조건 추가
#!/opt/QPython3/bin/python3
import re
import subprocess
from subprocess import Popen
BASEDIR="/share/CACHEDEV1_DATA/.qpkg/QTransmission/bin/transmission-remote"
TR_PORT = "49091" #Transmission Port
TR_ID = "Your ID"
TR_PW = "Your PW"
# Make Paused List
p = Popen([BASEDIR, TR_PORT, "--auth", "%s:%s"%(TR_ID,TR_PW), "-l"], stdout=subprocess.PIPE, \
stderr=subprocess.PIPE, universal_newlines=True)
outputs, errors = p.communicate()
output = outputs.splitlines();
#Remove Header and Tail
output.pop(0);
output.pop(-1);
IDs = [];
#Example Output
#1 100% 17.56 GB Unknown 0.0 0.0 0.0 Idle GAME_OF_THRONES_S7.1080p.BluRay.x264.KORsub-ADC2060
reg = re.compile('^\s*(\d*)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+\S+\s+\S+\s+\S+\s+(\S+)\s+(.+)$')
for line in output:
m = reg.match(line);
#print(m.group(0));
ID = m.group(1);
STATUS = m.group(6);
if STATUS == 'Finished':
IDs.append(ID);
#Remove Torrent
if IDs:
IDs = ','.join(IDs);
subprocess.run([BASEDIR, TR_PORT, "--auth", "%s:%s"%(TR_ID,TR_PW), "-t", IDs, "--remove-and-delete"])
반응형
'Software > QNAP TS-251' 카테고리의 다른 글
[QNAP][HA] nginx-proxy-manager 설치 (DuckDNS) (0) | 2020.11.13 |
---|---|
[QNAP][IoT] QNAP-251 Home Assitant(HA) & Mosquitto(MQTT) 설치 (0) | 2020.11.13 |
[Plex] URL을 통해 라이브러리 Scan (4) | 2020.02.10 |
[QNAP] VIM Static Build (0) | 2020.01.16 |
[QNAP] TS-251 TVHeadend VAAPI (HW가속) 사용 (0) | 2019.06.07 |