2015/11/04 github 주소가 수정 되었습니다.
https://github.com/acidpop/bot
2015/08/05 소스가 수정되었습니다.
기존에 소스는 Shell Script 파일이 실행 권한이 빠져 있어서 제대로 작동을 안하는 문제가 있었습니다.
그외 help.txt 파일의 오타가 수정되었습니다.
소스를 다시 받으시면 됩니다.
GitHub 를 통해 지금까지 완성된 BOT 스크립트를 공개합니다.
공개된 BOT을 사용하기 위해서는 다음 라이브러리의 설치가 필요합니다.
sqlite3 는 내부적으로 사용하는 File DB를 사용하기 위함.
xml2 는 토렌트 검색 등으로 rss 를 받아 오는 경우
xmlstarlet : 마찬가지로 xml 툴인데 기상청 데이터의 데이터를 파싱하기 위해 사용
imagemagick : Image를 조정 할수 있는 유틸리티
BOT을 사용해봅니다.
아래 명령을 실행합니다.
모든 설명은 스크립트 내부에 있으며 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/07/15 - [강좌/Raspberry PI 활용] - 라즈베리파이 Telegram BOT 만들기 1부 - Telegram cli 설치
2015/07/16 - [강좌/Raspberry PI 활용] - 라즈베리파이 Telegram BOT 만들기 2부 - Telegram cli 기초 사용법
2015/07/16 - [강좌/Raspberry PI 활용] - 라즈베리파이 Telegram BOT 만들기 3부 - Telegram cli BOT 의 뼈대 만들기
2015/07/21 - [강좌/Raspberry PI 활용] - 라즈베리파이 Telegram BOT 만들기 4부 - Telegram CLI 데몬 실행 및 서비스 등록
'강좌 > RaspberryPI 활용' 카테고리의 다른 글
라즈베리파이 공식 7인치 LCD (DSI) 멀티 터치 사용하기 (5) | 2015.09.23 |
---|---|
Raspberry Pi DSI Display Multi Touch (0) | 2015.09.22 |
유튜브 다운로드 (0) | 2015.09.01 |
라즈베리파이 Telegram - PHP를 이용하여 메시지 보내기 (7) | 2015.08.13 |
라즈베리파이 Telegram BOT 만들기 5부 - Telegram CLI BOT 최종 (27) | 2015.07.22 |
라즈베리파이 Telegram BOT 만들기 4부 - Telegram CLI 데몬 실행 및 서비스 등록 (35) | 2015.07.21 |
라즈베리파이 Telegram BOT 만들기 3부 - Telegram cli BOT 의 뼈대 만들기 (22) | 2015.07.16 |
라즈베리파이 Telegram BOT 만들기 2부 - Telegram cli 기초 사용법 (3) | 2015.07.16 |
라즈베리파이 Telegram BOT 만들기 1부 - Telegram cli 설치 (29) | 2015.07.15 |
-
^_^ 2015.10.26 00:27
좋은 강의 잘 보았습니다^_^ 질문이 있는데요
사진 전송시 자동저장되는 경로가 home/pi/.telegram-cli/downloads 인데 이 경로 지정은 어디서 변경할 수 있나요?
스크립트내에 있을까해서 이것저것 뒤져봤는데 찾지를 못해서요ㅠ_ㅠ-
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)
이렇게 하시면 됩니다.
-
-
-
Acidpop acidpop 2016.01.08 16:12 신고
안녕하세요.
제가 bot 쪽을 제대로 테스트 안하고 올렸나 봅니다.
git pull 명령을 이용해서 소스 업데이트후에 다시 시도해 보시면 될겁니다.
-
-
good 2016.01.09 02:10
좋은 강의 잘 보았습니다.
궁금한게 있는데요 torrent.lua 에서 DownloadTorrent 함수 내부에서 마그넷 링크/url_download 를 하는데요
url_download를 호출 할 수가 없다고 합니다.-
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 라는게 새로 생겨났네요;
-
Acidpop acidpop 2016.04.28 09:48 신고
최근 소스로 업데이트 해서 다시 테스트 해봤습니다만..
on_msg_receive 의 msg 변수를
모두 출력해주는 부분을 보면
peer_id 는 보이지 않네요...
뭔가 환경이 다른걸까요? -
Acidpop acidpop 2016.04.28 16:45 신고
다시 테스트 해보니 peer_id 로 보이네요
좋은 정보 감사합니다.
요즘에는 CLI 가 아닌 Bot API 를 이용하다 보니
유지가 잘 안되었군요.
-
-
제발 2016.11.24 14:15
telegram 을이용해서 문자 전송까지는 되었습니다. 하지만 저희가 하려고 하는게 적외선 센서를 인식하였을 때 문자가 스마트폰으로 자동으로 전송되게 하고 싶은데 어떻게 해야되는지 가르쳐 주신다면 감사하겠습니다.
-
Acidpop acidpop 2016.11.24 15:20 신고
질문이 너무 광범위 한것 같습니다.
질문하신 그대로 적외선 센서가 인식 되었을때에 강좌에 있는 봇에게 메시지보내기를 수행하시면 되지 않을까요? -
Acidpop acidpop 2016.11.24 15:21 신고
외부에서 Telegram CLI 로 메시지를 보내고 싶으시다면
--accept-any-tcp 이 옵션을 이용하셔서 TCP 포트 하나 여시고
netcat 으로 메시지를 보내는 방법을 사용하셔도 됩니다.
http://blog.acidpop.kr/189
위 링크를 참고하세요
-
-
-
Acidpop acidpop 2017.03.24 09:01 신고
아무 반응이 없더라고
ps -ef | grep tele
명령 실행 하셔서 실제로 실행이 되고 있는지 확인해보세요
-
-
-
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 파일을 열어서 확인해보세요
"날씨" 라는 메시지 전송이 어떻게 작동하는지 조금만 보시면 알수 있습니다.
-
-
4부의 basicbot.lua를 지우고
5부에서 받은 basicbot.lua를 넣고 실행시키면
cli daemon 이 stopped 멈춥니다-
Acidpop acidpop 2017.07.10 13:35 신고
안녕하세요
답변이 너무 늦었네요 ㅠㅠ
해결 하셨는지는 모르겠지만 어떤 내용이 나오는지
실행 후 에
/var/log/telegram-cli.log
로그 파일의 마지막 부분 내용을 조금 더 올려주셔야 확인이 가능합니다.
-
-
got987junsuk 2017.07.08 11:40
./bot/common.lua:8: module 'socket' not found:
라고 해서 no file socket관련 에러들이 뜨는데 어떻게 할 수 있을까요?-
Acidpop acidpop 2017.07.10 13:34 신고
어떤 리눅스에서 사용하시는지는 잘 모르겠지만
라즈베리파이에서 사용 하신다면
sudo apt-get install lua-socket
위와 같이 lua-socket 라이브러리를 설치해주시면 됩니다.
-
-
라즈베리파이 2017.08.31 17:46
no field package.preload['socket']
no file '/usr/local/share/lua/5.2/socket.lua'
no file '/usr/local/share/lua/5.2/socket/init.lua'
no file '/usr/local/lib/lua/5.2/socket.lua' no file '/usr/local/lib/lua/5.2/socket/init.lua' no file '/usr/share/lua/5.2/socket.lua'
no file '/usr/share/lua/5.2/socket/init.lua'
no file './socket.lua'
no file '/usr/local/lib/lua/5.2/socket.so'
no file '/usr/lib/arm-linux-gnueabihf/lua/5.2/socket.so' no file '/usr/lib/lua/5.2/socket.so'
no file '/usr/local/lib/lua/5.2/loadall.so'
no file './socket.so'-
Acidpop acidpop 2017.08.31 22:19 신고
댓글을 쓰실때는 조금만이라도 예의를 지켜주세요.
sudo apt-get install lua5.2-socket
-
-
gawoon 2017.10.02 17:32
덕분에 라즈베리파이 최근 버전에 telegram-cli 설치를 마무리 할 수 있었습니다.
아직 해결되지 않은 두 가지가 있는데
1. 저는 리부팅을 하면 telegramd 서비스가 자동으로 되지 않습니다. 무슨 문제일까요?
재부팅 후 sudo /etc/init.d/telegramd start를 꼭 실행해야하네요.
2. 토렌트는 내부에 있는 주소를 변경해서 검색어를 입력하면 목록 다운까지는 됩니다만 다운 번호를 입력하면 뻗어버립니다.
재부팅 하고 telegramd start 를 시켜도 토렌트 다운은 되지 않네요.
magnet 링크를 추가하였습니다.
다운로드 링크가 magnet 입니다.
마그넷 링크 추가를 요청합니다.
메시지 창에는 이렇게 뜹니다.
도움 부탁드립니다.