안녕하세요 ayogom 입니다.
어느듯 10편을 작성하고 있네요. 밑천이 바닥나는 기분을 느끼고 있습니다. 장시간 연재를 하시는 분들은 정말 대단하신 것 같습니다 ㅎㅎ
오늘은 간단한 보팅봇을 만들어보려고 합니다 ㅎㅎ 기본이 되는 소스는 [NodeJS] API 사용 법 8편 스팀 블럭 모니터링 하기 2편 을 기본으로 진행 합니다.
var steem = require('steem');
steem.api.streamBlockNumber('head',function(err, result){
console.log(err, result);
steem.api.getBlock(result ,function(err, result){
for (var i=0;i<result.transactions.length;i++){
console.log(result.transactions[i].operations[0][0]);
}
})
});
위의 코드는 스팀 내에 transactions이 어떠한 transactions이었는지 확인하는 코드 입니다. 보팅을 하기 위해서는 제일 먼저 무엇을 알아야 할까요? 체인내에 글이 올라온다는 것을 알아야 합니다.
마침 바로 딱 좋은 케이스가 나왔네요.
여기서 보시면 comment
가 바로 포스팅 혹은 댓글이 추가되었다는 transactions 입니다.
따라서 해당 comment
만을 추출 해야 합니다. 간단하게 IF 문을 쓰면 되겟죠?
가볍게 해당 내용을 살펴보면
var steem = require('steem');
steem.api.streamBlockNumber('head',function(err, result){
console.log(err, result);
steem.api.getBlock(result ,function(err, result){
for (var i=0;i<result.transactions.length;i++){
if ("comment" == result.transactions[i].operations[0][0]){
console.log(result.transactions[i].operations[0][0])
console.log(result.transactions[i].operations[0][1])
}
}
})
});
위의 코드는 "comment" 관련 내용을 추출 하는 코드 입니다.
위 에서 나오는 [ ] 에 따라 분리가 됩니다.
② 부분은 result.transactions[i].operations[0][0]
을 의미 하고요
③ 부분은 result.transactions[i].operations[0][1]
을 의미합니다.
② 에서는 해당 transactions 이 무엇인지 확인을 할 수 있고요
③ 에서는 그 transactions 의 내용을 확인 할 수 있습니다.
따라서 저 위의 comment
을 추출 해서 해당 내용이 무엇인지 본 경우 입니다.
해당 내용을 살펴보면
parent_author: 'ghostfacer99',
parent_permlink: 'qu1j4d',
author: 'fazalwattoo',
permlink: 'qu25jk',
title: '',
body: 'Sir i am from Pakistan so i add the tag of pakistan and also i add my achievement1 link.please label me in this community.',
json_metadata: '{"app":"steemit/0.2"}'
이렇게 쓰여져 있는데요 실제 해당 포스팅을 살펴보면
ghostfacer99
가 작성한 qu1j4d
포스팅에 fazalwattoo
가 Sir i am from Pakistan so i add the tag of pakistan and also i add my achievement1 link.please label me in this community.
의 내용을 qu25jk
주소로 작성 한 것을 알 수 있습니다.
- 댓글에는 title 이 없습니다. title 있으면 댓글로 보지 않아요.
우리가 알고자 하는 내용이 다 담겨있죠?
그럼 한번 해볼까요?
var steem = require('steem');
var wif = "5KL*********************"
var voter = "ayogom"
steem.api.streamBlockNumber('head',function(err, result){
console.log(err, result);
steem.api.getBlock(result ,function(err, result){
for (var i=0;i<result.transactions.length;i++){
if ("comment" == result.transactions[i].operations[0][0]){
if ("ayogom" == result.transactions[i].operations[0][1].author){
var author = result.transactions[i].operations[0][1].author
var permlink = result.transactions[i].operations[0][1].permlink
var weight = 10000
steem.broadcast.vote(wif, voter, author, permlink, weight, function(err, result) {
console.log(err, result);
});
}
}
}
});
});
transactions 중에 ayogom 이 쓴 글 혹은 포스팅이 발견되면 해당 글 혹은 포스팅에 100% 보팅을 해라 라는 코드 입니다.
이 글을 완료하기 전에 해당 코드가 잘 동작하는지 코드를 동작 시켜보겠습니다.
아마도 정상적으로 동작을 한다면 해당 포스팅에 제가 셀프 보팅을 하게 될 것 같습니다.
그럼 결과는 댓글로 남겨놓겠습니다
오늘도 참 쉽죠?~
작성 예정인 글 List
- Nodejs 를 이용한 스팀 API 사용해보기 (계속)
- SCT 포스팅피 납부 방법
- 니트로스별(SCT, ZZAN, AAA 등) 설정 확인하는 방법
누군가에게는 도움이 될 수 있는 글
스팀잇 기본 이야기
- 복잡한 키&패스워드는 그만 손쉬운 로그인 키체인의 사용법
- 계정 옆의 숫자 평판? "reputation" 이란
- [요청] 스팀엔진 사용방법
- 스팀잇 내부 거래 사이트, 마켓
- 오랜만에 스팀잇에 돌아왔더니 로그인이 안됩니다 (Logging in with non-posting key)
- 스팀잇에 기존 사용하던 트론 지갑을 연결하는 방법
- 스팀 체인의 패스워드 / 키의 역활
- [요청] 스팀엔진 Explorer 가 접속이 되지 않아요
- Steemit의 태그 사용법과 커뮤니티스 사용법
- Steemit 프로필 변경 방법
- 스팀파워 임대가 안된다 왜?
- 스팀잇 계정 만들기
- 스팀잇 저장 보상의 종류와 뭐가 좋을지
- 스팀잇 속닥속닥 비밀 메모 사용하기!
- 스팀/스달 입금, 출금 그리고 업비트 이용방법
- 갑자기 steemit 사이트가 접속이 안된다면?
- 스팀잇 내에 붉은 글씨 사용법
- Steem체인의 또하나의 커뮤니티 "zzan"
- Steem체인의 또하나의 커뮤니티 "sct"
- 스팀잇 지갑에 접속이 되지 않을 때
- 스팀잇 글 작성 문법 [마크다운편]
- 스팀잇 글 작성 문법 [HTML]
- 스팀잇 가독성 및 작성을 편하게 해주는 "Steemit.com Enhancer" 툴
스팀잇 심화 이야기
- 스팀의 인플레이션에 대해서
- 하루에 스팀 리워드 풀에 포함되는 스팀은 얼마나 될까?
- 하루에 도대체 어느정도의 스팀은 생성될까요?
- 내가 보팅 했더니 보상이 떨어졌다? 왜?
- 스팀달러가 1달러를 유지하는 방법
- 글이 써지지 않아요 왜? Resource Credits!? Your transaction failed to process
- 스팀잇 에서의 $ 는 USD(미국달러) 인가요?
- 스팀은 DPOS 기반의 블록체인입니다. 그럼 DPOS가 뭔가요?
- 증인에 역활은 무엇일까
- 스팀 증인 노드 세팅하기 1탄
- 스팀 증인 노드 세팅하기 2탄
- Steem Node 정리 (Full node 1편)
- Steem Node 정리 (Full node 2편) -설치
- 증인 노드 feed price 업데이트 방법
스팀잇 보상과 연결되는 이야기
해킹과 관련된 이야기
개발과 관련된 이야기
- Nodejs 가 무엇인지 그리고 어떻게 설치 하는지?
- [NodeJS] API 사용 법 1편 스팀 라이브러리 설치
- [NodeJS] API 사용 법 2편 보팅을 해볼까?
- [NodeJS] API 사용 법 3편 포스팅을 해볼테다!
- [NodeJS] API 사용 법 4편 예약 포스팅 해보기
- [NodeJS] API 사용 법 5편 예약 포스팅 해보기 -2편 (포스팅 수정)
- [NodeJS] API 사용 법 6편 예약 포스팅 해보기 -3편 (매일매일 글쓰기)
- [NodeJS] API 사용 법 7편 스팀 블럭 모니터링 하기
- [NodeJS] API 사용 법 8편 스팀 블럭 모니터링 하기 2편
- [NodeJS] API 사용 법 9편 Nodejs가 가지는 불편함 (콜백지옥)