스팀잇 태그 목록 모두 가져오기

kdj(57)
Published in
#kr-dev
Words
198
Reading
1 min
Listen
Play
9y

스팀잇을 이용해서 뭔가 끄적이고 싶긴 한데, 시간이 그다지 많지 않네요.
요즘은 저도 대세 언어인 자바스크립트에 많은 시간을 할애 하고 있습니다.
프런트 엔드는 20대, 백엔드는 3,40대, 50대 이상은 Perl 과 C 를 쓴다는데,
저는 20대인가 봅니다. ^^

스팀잇은 API 가 잘 되어있지 않은 것 같아요.
구글링이나 스택 오버플로우의 도움이 무척 필요합니다.
스팀잇 내에도 API 를 가지고 이것저것 하는 포스팅이 많으니 검색을 활용해 보시기 바랍니다.

기본적으로 필요한 도구

코드

  • steem.api.getTrendingTags 를 사용합니다. 첫번째 인자는 태그명으로 "여기부터 가져와" 입니다.
  • 두번째 인자는 가져올 갯수입니다. 100개까지 가능할 겁니다. 여기서는 11개를 읽습니다. 첫번째는 "여기부터"라 이미 이전에 읽은 것이므로 패스
  • 세번째 인자는 콜백 함수인데, 여기에 설명이 되어있습니다.
    https://steemit.com/kr/@inspiredjw/javascript-callback-function (Thanks to inspiredjw@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();
    });
})();

* 콜백에서 재귀호출을 하는데 이거 안하게 하는 방법에 대해서 이야기해보는 것도 좋을 것 같습니다.