-

 

Telepot 8.0 에 맞춰 xpebot 이 업데이트 되었습니다.

 

자세한 사항은 github 를 참조하세요.

 

https://github.com/acidpop/xpebot

 

BOT 시작 후 응답 없는 문제는 수정 된걸로 보입니다.

 

현재 제 시스템에서는 계속 작동합니다.

 


 

 

BOT 을 시작 한 후 3시간 정도가 지나면 BOT 이 응답이 없는것이 확인 됩니다.

 

현재 telepot 라이브러리 개발자에게 문의한 상태이고 수정 되면 다시 공지 하겠습니다.

 

 


 

 

임시 방편으로 해결책이 있네요. (luna1474 팁을 주셨습니다)

 

 

1. bash 파일을 복사

 

xpebot 경로에 있는 bash 파일을 /usr/bin/ 경로에 복사

 

cp /volume1/homes/admin/xpebot/bash /usr/bin/

 

admin 은 xpebot 이 설치된 자신의 계정으로 변경

 

bot.sh 파일 가장 윗줄에

#!./bash   이 내용을

#!/usr/bin/bash 

위와 같이 변경 합니다.

 

1. DSM 에 접속

 

2. 제어판에서 작업 스케쥴러 실행

 

3. 생성 버튼 -> 사용자 정의 스크립트 선택

 

 

 

 

작업 이름은 사용자가 원하는데로 설정

사용자 정의 스크립트는 아래와 같이 입력

 

/volume1/homes/admin/xpebot/bot.sh restart

admin 은 xpebot 이 설치된 계정 이름으로 변경

 

스케쥴 탭을 누른 후 다음과 같이 설정

 

 

다음 일수 후 실행을 선택하고 "매일" 로 설정

 

시간

첫 실행 시간

00 : 15   또는 00:00 으로 설정

 

주기

매 1시간 으로 선택

 

마지막 실행 시간

23:15 또는 23:00 으로 설정

 

 

위와 같이 설정 하면 지정한 시간부터 매 1시간 마다 bot.sh restart 명령을 수행하게 된다.

 

telepot 응답을 못받는 문제가 해결 되기 까지는 위 방법으로 계속 사용 가능하다.

 

 


 

 

 

기존의 Telegram CLI 를 이용한 BOT 은 라즈베리 파이에서 구동을 하던지 chroot 위에서 구동을 해야 해서


NAS 만 가지고 있는 분들은 사용이 좀 어려웠다.


이번에 telepot 이라는 python 용 Telegram BOT 라이브러리를 이용해서 기존에 있던 기능들을


파이썬용으로 포팅해 보았다.







설치 및 사용 방법읍 github 에 자세히 설명해 놓았다.


https://github.com/acidpop/xpebot


파이썬을 아직 잘 다루지 못해 소스가 좀 난잡한 부분이 있지만 계속 수정해 나갈 생각이다.


최초에 서비스를 시작한 후에 BOT 계정에게 /dsdownloadregister   메시지를 보내야만 Download Station 모니터를 할 수 있으므로


필히 해줄 것!


이 부분은 다음 버전에 자동으로 등록 할 수 있도록 수정 예정



Download Station 을 모니터링 하여 작업이 추가 되었을 때와 다은로드가 완료 되었을 때 등록된 사용자에게 알림 메시지를 전송 한다.

 

 

 

 

 

 


 

저작자 표시 비영리 변경 금지
신고

  • 이전 댓글 더보기
  • nanta2k 2016.06.02 03:18 신고

    예전 버전(ver0.3)에서는 정상으로 동작하였으나, 업데이트 후 아래와 같이 실행 에러가 발생하네요..ㅜ.ㅜ
    -----------------------------------------------------------------------------------------------------
    bash-3.2# ./bot.sh start
    Starting XPEnology Telegram BOT...
    Traceback (most recent call last):
    File "/var/services/homes/manager/xpebot/main.py", line 14, in <module>
    import BotManager
    File "/volume1/homes/manager/xpebot/BotManager.py", line 21, in <module>
    import torrent
    File "/volume1/homes/manager/xpebot/torrent.py", line 6, in <module>
    import dsdownload
    File "/volume1/homes/manager/xpebot/dsdownload.py", line 3, in <module>
    import psycopg2
    ImportError: No module named psycopg2
    XPEnology Telegram BOT : Stopped
    ---------------------------------------------------------------------------------------------------------
    psycopg2, Pillow 모듈 설치할때 에러를 뿜고 정상 설치가 안되는것 같아요..
    에러 내용은 너무 길어 게시판 문제될까봐 올리지는 않을께요..
    해결 방법이 없을까요?

    1. BlogIcon Acidpop acidpop 2016.06.02 09:14 신고

      psycopg2, Pillow 모듈 설치가 꼭 되야 합니다.

      pip install psycopg2 가 안된다면

      pip remove psycopg2
      pip remove Pillow
      이렇게 remove 하신 다음

      pip install psycopg2
      pip install Pillow

      다시 install 해보세요

      그래도 안된다면

      easy_install psycopg2
      easy_install Pillow

      이렇게 easy_install 로 설치 해보세요

  • oOpsKorean 2016.09.01 14:14 신고

    안녕하세요~. 몇일 전부터 봇 명령어중에서 토렌트 관련 명령어 실행 후 '/검색어'를 보내면 '검색 결과가 없습니다.' 라는 메세지만 출력을 하는데요. 토렌트 사이트가 문제인건지... 혹시 확인 부탁드려도 될까요?
    감사합니다.

    1. BlogIcon Acidpop acidpop 2016.09.01 15:59 신고

      안녕하세요

      /torkim
      /torrentsearch 명령 이용해서 검색 해보면 잘 나옵니다.

      /var/log/xpebot.log 의 내용을 한번 올려주세요

  • oOpsKorean 2016.09.02 09:08 신고

    현재 윈도우 10 hyper-V에 Xpenology 올려 사용중인데 이번 windows 10 업데이트 하면서 먼가 문제가 있었나 봅니다....
    PC 재부팅후에 업데이트 완료하니 다시 정상 작동 되네요 ;;;
    감사합니다.

  • droplet 2016.09.02 17:40 신고

    안녕하세요.
    다름이 아니라 github를 보면서 설치중 단계별로 다 따라하고 실행하기위해 ./bot.sh start 를 입력하면
    ./bash: error while loading shared libraries: xxxx: invalid mode for dlopen() : Invalid argument
    라고 나오면서 실행이 안되는데 어떻게 해야할지 몰라서 질문드립니다.
    위의 xxxx 부분이 자꾸 깨진글자로 나와서 어떤것인지 확인할 수가 없네요 ㅠㅠ

    1. BlogIcon Acidpop acidpop 2016.09.05 10:47 신고

      안녕하세요
      라이브러리가 뭔가 잘못 설치 된거 같은데 제가 ssh 접속 할수 있을까요?

    2. BlogIcon Acidpop acidpop 2016.09.05 15:12 신고

      텔레그램 ID 를 비밀댓글로 남겨 주세요~

  • rainbot 2016.09.08 14:34 신고

    안녕하세요.
    덕분에 편리하게 사용하고 있습니다만, 사용중에 문제점이 한가지 있어서 문의드립니다.
    기존에 xpelnolgy에 설치시 pillow나 psypcog2 설치시 에러메시지가 떠서 easy_install로 설치 후 사용하였습니다.
    그런데 나스 부팅시 봇이 자동 실행되지 않아 확인해보니 python module 에러로 실행이 안되어
    패키지 센터에 있는 python 관련된 패키지를 모두 설치 해버렸습니다.
    python 패키지 설치 후 telebot 삭제 및 재설치를 시행했구요 python3인가 설치 후 telebot 관련 패키지 설치시
    에러는 발생하지 않았습니다. 재설치 후 초기 실행은 잘 되었는데 어느때부터인가 나스 실행시 텔레봇이
    자동실행이 되지 않고 있습니다. 텔레봇 삭제 및 재설치를 해도 마찬가지입니다.
    ssh로 접속 후 강제 start를 시키면 나스가 종료 될때까지 문제없이 잘 실행이 되기는 합니다.
    나스 부팅시 자동 시작 시킬 수 있는 방안이 있을까요?
    이런 프로그래밍 관련된 제대로된 지식이 없다보니 제작자님과 같은 분들이 만들어놓은
    자료만 낼름 가져다 사용하면서 이런 내용을 문의하게 되어 죄송스럽기도 하지만
    언제나 감사한 마음으로 사용하고 있습니다. 감사합니다.

    1. BlogIcon Acidpop acidpop 2016.09.08 15:03 신고

      안녕하세요
      제가 만들어 놓은 xpebot 은 시작 스크립트에 등록하는 코드는 없습니다.

      그리고 rc.local 에 bot.sh start 를 해놓아도 작동이 잘 안되는 경우도 많고 해서

      최근에 활용한 방법을 포스팅하였습니다.

      http://blog.acidpop.kr/241

      위 링크를 참고 하셔서 사용해 보세요

  • oOpsKorean 2016.10.13 11:39 신고

    이번 magnet link 자동 다운로드 기능 업뎃 기능은 너무 편하네요.
    그런데 그룹챗방에서는 적용이되지 않네요.. 시간이 되신다면 확인 부탁드리겠습니다.
    감사합니다.

    1. BlogIcon Acidpop acidpop 2016.10.13 11:48 신고

      그룹 채팅방에서는 기본적으로 맨 앞에 /가 붙은 메시지만 봇에게 전달 됩니다.

      magnet 링크는 일반 메시지 이기때문에 전달이 안되는건데
      일반 메시지까지 모두 받으려면
      BotFather 에게
      /setprivacy
      메시지를 보내고 봇을 선택한 다음
      Enable 선택 하시면 그룹 채팅방에서도 작동 할겁니다.

  • oOpsKorean 2016.10.13 17:37 신고

    알려주신 방법대로 BotFather 에서 /setprivacy 설정을 Enable로 하고 진행하였으나 결과는 동일합니다.
    그룹챗방에서 마그넷주소 입력시 다운은 되지 않네요, 마그넷 주소앞에 '/'를 붙여서도 해 보았으나 마찬가로 작동하지 않습니다.

    1. BlogIcon Acidpop acidpop 2016.10.13 19:20 신고

      제가 뭔가 착각을 했네요 ㅠㅠ

      /setprivacy 에서

      DISABLE 로 하셔야 그룹방에 메시지가 옵니다.

  • rainbot 2016.11.16 16:38 신고

    나스 dsm 재설치 후 telebot을 다시 설치하려고 했는데 git 서버에서 다운로드가 안되는 것 같습니다.
    git clone "https://github.com/acidpop/xpebot" 명령을 입력하면
    unable to find remote helper for 'https' 이런 에러가 발생합니다.
    git 페이지에 들어가 직접 다운로드도 안되네요. 텔레봇 사용하고 싶은데 잘 안되네요

    1. BlogIcon Acidpop acidpop 2016.11.17 09:26 신고

      http://blog.acidpop.kr/228

      제가 예전에 포스팅 했던게 있습니다.

      위 링크를 참고하세요~~!

  • shekinah 2017.01.23 10:50 신고

    안녕하세요~ 강좌 및 github를 통해 xpenology에 잘 설치했습니다~
    궁금한 것이 있는데, /torrentserch를 통해서 토렌트를 검색한 후에 10가지 항목에서 한가지를 선택하면 아무런 변화가 없는데,
    원래는 이 명령어를 통해서 선택한 것이 DS staion 에 자동으로 등록이 되어 다운로드해주는 기능인건가요?
    /gettorrent 로는 텔레그램에서 바로 다운이 되지만 파일명이 짤려서 조금 불편한 부분이 있는데, 궁금해서 질문드려봅니다~ 감사합니다~

    1. BlogIcon Acidpop acidpop 2017.01.23 11:42 신고

      안녕하세요
      torrentsearch 사용시
      버튼을 누르면
      "다운로드를 시작합니다." 또는
      "다운로드 실패" 메시지가 보여야 합니다.
      그게 아니라면 현재 torrentkim 사이트에 변화가 있어서 발생 하는 문제 일수 있습니다.

      작동 방식은 버튼을 누르면 토렌트 사이트에서 magnet 정보를 읽어 와서 DS Download 의 DB 에 magnet 정보를 insert 해주는 방식입니다.

      이왕이면 torkim 명령을 이용해주세요
      torkim 명령은 실제 .torrent 파일을 다운로드 하여 DS Download 의 감시 디렉토리에 torrent 파일을 넣어 주는 기능을 합니다.

  • shekinah 2017.01.23 12:41 신고

    답변 감사드립니다.
    torrentkim 사이트에 변화가 있나보군요~

    torkim 명령어는 torrent file 다운로드 시도까지는 뜨지만 그 다음에는 반응이 없네요~

    일단은 gettorrent로 파일을 직접 받은 후 ds get 어플로 올려서 사용해야겠네요~

    토렌트 사이트에 변화가 있을시에 업데이트 적용을 해주실 때까지 기다려야하는 건가요?

    그리고 다른 토렌트 사이트를 적용하려면 rss를 지원해줘야 가능한게 맞는건가요? 답변 부탁드립니다~ 감사합니다~

    1. BlogIcon Acidpop acidpop 2017.01.23 14:45 신고

      torrentsearch 명령은 RSS 를 분석해서 사용을 하고
      gettorrent 와 torkim 명령은
      해당 토렌트 사이트의 html 소스를 분석해서 사용합니다.

      torrentsearch 명령쪽은 좀 더 보완해서 github 에 업데이트 되었으면 한번 사용해보세요.

      다른 토렌트 적용 하려면 RSS 를 지원 하던지 html 소스가 바뀌지 않으면 지원 할수 있어요 ^^;

    2. BlogIcon Acidpop acidpop 2017.01.23 14:47 신고

      Download Station 에 설정에서 위치 메뉴
      Torrent/NZB 감시 폴더를 지정 하시고
      xpebot.cfg 에 WATCH_DIR 에 해당 감시 폴더 경로 지정해 주시면
      /torkim 명령으로 ds get 어플 쓰지 않고도 사용이 가능합니다.

  • shekinah 2017.01.23 14:54 신고

    정말 감사합니다~ 그런데 제가 프로그래밍은 할 줄 몰라서 질문 하나만 더 드리겠습니다...

    github에서 업데이트가 이루어진다면, 어떻게 업데이트를 적용할 수 있는건가요?

    파일을 다운 받아서 winscp로 교체하고 봇을 stop했다가 다시 start 하는 방법이면 가능한건가요?

    초보적인 질문에 양해를 구합니다~

    1. BlogIcon Acidpop acidpop 2017.01.23 15:04 신고

      xpebot 디렉토리로 가셔서

      git pull

      명령 수행 하시면 됩니다.

  • shekinah 2017.01.23 15:01 신고


    github에서 업데이트 된 4개 파일(main.py, README.md, CHANGELOG.md, BotManager.py)을 다운 받아서 winscp로 덮어쓰기 후

    봇을 멈추었다가 다시 실행했더니 다음과 같은 오류가 납니다~ 업데이트를 잘못한걸까요?

    noelesther> ./bot.sh start
    Starting XPEnology Telegram BOT...
    File "/var/services/homes/Noel/xpebot/main.py", line 5
    <!DOCTYPE html>
    ^
    SyntaxError: invalid syntax
    XPEnology Telegram BOT : Stopped

    1. BlogIcon Acidpop acidpop 2017.01.23 15:05 신고

      git 소스를 받으셔야 하는데 해당 소스가 보여지는 html 페이지가 받아진걸로 보입니다.

      git pull 명령으로 받으시면 됩니다.

      복잡하시면 xpebot.cfg 만 백업해 두시고
      xpebot 폴더 삭제 하신 다음
      git clone "xpebot 주소"
      명령으로 다시 받으셔도 되요

  • shekinah 2017.01.23 15:05 신고

    감사합니다~ ^^

  • shekinah 2017.01.24 21:12 신고

    2개의 텔레그램으로 사용하고 있는데, 주 계정으로 사용하던 텔레그램은 /torrentsearch, /weather, /wol, /addwol, /delwol, /help만 뜨고
    추가한 계정에는 원래 명령어가 다 뜨네요~^^;

    그러다가 갑자기 /만 뜨게 되었네요... ㅠ

  • shekinah 2017.01.30 23:28 신고

    안녕하세요~ 사용하다가 또 질문이 생겨서 이렇게 글을 남깁니다.

    Kodi를 사용하다가 Plex를 알게 되어, 영화 포스터와 정보를 자동으로 가져오는 기능에 혹해서 사용하게 되었습니다.

    그러기 위해서는 다운 받은 영상을 각 폴더별로 분류를 해야하는데,

    영화, 예능, 드라마를 폴더별로 자동 분류되는 방법을 찾다가, 나름 반자동인 방법으로 찾은 것이

    헤놀로지에서 각각의 계정을 만든 후,

    각 계정의 다운로드 스테이션에서 토렌트 파일 자동 읽기와 자동 저장을 각각의 폴더로 Movie, TVshow, Drama로 다운 받게 해두었습니다.

    그리고 github에 나온대로 각 계정별로 다 xpebot을 설치하고, 각각의 봇 토큰을 설정하여 셋팅을 했습니다.

    마지막으로 etc/crontab에 등록을 해두었는데, 4개가 동시에 모두 작동하지 않는 것 같습니다.

    최대 2개의 봇만 작동이 되는 것 같은데~ 혹시 제한이 있는 것인가요? 아니면 제가 셋팅을 잘못한 것일까요?

    요약하자면
    0. 기존에 사용하던 봇이 1개 존재
    1. 텔레그램 봇 3개 토큰 생성
    2. Nas 3개 계정 생성
    3. Nas 3개 계정에서 DS 자동 읽기, 자동 다운 장르 폴더별 셋팅
    4. 각 계정에 텔레그램 봇 설치 및 세팅
    5. crontab에 각 계정 자동 실행 등록(총 4개 봇)
    6. 결과적으로 보면 봇이 2개만 활성화.(bot.sh chk로 확인해보면 running이지만 작동 불가, 작동하지 않는 봇의 bot.sh를 restart하면 작동 그러나 다른 봇 작동안함)

    이렇게 해서 사용하려고 했지만 작동이 되지 않습니다...

    혹 다른 좋은 방법이 있는지 알려주시면 감사하겠습니다~

    그리고 또 하나 각 봇에 대한 알람을 2개 이상 받고 싶은데 가능할까요?

    NOTY_CHAT_ID 이 항목이 VALID_USER 항목처럼 콤마(,)로 2개 등록을 했지만 먼저 적은 chat_id에만 적용이 되는 것 같아 질문드립니다~

    1. BlogIcon Acidpop acidpop 2017.01.31 10:40 신고

      안녕하세요
      1. xpebot 은 한 시스템에 여러개가 작동하도록 설계되어 있지 않습니다.
      동일한 프로세스 이름을 사용하기 때문에 bot.sh 에서 각각의 봇을 감지 할수 없습니다.

      2. 각 봇에 대해 알람을 2개 이상 받는 기능은 개발을 하면 가능하겠지만 너무 개인적인 일에 특화된 기능이고 해당 기능이기에 개발 예정이 없습니다.

      굳이 꼭 필요하시다면
      BotConfig.py 에서
      notify_chat_id 를 가져 오는 부분을 리스트로 가져와서 저장 하고
      dsdownload.py 파일에서 self.chat_id를 list 로 지정하여 for 문을 돌면서 각각 Notify id 에 알림을 보내면 가능합니다.

      죄송하지만 해당 프로젝트는 제가 개인적으로 사용하는 소스를 공개한것이지 각 개개인의 목적에 맞춰 개발 할수 없음을 알려드립니다.

  • shekinah 2017.01.31 12:38 신고

    답변 감사합니다~ 가능한지 아닌지 궁금해서 질문 남겼었습니다~
    좋은 소스 공개해주셔서 감사합니다 ~^^

    1. BlogIcon Acidpop acidpop 2017.01.31 13:36 신고

      넵 감사합니다.

      혹여 답변이 차갑게 보였다면 사과드립니다. ^^;

  • zedis 2017.02.17 17:52 신고

    torkim 안되서 git pull 로 업데이트 했는데,

    Starting XPEnology Telegram BOT...
    Traceback (most recent call last):
    File "/var/services/homes/user/xpebot/main.py", line 14, in <module>
    import BotManager
    File "/volume1/homes/user/xpebot/BotManager.py", line 15, in <module>
    from telepot.namedtuple import ReplyKeyboardMarkup, KeyboardButton, ReplyKeyboardRemove, ForceReply
    ImportError: cannot import name ReplyKeyboardRemove
    XPEnology Telegram BOT : Stopped

    위와 같은 에러 메시지와 함께 실행이 안됩니다.

    저장소 날리고 git clone으로 새로 받아서 같은 에러인데 답변 주실수 있나요?

    1. BlogIcon Acidpop acidpop 2017.02.17 17:59 신고

      안녕하세요

      기존에 사용하셨던 telepot 라이브러리가 오래전 버전인듯 합니다.

      pip install telepot --upgrade

      위 명령으로 telepot 라이브러리를 업데이트 해주세요

  • nas 2017.02.20 19:14 신고

    안녕하세요..
    처음 설정하는중간..아래와 같은 에러메시지를 뛰우네요..어디가 문제인지..ㅠㅠ
    Traceback (most recent call last):
    File "/var/services/homes/user/xpebot/main.py", line 14, in <module>
    import BotManager
    File "/volume1/homes/user/xpebot/BotManager.py", line 33, in <module>
    import TorrentKim
    File "/volume1/homes/user/xpebot/TorrentKim.py", line 15, in <module>
    import chardet
    ImportError: No module named chardet

    첨부터 이러니..뭘 만져야 할 지 모르겠네요..

    1. BlogIcon Acidpop acidpop 2017.02.20 23:21 신고

      인코딩 관련 소스를 수정하다가 라인 하나가 잘못 들어갔네요 ㅠㅠ
      git pull 명령으로 업데이트 하셔서 다시 해보시면 될겁니다

  • peter 2017.03.01 09:10 신고

    만들어주신 봇 너무나 잘 사용하고 있습니다~
    근데 SIGTERM 무시 이후 안죽고 잘 되다 최근에 다시 봇이 죽기 시작했습니다.
    에러 메시지상으로는 무시한다고 표시는 되지만 실제로는 봇이 죽는데 혹시 저만 이런건 아니겠죠.ㅎ

    2017-03-01 08:50:38 [INFO] recv signal : SIGTERM[15]
    2017-03-01 08:50:38 [INFO] SIGTERM signal ignore

    1. BlogIcon Acidpop acidpop 2017.03.01 10:46 신고

      torrentsearch 명령이나 magnet 등록시 dsm 에서 해당 프로세스를 강제 종료 시키는걸로 보입니다
      sigterm 은 컨트롤이 되는데 sigkill 은 컨트롤 할 수가 없어서 torkim 명령을 이용하시는걸 추천드립니다

  • dung 2017.03.02 09:52 신고

    올려주신 강좌대로 잘 따라해서 시놀로지에 반영했는데, torrentsearch 는 작동은 되나, 1번 다운로드 후 bot이 stop 되는 현상때문에 torkim 을 사용하려니까 검색까진 되는데 다운로드 하려고 하면 "Torrent File 다운로드 시도" 만 나오고 이후에 아무 응답이 없네요.. watch_dir 에 /volume1/torrent/ 폴더로 입력하고 다운로드스테이션에서도 Watch 폴더로 지정했구요..뭐가 문제일까요?
    /gettorrent 로 .torrent 를 받아서 ds get 으로 올려서 사용중이긴한데 /torkim 으로 바로 watch 폴더에 들어가면 좋겠어요..

    1. BlogIcon Acidpop acidpop 2017.03.02 11:19 신고

      일단 질문 만으로는 상황이 정확하게 파악할 수가 없습니다.

      torkim 명령 후에 응답이 없을때
      /var/log/xpebot.log 파일의
      가장 마지막 내용 50~100줄 정도의 내용을 알려주세요

다른 카테고리의 글 목록

강좌/XPEnology 활용 카테고리의 포스트 목록