[node.js 초급코딩3-2] @야구 이벤트 코드 두번째 이야기
드디어 초보코딩 3-2를 포스팅합니다~
이전 내용을 못보신 분들은 이전 포스팅 초보코딩 3-1을 참고하세요.
원래는 야구이벤트때 진행했던 @야구 명령어 처리하는 부분(BaseballEvent_Reply_FromResults.js)과 댓글다는 부분(BaseballEvent_ResultList.js)을 같이 포스팅하려고 했는데, 생각보다 내용이 긴듯해서 나눠서 진행하겠습니다.
이전 포스팅에서 말씀드렸듯이 여기서도 Steem API는 하나만(Get Content Replies) 사용했습니다.
저자(author) 와 링크(permlink) 값으로 해당 댓글을 JSON 으로 리턴해주는 API 입니다.
이 API 를 사용해서 @야구 명령어를 처리하는 시나리오 입니다.
- 특정 포스팅에서 댓글을 가져온다.
- 정답에 해당하는 야구 번호를 결정한다.(이 부분은 코드 공개하지 않았습니다. ㅎㅎ)
- 댓글 수 만큼 반복문(for)를 돌면서 댓글에 @야구 명령어가 있는지 확인한다.
- @야구 명령어가 있는 경우에만 명령어 뒤에 붙은 3자리 숫자를 가져온다.
(@야구 명령어 뒤에 바로 숫자가 오는 경우와 한칸띄고 숫자가 오는 경우가 있어서 두 가지 다 처리를 함) - 정답 3자리와 입력한 3자리를 이중 for 문을 사용해서 strike 와 ball 수를 계산한다.
- 삼진에 해당하는 3-Strike 의 경우 당첨 댓글을 아닌 경우는 strike 과 ball 수를 표기하는 댓글을 정한다.
- 나중에 댓댓글을 달기위한 정보(댓글의 author, 댓글의 permlink)을 같이 JSON 으로 구성해서 파일로 써준다.
(파일명 구분은 항상 다른 permlink 로 구성함.)
코드 내용에서 이전 초급코딩에서 나오지 않았던 내용은 file 에 쓰고 지우는 부분인 것 같습니다.
'steem' 객체를 읽어오듯이 file stream 에 해당하는 'fs'를 먼저 읽어옵니다.
var fs = require('fs');
파일에 써줄 내용을 준비해서 파일에 써줄 때 사용하는 file stream API 입니다.
fs.writeFile(filename, data, type, function(err) {
console.log(err);
});
제 코드에서는 filename 을 permlink 를 이용해서 정하고, data 는 JSON 형태 String 으로 구성하고, type 은 'utf8'을 사용했다고 보시면 됩니다.
아, 제가 nodeJS 에서 제일 고생하고 있는게 비동기 API 사용인데요. 지금 설명드린 fs.writeFile API 도 비동기 함수랍니다.
여기서는 비동기로 처리되도 상관이 없기에 그냥 사용해도 무방했습니다.
이제 파일로 작성한 내용을 댓글로 달기만 하면 되겠군요. ㅎㅎ
초급코딩3-3에서 뵙겠습니다.
이전 초급코딩
[node.js 초급코드] 내 포스팅 댓글에 달린 주사위 값 조회
[node.js 초급코드2] 내 포스팅 링크 정리 Script
[node.js 초급코딩3-1] @명령어 처리(@야구 이벤트 코드)
와~ 아는 내용 나오니깐 보기좋네요.
코인은 영~~ 모르겠는데요.ㅎㅎ
리스팀 감사합니다. 점심시간 이벤트 보팅드렸습니다^^
잘보고 갑니다. 보팅드려요.
감사합니다~:)