지난번에 transmission도 설치해보고 자동다운로드도 걸어봤습니다.
다운로드가 완료되어도 시드삭제전까진 업로드 트래픽을 잡아먹는 경우가 있습니다.
완료된 파일은 시드를 삭제하고 다운로드 완료되었다는 알람을 받아보겠습니다.
transmission 설정과, 텔레그램 봇 등록에 대해서만 조금 이해하시면 됩니다. transmission 설정을 변경합니다.
꼭 transmission대몬을 종료하고 설정을 변경해야하는건 알고 계시죠?
"script-torrent-done-enabled": true, "script-torrent-done-filename": "/opt/scripts/transmission-done.sh",
위 내용은 토렌트 다운로드완료시마다 해당스크립트를 실행하라는 설정입니다.
별로 어려운건 없으시죠? 천천히 따라 오시면 됩니다. 이제 저한테 알람을 해 줄 봇을 만들어봅니다.
까똑은 API가 공개되지 않아서, API가 공개된 텔레그램을 이용합니다.
“요즘 다들 스맛폰에 텔레그램 하나씩은 깔려있으시죠?”
텔레그램 봇은 봇파더를 통해 만들고 삭제할 수 있습니다.
쉽게 말해 전지전능한 봇신인거죠
이 분이십니다.
봇을 만드는 방법은 아래 그림을 참고하시면 됩니다. 먼저 봇신님께 /newbot으로 봇을 만들겠다 얘기하시면 됩니다.
다음 사용할 이름을 넣고 사용할 유저명을 넣으면 됩니다.
처음 입력하는건 닉네임이고 두번째 입력할건 사용자 아이디라고 이해하시면 됩니다. 일부러 좀 틀려봤는데.. 아이디의 경우 반드시 bot로 끝나야하고
이미 등록된 아이디는 사용할 수 없습니다. 봇이 생성되고 토큰값을 받았네요.
chat_id도 확인해야합니다.
텔레그램앱에서 해당 봇에게 말을 건 뒤
브라우저상에서 해당 방번호를 알아낼 수 있습니다.
https://api.telegram.org/bot토큰값/getUpdates
*위 그림의 토큰값이 208352999:AAHnbPdEy1EMs5RGwZ4tAGL7RkOXmWyPiUY인데
bot문자열을 붙여 “bot208352999:AAHnbPdEy1EMs5RGwZ4tAGL7RkOXmWyPiUY” 이라 적어야 합니다.
id 라고 적힌항목이 chat_id입니다.
경우에 따라서 음수일 수 있습니다.
(처음 셋팅때 아이디가 음수일 리 없을거라 생각해 저는 좀 헤맸습니다.) 자 이제 준비가 끝났습니다.
다운로드 완료시에 사용할 스크립트는 아래와 같습니다.
cat /opt/scripts/transmission-done.sh
#!/bin/sh SERVER="9091 -n 아이디:패스워드" KEY="텔레그램토큰" CHATID="채팅방아이디" DIR=$(echo $TR_TORRENT_DIR|cut -d'/' -f 3) if [ $DIR == "Media" ] then STR="($(echo $TR_TORRENT_DIR|cut -d'/' -f 4-))" fi TEXT="$TR_TORRENT_NAME $STR 준비되었습니다." TORRENTLIST=`transmission-remote $SERVER --list | sed -e '1d;$d;s/^ *//' | awk '{print $1}'` for TORRENTID in $TORRENTLIST do DL_COMPLETED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "Percent Done: 100%"` STATE_STOPPED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "State: Seeding\|Stopped\|Finished\|Idle"` if [ "$DL_COMPLETED" ] && [ "$STATE_STOPPED" ]; then transmission-remote $SERVER --torrent $TORRENTID --remove fi done /usr/local/bin/curl -d "chat_id=$CHATID&text=$TEXT" https://api.telegram.org/bot$KEY/sendMessage
알람기능을 조금 더 발전시켜 토렌트를 활용해 검색하고
홈서버에서 다운로드받는 방법도 있습니다.