Node.js로 스티밋에서 할 수 있는 것(6): tag에 맞는 최신 글 찾기

in kr •  7 years ago 

tag에 따른 글을 시간 순으로 찾을 수 있는 방법을 알아보자.

1. tag에 맞는 최신 글 찾는 함수

이것을 하기 위한 함수는 다음과 같다.

steem.api.getDiscussionsByCreated({
  tag: 'jjangjjangman'
  limit: 10,
  start_author: '',
  start_permlink: '',
}, function(err, result) {
    console.log(err, result);
});

이 함수의 인자는 아래와 같다.

  • tag : 찾고자 하는 tag 문자열
  • limit : 찾고자 하는 글의 최대 수
  • start_author : 최초 limit 만큼 찾은 후 다음 글을 연속해서 찾을 때 사용함. 최근에 찾은 마지막 저자
  • start_permlink : 최초 limit 만큼 찾은 후 다음 글을 연속해서 찾을 때 사용함. 최근에 찾은 마지막 글의 링크

최초에 검색을 할때는 start_author와 permlink 값은 필요가 없다. 다만 연속해서 다음 글을 찾고 싶을 때는 마지막 글의 저자와 링크를 넣어주면 된다.

함수의 인자로 길게 쓰면 보기가 좋지 않으므로 이 함수의 인자를 모아서 변수를 정의해보자.

var query = {
    "tag": "jjangjjangman",
    "limit": 10
}
steem.api.getDiscussionsByCreated( query, function (err, posts) {

코드 읽기가 한결 편해진다. 이렇게 정리한 코드는 아래와 같다.

var query = {
    "tag": "jjangjjangman",
    "limit": 10
}
steem.api.getDiscussionsByCreated( query, function (err, posts) {
    if (err == null) {
        for (var i = 0; i < posts.length; i++) {
            var str = "[" + (i + 1) + "] " + posts[i].created + ' ; ' + posts[i].author + ' ; '
                      + posts[i].permlink + ' ; ' + posts[i].title + ' ; ' + posts[i].pending_payout_value
            console.log(str)
        }
    }
    else {
        console.log(err.message.split("{}")[0])
    }
});

요즘 대세인 "jjangjjangman" 태크로 검색한 최근 글들이다.

image.png

소스코드는 아래 github 사이트에 있다.
https://github.com/multiwhs/steem-js/blob/master/app_get_new_post_with_tag.js

2. tag에 맞는 인기글(Hot), 대세글(Trend) 찾는 함수

steemit에서 볼 수 있는 Hot(인기글), Trend(대세글)를 볼 수 있는 함수도 있다. getDiscussionsByCreated와 같은 인자를 갖는다.

  • steem.api.getDiscussionsByHot(tag, limit) // Hot (인기글)
  • steem.api.getDiscussionsByTrending(tag, limit) // Trending(대세글)

3. 응용해 보기

예를들어 5일이 지났는데 보팅 받은 금액이 $1.00이하인 글 리스트를 찾는다고 가정하자. 대략적인 코드는 이렇게 구성될 것이다.

while(!end) {
   글 목록을 가져온다.
    for ( 글 목록 수만큼 ) {
          if ( (현재 일자 - 생성일자) > 5일 and  (현재 일자 - 생성일자) < 6.5일 ) {
                 if  (payout 예정 값  < 1 ) 
                       해당 글 출력
           if  (현재 일자 - 생성일자) >  6.5일 )  // 더 이상 보팅을 할 수 없다.
                      end = true   // while 종료
    }
     query.start_author = 마지막 글 저자
     query.start_permlink= 마지막 글 링크
}

이전 글 보기

Node.js로 ..(1) :원하는 작가들의 최신 글 리스트 받기

Node.js로 ..(2): 디버깅 방법 및 excel로 활용하기

Node.js로 ..(3) : 보팅한 이웃과 금액 보기

Node.js로 ..(4): 보팅하기

Node.js로 ..(5): 댓글달기 그리고 댓글에 보팅하기

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

정말 감사합니다! 사실 준비해서 짱짱맨 태그에 자동 보팅 해보려고 했던건데 어떻게 딱 예제를...!!! 잘 활용하겠습니다!

짱짱맨을 찾으시는 구나 하고 느낌이 딱하고 왔어요. 뉴비들 신경써 주셔서 감사합니다. 필요하신 것 있으면 함께 만들어가시지요.

오. 이런 것도 할 수 있다니. 하지만 뭔가 외계어가 나열되있는 느낌ㅜㅜ

a very interesting post I need support from you @tradingideas

굉장히 유용한 팁 같아요~^^
잘 사용하겠습니다!
감사합니다 :)

헉 감사합니다!!! ㅠㅠㅠㅠㅠ 진짜진짜 감사해용 ㅠㅠㅠㅠㅠ 저 완전 필요했었거든여... 히히..ㅎㅎㅎㅎ

도움이 되셨다니 다행이네요.

아. . 함수는 넘나 어려워요. . . ㄷㄷ

사실 수익이 얼마 안돼는 글에 보팅하는 걸 구현해 보고 싶었는데 이렇게 미리 예제를 보여주시니 많은 도움이 됩니다.^^