2010년 9월 15일 수요일

나눔로또 정보 확인 메신저 봇(bot)

예전에 goo.gl 관련 자료를 찾다가 우연히 발견한 소스를 보고, Google App Engine을 사용하면 Google Talk(XMPP) 호환 메신저 봇(bot)을 간편하게 만들 수 있다는 걸 알게 됐습니다. 사실, Google App Engine의 sample project 모음이나 공식 개발 문서에 설명이 잘 되어 있더군요. 주의 깊게 살펴보지 않아서 몰랐던 것일 뿐... ^^;

그래서, Google App Engine XMPP 서비스에 대해 공부도 해볼 겸 나눔로또 정보를 확인할 수 있는 간단한 메신저 봇을 만들어 보았습니다. Sample project 모음에 예제 소스가 잘 구현되어 있고 관련 문서도 잘 정리되어 있어서 구현 자체는 그다지 어렵지 않았습니다. 로또 관련 라이브러리도 예전에 만들어둔 것을 그대로 가져다 사용했기 때문에 금방 만들 수 있었지요.

테스트 해보실 분들은 아래 주소를 Google Talk이나 XMPP 호환 메신저에 친구로 등록하고 간단한 명령을 입력해보세요.
Bot ID: lotto-k2@appspot.com

도움말을 제외하고 현재 사용할 수 있는 명령은 세 가지입니다.

1. help
도움말을 보여 줍니다.
me는 명령을 입력하는 사람이고, lotto-k는 봇입니다.
me:
help

lotto-k:
Korean Lotto 645 Bot.
=====================
- get or get [lotto game no. or 0]
ex1) get
ex2) get 0
ex3) get 375
- try [lotto game no. or 0] [your numbers]
ex1) try 0 4,8,19,25,27,42
ex2) try 375 4,8,19,25,27,42
- take or take [1~5]
ex1) take
ex2) take 5
-------
for more details: http://lotto.kaisyu.com

2. get [로또 회차]
주어진 로또 회차에 대한 정보를 보여 줍니다.
봇 출력 결과에 대해 간단히 설명하면,
1) game no. - 로또 회차
2) date - 로또 추첨일
3) winning numbers - 로또 당첨 번호
명령으로 'get'만 입력하거나 'get 0'라고 입력하면 가장 최근의 로또 당첨 정보를 알려 줍니다.
me:
get 375

lotto-k:
game no.: 375
date: 2010-02-06
winning numbers: 4, 8, 19, 25, 27, 45 / (7)

3. try [로또 회차] [비교할 번호]
주어진 로또 회차와 번호들을 비교하여 당첨 여부에 대한 결과를 알려 줍니다.
봇 출력 결과에 대해 간단히 설명하면,
1) rank - 로또 당첨 등수
2) game no. - 로또 회차
3) date - 로또 추첨일
4) trying numbers - 내 번호
5) winning numbers - 로또 당첨 번호
6) matched number(s) - 일치한 번호
역시 'get' 명령과 유사하게 로또 회차에 '0'을 주면 가장 최근의 로또 당첨 번호와 비교하게 됩니다. 그러나 생략은 불가능합니다.
me:
try 375 4,8,19,25,27,42

lotto-k:
rank: 3
game no.: 375
date: 2010-02-06
winning numbers: 4, 8, 19, 25, 27, 45 / (7)
trying numbers: 4, 8, 19, 25, 27, 42
matched number(s): 4, 8, 19, 25, 27

4. take [랜덤 생성할 회수]
주어진 회수만큼 로또 예상 번호를 랜덤으로 생성해 줍니다.
메신저 봇이 폭주(?)하는 것을 막기 위해 랜덤 생성 회수는 최대 5까지만 지정할 수 있습니다. 더 큰 수를 주더라도 5로 변경됩니다.
me:
take 3

lotto-k:
11, 19, 23, 33, 38, 43
1, 5, 8, 21, 28, 45
12, 23, 25, 26, 28, 40

댓글 없음:

댓글 쓰기