달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

이번에 사용할 것은 핸드폰으로 텔레그램 어플을 이용하여

토렌트 파일을 검색하고 다운로드 하는 부분을 해보겠습니다.

시작 하기 전에 이전에 올린 글을 참고 하시고 하시기 바랍니다.

 

2017/12/27 - [라즈베리파이3] - 라즈베리파이3 transmission(토렌트)

2017/12/26 - [라즈베리파이3] - API 텔레그램 토큰 생성

2017/12/27 - [라즈베리파이3] - 라즈베리파이3 transmission (텔레그램 API 연동)

 

 

-$ cd /home/pi

 

받기
-$ git clone https://github.com/seungjuchoi/telegram-control-torrent

이름변경(사용하기 쉽게)
-$ mv telegram-control-torrent telegram

-$ cd ./telegram


이름 변경
-$ mv setting_templete.json setting.json


수정
-$ nano setting.json

 

--------------------------------------------------------
{
  "common": {
    "token": "110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw",
    "valid_users": [
      123456789,
      123456789
    ],
    "agent_type": "transmission",
    "download_path": "~/Downloads"
  },
  "transmission": {
    "id_pw": "transmission:transmission",
    "port": ""
  }
}

--------------------------------------------------------

위 내용이 보입니다. 아래는 설명

--------------------------------------------------------

{
  "common": {
    "token": "텔레그램 API 토큰",
    "valid_users": [
      사용할 아이디
   123456789,987654321  <---- 이렇게 하면 두명이 사용 가능합니다.     
    ],
    "agent_type": "transmission",
    "download_path": "~/Downloads"  <-- 기본 다운로드 경로
  },
  "transmission": {
    "id_pw": "아이디:패스워드",
    "port": "포트번호 기본 9091 입니다."
  }
}
--------------------------------------------------------

 

폴더안에 보시면 pip-requirements.txt 파일이 있습니다. 이파일은 여러개 패키지가 적혀있는데 한번에 불러와 설치합니다.

-$ sudo pip3 install -r pip-requirements.txt

 

실행방법
-$ python3 telegram_torrent.py

실행후

 Listening ...

라고 떠있으면 성공 한겁니다.

 

이제 핸드폰으로 봇창을 열어서 아무 말을 걸어 메세지 창이 뜨면 잘연동된것 입니다.

 

이제 이걸 자동으로 실행 되게 설정 하겠습니다.

먼저 아래 테스트내용을 해보고난 다음 스크립트를 작성해보겠습니다.

 

백그라운드 실행(테스트)
- $ nohup python3 -u /home/osmc/telegram/telegram_torrent.py &

 

텔레그램 백그라운드 검색 종료(테스트)
- $ kill $(ps -e | grep python3)
- $ kill $(ps aux |awk '/telegram_torrent.py/ {print $2}')

 

 

★ 실행정지 데몬 만들기

 

-$ sudo nano /etc/init.d/telegram

 

--------------------- telegram -----------------------
#!/bin/sh
### BEGIN INIT INFO
# Provides:          telegram
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop telegram
### END INIT INFO
 
case "$1" in
  start)
    nohup python3 -u /home/pi/telegram/telegram_torrent.py &
    echo "텔레그램 봇 시작"
    ;;
  stop)
    sudo kill $(ps -e | grep python3)
    echo "텔레그램 봇 정지"
    ;;
  *)
    echo "Usage: /etc/init.d/telegram {start|stop}"
    exit 1
    ;;
esac
exit 0

---------------------------------------------------------

소유권 이동

-$ sudo chown pi:pi /etc/init.d/telegram

권한 수정
-$ sudo chmod 755 /etc/init.d/telegram

 

 

#Tip. update-rc.d 서비스 수동실행 명령어
-$ sudo /etc/init.d/telegram start
-$ sudo /etc/init.d/telegram stop

 

-$ sudo service telegram start
-$ sudo service telegram stop

 

위 명령어가 이상 없이 잘되면은

아래 서비스를 등록하면 끝입니다.

 

 

시작 서비스 등록
-$ sudo update-rc.d telegram defaults

 

시작 서비스 삭제
-$ sudo update-rc.d -f telegram remove

 

아래 파일은 영문을 한글로 바꿔논 파일입니다.

기본 파일을 사용시에 시드가 죽거나, 받다가 시드가 없어지거나, 정지하거나 할 경우

해당 다운로드 시드를 지워버리는 부분이 보여서 수정하였습니다.

그리고 필요시에 transmission 을 종료 시키고 시작 시키는 버튼도 넣었으니 알아서 고쳐서 사용하시면 되겠습니다.

 

telegram_torrent.py

 

위 파일에서 transmission  종료는 이전 강좌에서 설명해 드렸던 내용중

 

2017/12/27 - [라즈베리파이3] - 라즈베리파이3 transmission(토렌트)

 

crontab 예약 작업을 제거하고 사용하시면 되겠습니다.

 

 

구동하고나서 텔레그램  비서로 확인한 스샷입니다.

 

 

   

 

 

 

Posted by 타카스 류지
|

이전에 transmission 을 설치하는 방법을 알려드렸습니다.

이번 시간엔 transmission 이 다운이 완료 되었을때 텔레그램 푸쉬로 알림이 오는 설정을 하겠습니다.

 

이 글을 읽기 전에 하단 링크에 작업이 완료후에 진행하시면 되겠습니다.

 

2017/12/27 - [라즈베리파이3] - 라즈베리파이3 transmission(토렌트)

2017/12/26 - [라즈베리파이3] - API 텔레그램 토큰 생성

 

 

폴더 생성
-$ sudo mkdir /usr/script


권한부여
-$ sudo chmod -R 777 /usr/script

 

작성

-$ sudo nano /usr/script/torrent_push.sh

 

-------------------- torrent_push.sh ---------------

#!/bin/sh

# telegram configuration
SERVER="9091 --auth 아이디:패스워드"
TOKEN='111222333:aaaabbbbccccddddeeeeffffgggghhhhiii'
URL='https://api.telegram.org/bot'$TOKEN
MSG_URL=$URL'/sendMessage?chat_id='
CHAT_ID="123456789"

sleep 1s

# torrent remove
TORRENTLIST=`transmission-remote $SERVER --list | sed -e '1d;$d;s/^ *//' | cut --only-delimited --delimiter=" " --fields=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

# telegram notify go
res=$(/usr/bin/curl --data-urlencode "text=$TR_TORRENT_NAME 다운로드가 완료되었습니다." "$MSG_URL"$CHAT_ID"&")
---------------------------------------------------

 

실행가능 하게 변경
-$ sudo chmod a+x /usr/script/torrent_push.sh


권한 부여
-$ sudo chmod 777 /usr/script/torrent_push.sh

 

토렌트 정지
-$ sudo /etc/init.d/transmission-daemon stop


설정파일 열기

-$ sudo nano /etc/transmission-daemon/settings.json

 


    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",

위 내용을 아래 처럼 변경 

 

    "script-torrent-done-enabled": true,
    "script-torrent-done-filename": "/usr/script/torrent_push.sh",

 

 

transmission-daemon 시작

 

-$ sudo /etc/init.d/transmission-daemon start
OR
-$ sudo service transmission-daemon start
OR
-$ sudo transmission-daemon -g /etc/transmission-daemon

 

Posted by 타카스 류지
|

텔레그램 어플을 설치


@botfather라는 봇을 검색 후 "시작" 또는 "재시작" 버튼을 클릭하여 BotFather와 대화를 시작



"/newbot"  입력 - 봇 생성

"토렌트 알림" 입력 - 봇 이름

"torrentPushBot" 입력 - 봇 username <- 마지막은 bot 이란 단어로 끝나야 됩니다.


그럼 BotFather는 새로운 봇을 생성하고 token을 알려줍니다.

("Use this token to access the HTTP API:" 밑에 있는 문자열이 token입니다.)


이 토큰은 외부 노출을 하시면 안되요~ torrentPushBot 의 비밀번호라고 생각하세요


위 토큰 메세지중 상단 2번쨰 라인에 t.me/torrentPushBot. 이라는 링크가 있는데


클릭하면은 생성한 봇하고 대화를 할수 있습니다.


중요한점은 푸쉬를 받을려고 할때 chatid 라는게 필요 합니다.


한마디로 현재 자신의 계정 id 입니다.


먼저 토렌트 알림 봇창에서 아무 대화를 한번 글을 적고


https://api.telegram.org/bot[아까 발급 받은 token]/getUpdates 를 입력합니다.


https://api.telegram.org/bot111222333:aaaabbbbccccddddeeeeffffgggghhhhiii/getUpdates


위와 같이 되겠죠?


입력하면 json 형태로 리턴이 되서 보여지는데


{"ok":true,"result":[{"update_id":413816513, "message":{"message_id":2,

"from":{"id":123456789  <-- 요기가 chat_id 입니다.  first_name":"\uc2b9\uc900","last_name":"\uc774","username":"test"},

"chat":{"id":48561232,"first_name":"\uc2b9\uc800","last_name":"\uc674","username":"test2","type":"private"},

"date":1467868645,"text":"\uc2dc\uc791"}}]}


자 이제 준비가 다됬네요

토큰 : 111222333:aaaabbbbccccddddeeeeffffgggghhhhiii


챗ID : 123456789



ps.이전 게시물 http://cjbox.tistory.com/135?category=707036 에서 정리 헀던 내용 입니다.

Posted by 타카스 류지
|