스팀잇을 이용해서 뭔가 끄적이고 싶긴 한데, 시간이 그다지 많지 않네요.
요즘은 저도 대세 언어인 자바스크립트에 많은 시간을 할애 하고 있습니다.
프런트 엔드는 20대, 백엔드는 3,40대, 50대 이상은 Perl 과 C 를 쓴다는데,
저는 20대인가 봅니다. ^^
스팀잇은 API 가 잘 되어있지 않은 것 같아요.
구글링이나 스택 오버플로우의 도움이 무척 필요합니다.
스팀잇 내에도 API 를 가지고 이것저것 하는 포스팅이 많으니 검색을 활용해 보시기 바랍니다.
기본적으로 필요한 도구
- Node 를 깔고
- npm install steem 까지는 하셔야 합니다.
- 여기에 Reference 가 있습니다. https://github.com/steemit/steem-js
코드
- steem.api.getTrendingTags 를 사용합니다. 첫번째 인자는 태그명으로 "여기부터 가져와" 입니다.
- 두번째 인자는 가져올 갯수입니다. 100개까지 가능할 겁니다. 여기서는 11개를 읽습니다. 첫번째는 "여기부터"라 이미 이전에 읽은 것이므로 패스
- 세번째 인자는 콜백 함수인데, 여기에 설명이 되어있습니다.
https://steemit.com/kr/@inspiredjw/javascript-callback-function (Thanks to@inspiredjw )
- 11개를 가져오고 마지막 태그명을 이용해서 거기부터 또 얻어오는 방식으로 동작합니다.
- 콜백 함수에서 재귀를 사용합니다. *
var steem = require('steem');
var last_tag = "";
var tags = [];
var FETCH_COUNT = 10;
(function run() {
steem.api.getTrendingTags(last_tag, FETCH_COUNT + 1, function(err, result) {
if ( typeof result === "undefined") {
console.log("---end");
// tags.forEach(function(e) {
// console.log(e);
// });
return;
}
for (var i = 1; i < FETCH_COUNT + 1; i++) {
tags.push(result[i].name);
console.log(result[i].name);
}
last_tag = result[FETCH_COUNT].name;
run();
});
})();
* 콜백에서 재귀호출을 하는데 이거 안하게 하는 방법에 대해서 이야기해보는 것도 좋을 것 같습니다.