본문 바로가기

Study

irssi proxy와 PushBullet을 이용한 실시간 Push 받기




안녕하세요. 몇 주전에 했던 짓(?)을 정리하고자 합니다.

요지는, irssi라는 IRC Client와 해당 Client의 Proxy Pass기능을 이용하여 자신의 Server에 IRC를 항상 켜놓고, Highlight word가 검출되면 PushBullet을 통해 PC 혹은 Web Browser, Smart Phone으로 Push Message를 보내는 기능에 대한 것입니다. 이 삽질을 위한 준비물은 다음과 같습니다.


- IRC를 항상 켜놓을 수 있는 Server

- PushBullet 계정

- Push를 받고자 하는 Device


준비가 됐다면, 시작해보도록 하죠~!



1. irssi 설치 및 설정


먼저 제 서버 환경(Ubuntu 12.04.5)에 맞춰 설명드릴 것이니, 참고하시기 바랍니다. Ubuntu에서 irssi를 설치하기 위해서는 다음과 같이 진행하면 됩니다.


$ sudo apt-get install irssi


그 후, irssi에 대한 설정을 몇 가지 진행합니다.



1.1 hilight


IRC에서 자신에 해당하는 닉네임이나 단어가 언급되었을 때, Highlight 되게 하는 명령을 넣어야 합니다. irssi를 실행한 후,


/hilight -color %R 새미

/hilight -color %R 정진

/hilight -color %R onsemy


등등을 넣었습니다. 위처럼 명령을 내리면, 다음처럼 Highlight List에 추가됩니다.





참고로 -color %R 옵션은 해당 단어가 언급됐을 때, 채팅창에서 빨간색으로 표시하도록 지정한 것입니다. 와일드카드라던가 정규식으로 모든 단어에 대해서 커버를 해야할 줄 알고 몇 시간동안 알아봤지만, 결국 저렇게 원하는 단어만 넣어도 알아서 필터해주더군요. Perl때문인진 모르겠지만 특정 단어에 대해서는 오작동이 발생하기도 합니다 (...) 해당 부분은 제가 원인을 몰라서 ㅎㅎ... 아시는 분은 댓글로 알려주시기 바랍니다 :)



1.2 Proxy 및 접속 Server 설정


irssi에서 Proxy 설정은 간단합니다. Ubuntu에서 설치하는 irssi의 경우, Binary버전이기 때문에 따로 Compile 과정에서 proxy 옵션을 넣지 않아도 irssi 내에서 다음 명령어로 활성 가능합니다.


/load proxy


그 후, 외부 Client에서 Proxy Server로 접속할 때 요구할 암호를 설정합니다. 필요없다면 건너뛰셔도 됩니다.


/set irssiproxy_password 암호


접속할 Server 설정에 대해 써보겠습니다. 제가 터잡은 곳은 오징어(Ozinger) 네트워크입니다.


/ircnet add ozinger

/server add -auto -ircnet ozinger irc.ozinger.org

/set irssiproxy_ports ozinger=6667


위와 같이 설정하면, ozinger라는 IRC Network를 추가하여 해당 Group에 오징어의 주소를 추가합니다. 외부 Client에서 접속할 Proxy Port 번호는 6667로 지정합니다. Nick Name을 설정하고 irssi에,


/server ozinger


라고 접속하면 기본적인 설정은 끝.



1.3 Screen


irssi가 터미널의 연결이 끊겨도 IRC Server와의 연결이 유지되도록 하기 위해선, Linux의 screen을 활용하는 방법이 있습니다. screen이 궁금하시다면, Linux Console 창에 man screen 이라고 쳐보세요 :) 어쨌든, 새로운 screen을 생성하는 방법은 다음과 같습니다.


$ screen -S irc


-S 옵션은 뒤에 나오는 단어의 이름으로 screen을 생성함을 의미합니다. 위의 명령어로 저는 irc라는 screen을 생성했습니다. 생성하고나면 아무 일 없었다는 듯이, clear된 상태로 커서만 깜빡이고 있을 겁니다. 그 상태에서 irssi를 실행하세요! 잘 실행될 겁니다. 하지만 screen의 진가는 이제부터 드러납니다. irssi가 켜져있는 상태에서, Ctrl+A, D를 눌러보세요. Ctrl+A, D를 하고나면, screen -S irc을 하기 직전의 화면으로 넘어갑니다. 이제까지 했던 것이 취소되었냐구요? 아닙니다. 생성된 irc에서 활동하던 상태를 잠시 접어(Detach)둔 것입니다. 눈에 보이지 않는 곳에서 열심히 irssi를 실행 중이죠. 되돌아가려면 어찌하느냐! 그건,


$ screen -r irc


라고 명령하면 됩니다. 쉽죠? 이제 슬슬 PushBullet도 챙겨줘야할 것 같네요.



2. PushBullet 설치 및 설정





PushBullet은 Smart Phone과 PC, 또는 다른 Device 간의 Push Service를 제공하는 녀석입니다. 양방향으로 Push를 전송할 수 있으며, Message 뿐만아니라 URL, File까지 전송 가능합니다. 현재 Web, PC, Mac, Smart Phone 등의 많은 Platform을 지원하고 있습니다. 먼저 홈페이지에 접속하여 가입 후, 홈페이지에서 제공하는 절차에 따라 설정을 진행합니다. 가입과 설정을 완료했다면, Access Token을 얻기 위해 계정 설정 페이지로 갑니다.





Token을 얻었다면, 다른 세상(?)의 Perl 능력자님께서 만든 Script를 적극 이용하면 됩니다. 저는 Github에서 jaxbot님의 irssi-pushbullet-notifications를 이용했습니다. 링크를 타고 들어가서 Readme에 써있는 필요한 프로그램을 설치한 후, Perl Source Code를 들여다보면 Irssi::settings_add_str 함수에 pb_key 라고 써있는 문자열이 있습니다.





해당 부분을 위에서 얻은 Access Token을 넣습니다. 그리고 해당 Script를 Server의



~/.irssi/scripts


에 넣어주세요. Directory가 없다면 만들면 됩니다. 그리고 irssi가 실행될 때마다 Script를 실행하게 하고 싶다면 ~/.irssi에 startup이라는 파일을 생성해서 다음과 같이 입력하면 됩니다.





위의 파일을 저장 후, irssi가 실행되어있다면 종료하고 screen 내에서 irssi를 실행합니다. 여기까지 했다면 Server측에서 할 설정은 끝!

Client에서 Proxy Server로 접속하고 싶다면,


/server 서버도메인혹은아이피주소 포트번호 비밀번호


로 접속하면 됩니다. GUI 환경에서는 접속할 Proxy Server 주소와 Port 번호를 입력하고, Proxy Server 사용 항목을 체크한 후, 암호와 문자셋을 설정하고 접속하면 됩니다.



3. Test


잘 작동하는지 확인해야겠죠? 본계는 Proxy Pass로 접속한 후, 다른 Nick Name으로 접속했습니다. 둘은 채널에 입장했죠. 오냇미가 제 이름을 부릅니다.





저렇게 치는 순간, 제 PC에 Push가 날아들었습니다. 와와-! 성공-!☆

Android에는 안날아왔냐구요? 그럴리가요 ㅎㅎ





여러번 겹쳐도 Notification Bar에 차곡차곡 쌓입니다. PC도 마찬가지죠. 제대로 성☆공★ㅋ



마치며...


막상 정리하고보니 별거 아니었는데, 며칠을 개고생한 건지 (...) 그리고 정리해서 포스팅하는 것도 만만치 않네요 하하.. 그래도 정리하고 싶었던 내용 중 하나라서 다 하고 나니까 뿌듯하네요 :) 근데 이걸 왜 했냐구요? 당시에 졸업연구 프로젝트가 잘 안되서요 (...) 잉여했습니다 (...)

그나저나 PushBullet... 이녀석으로 많은 걸 할 수 있을 것 같네요. 잘 활용하면, 모두에게 도움은 안되도 게으른 Server 관리자에겐 둘도 없는 친구가 될 것만 같습니다 :) 근데 저걸로 뭔가를 만드는 과정 자체가 귀차니즘으로 포기함직도 합니다만 ㅎㅎ...


자신만의 Server가 있고 IRC를 애용하는 당신이라면, 이런 삽질도 해봄직 합니다 ㅎㅎ!

그럼 20000



끝!