2015/11/04 github 주소가 수정 되었습니다.

 

https://github.com/acidpop/bot

 

 


 

 

2015/08/05 소스가 수정되었습니다.

 

기존에 소스는 Shell Script 파일이 실행 권한이 빠져 있어서 제대로 작동을 안하는 문제가 있었습니다.

 

그외 help.txt 파일의 오타가 수정되었습니다.

 

소스를 다시 받으시면 됩니다.

 


 

GitHub 를 통해 지금까지 완성된 BOT 스크립트를 공개합니다.

 

 

공개된 BOT을 사용하기 위해서는 다음 라이브러리의 설치가 필요합니다.

 

sudo apt-get install sqlite3 xml2 xmlstarlet imagemagick

 

sqlite3 는 내부적으로 사용하는 File DB를 사용하기 위함.

xml2 는 토렌트 검색 등으로 rss 를 받아 오는 경우

xmlstarlet : 마찬가지로 xml 툴인데 기상청 데이터의 데이터를 파싱하기 위해 사용

imagemagick : Image를 조정 할수 있는 유틸리티

 

 

BOT을 사용해봅니다.

 

아래 명령을 실행합니다.

 

cd /home/pi/tg

git clone https://github.com/acidpop/bot.git

 

 

 

 

모든 설명은 스크립트 내부에 있으며 BOT 을 실행 하는 방법은 다음과 같습니다.

 

cd /home/pi/tg

 

sudo sh -c 'echo "" > /var/log/telegram-cli.log'

sudo chown pi:pi /var/log/telegram-cli.log

 

bin/telegram-cli -s bot/basicbot.lua -L /var/log/telegram-cli.log -P 8888 -e "contact_list" -d &

 

 

지금까지 강좌를 모두 따라 왔다면

 

sudo service telegramd start

 

위 명령 한줄로 실행 할 수 있습니다.

 

 

 

 

 


 

총 5부에 걸쳐 Telegram CLI 를 활용 하는 방법에 대해 알아 보았습니다.

 

GitHub 주소는 아래와 같습니다.

 

https://github.com/acidpop/bot

 

질문이 있으시면 댓글 또는 제 블로그의 질문 게시판을 이용해 주시면 됩니다.

 

 

 

 

 

 

 

 

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

  • ^_^ 2015.10.26 00:27 신고

    좋은 강의 잘 보았습니다^_^ 질문이 있는데요
    사진 전송시 자동저장되는 경로가 home/pi/.telegram-cli/downloads 인데 이 경로 지정은 어디서 변경할 수 있나요?
    스크립트내에 있을까해서 이것저것 뒤져봤는데 찾지를 못해서요ㅠ_ㅠ

    1. BlogIcon Acidpop acidpop 2015.10.26 09:59 신고

      안녕하세요.

      Telegram CLI 의 download 경로를 변경 하려면 소스 레벨에서 수정을 해야 되는걸로 보입니다.

      소스 레벨을 수정한는것 보다는

      recv_file.lua 파일에 보시면
      RecvFile 함수와 save_file 함수가 있습니다.

      RecvFile 함수는 수신 받은 메시지 중에서 미디어 타입이 photo 또는 document 일때만 작동하도록 되어 있고 save_file 이라는 함수를 같이 호출해 줍니다.

      즉, 다운로드가 완료되면 save_file 이라는 함수가 호출 되는 구조입니다.

      save_file 함수를 가서 보시면 아래쪽에 확장자가 torrent 라면 이라는 주석이 있는데

      file 이라는 변수가 다운로드 된 파일의 전체 경로입니다.

      local move_cmd = 'mv ' .. file .. '이동할 경로'
      이렇게 적어 주시고 ExecuteCommand(move_cmd)

      이렇게 하시면 됩니다.

    2. BlogIcon ^_^ 2015.10.27 11:56 신고

      해결했어요! 감사합니다!!!!

  • pi 2016.01.08 13:47 신고

    torrent.lua 내부에 split_to_table 호출 에러가 나네요 소스를 아무리 뒤져봐도 나오질 않아요

    1. BlogIcon Acidpop acidpop 2016.01.08 16:12 신고

      안녕하세요.
      제가 bot 쪽을 제대로 테스트 안하고 올렸나 봅니다.

      git pull 명령을 이용해서 소스 업데이트후에 다시 시도해 보시면 될겁니다.

  • good 2016.01.09 02:10 신고

    좋은 강의 잘 보았습니다.
    궁금한게 있는데요 torrent.lua 에서 DownloadTorrent 함수 내부에서 마그넷 링크/url_download 를 하는데요
    url_download를 호출 할 수가 없다고 합니다.

    1. BlogIcon Acidpop acidpop 2016.01.11 13:34 신고

      아.. url_download 함수가 누락되었네요. ㅠㅠ

      common.lua, torrent.lua 파일 다시 커밋 해두었습니다.

      소스 다시 받으셔서 적용해보시면 될겁니다.

  • 워류겐 2016.04.27 21:02 신고

    안녕하세요.
    좋은정보 정말 감사드립니다.
    정말 요긴하게 써먹고 있습니다.
    최근 새로운 서버에 설치후 acidpop님이 github에 커밋하신 bot 을 받아서 설치해 보았습니다.
    작동이 안되길래 디버깅하다 문제코드를 찾았습니다. ㅠㅠ
    이전에는 잘 동작했는데 telegram-cli 가 업데이트 되었나 봅니다.
    function on_msg_receive (msg) 함수에서
    if (msg.to.id == our_id) then 이 부분을
    if (msg.to.peer_id == our_id) then 이렇게 고쳐야 동작이 되네요.
    peer_id 라는게 새로 생겨났네요;

    1. BlogIcon Acidpop acidpop 2016.04.28 09:48 신고

      최근 소스로 업데이트 해서 다시 테스트 해봤습니다만..

      on_msg_receive 의 msg 변수를
      모두 출력해주는 부분을 보면
      peer_id 는 보이지 않네요...

      뭔가 환경이 다른걸까요?

    2. BlogIcon Acidpop acidpop 2016.04.28 16:45 신고

      다시 테스트 해보니 peer_id 로 보이네요

      좋은 정보 감사합니다.

      요즘에는 CLI 가 아닌 Bot API 를 이용하다 보니
      유지가 잘 안되었군요.

  • 제발 2016.11.24 14:15 신고

    telegram 을이용해서 문자 전송까지는 되었습니다. 하지만 저희가 하려고 하는게 적외선 센서를 인식하였을 때 문자가 스마트폰으로 자동으로 전송되게 하고 싶은데 어떻게 해야되는지 가르쳐 주신다면 감사하겠습니다.

    1. BlogIcon Acidpop acidpop 2016.11.24 15:20 신고

      질문이 너무 광범위 한것 같습니다.


      질문하신 그대로 적외선 센서가 인식 되었을때에 강좌에 있는 봇에게 메시지보내기를 수행하시면 되지 않을까요?

    2. BlogIcon Acidpop acidpop 2016.11.24 15:21 신고

      외부에서 Telegram CLI 로 메시지를 보내고 싶으시다면

      --accept-any-tcp 이 옵션을 이용하셔서 TCP 포트 하나 여시고

      netcat 으로 메시지를 보내는 방법을 사용하셔도 됩니다.


      http://blog.acidpop.kr/189

      위 링크를 참고하세요

  • BlogIcon xoskd 2017.03.24 00:23 신고

    sudo service telegramd start 입력했는대
    무반응입니다
    어떻게 해야되나여?

    1. BlogIcon Acidpop acidpop 2017.03.24 09:01 신고

      아무 반응이 없더라고

      ps -ef | grep tele

      명령 실행 하셔서 실제로 실행이 되고 있는지 확인해보세요

    2. BlogIcon xoskd 2017.03.25 21:31 신고

      pi 1748 1156 0 21:29 pts/0 00:00:00 grep --color=auto tele

      이런문구가 나오는대 실행이 안되고있는 상황이져?

    3. BlogIcon Acidpop acidpop 2017.03.25 21:32 신고

      넵 그건 grep 명령이 실행 되고 있다는걸 보여주는거에요

  • xoskd 2017.04.10 14:13 신고

    정상 실행은 되는대
    핸드폰에서 날씨를 입력시켜 보내면 날씨입력하셨습니다만 뜹니다

    1. BlogIcon Acidpop acidpop 2017.04.10 14:18 신고

      죄송하지만
      http://blog.acidpop.kr/186
      혹시 이 글에 있는 스크립만 basicbot.lua 로 해놓고
      실행 하신거 아닌가요?

      5부 최종 블로그 글은

      https://github.com/acidpop/bot.git


      github 에서 소스를 받은 다음

      다운로드 받은 소스의 basicbot.lua 를 옵션으로 주셔야 하는데 4부에 있는 basicbot.lua 를 가지고 봇을 실행 하신거 같은데요

      basicbot.lua 파일을 열어서 확인해보세요

      "날씨" 라는 메시지 전송이 어떻게 작동하는지 조금만 보시면 알수 있습니다.

  • BlogIcon xoskd 2017.04.10 23:10 신고

    4부의 basicbot.lua를 지우고
    5부에서 받은 basicbot.lua를 넣고 실행시키면
    cli daemon 이 stopped 멈춥니다

다른 카테고리의 글 목록

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