전편보기 : "타로 - 당신의 운명을 맞추어 보세요.
얼마 전에 타로로 과거, 현재, 미래를 점치는 사이트를 만든 것을 잠시 소개 드렸었습니다.
그 사이에, 몇가지 변화가 있었는데요..
책 구입
타로가 구체적으로 궁금해서 책을 하나 샀습니다. 오컬트 타로 덱을 이야기할때 나오는 책인데요,
바로 이 책입니다.
"The Book of Thoth: A Short Essay on the Tarot of the Egyptians, Being the Equinox Volume III No. V "
(source : amazon.com)
하핫..저 무언가 주술?을 파는 그런 사람은 아니구요, 지적인 호기심에서 그런 것입니다. 오해는 없으셨으면
좋겠습니다. 사실 이런 책이 있는 줄도 이번에 tarot개발 하면서 처음 알게 된 것이라서요..
프로그램 개발
전에 공개 해 드린 사이트에 몇분 안 오실줄 알았는데, 생각보다 꾸준히 찾아 주시고 계시더라구요.
그래서 과감히 전에 이야기 한 것 처럼 댓글에 "타로점"이라고 쓰면, 그 댓글의 댓글로 타로점이 나오는 걸 만들고 있습니다.
사실 기존에 하고 계신 분들에게는 되게 쉬운 것일텐데, 전 아무래도 이 동네에는 초보라서, 열심히 배워 가며 하고 있습니다.
우선 다 된 것은
- API를 통해서 id를 주면 전체 글을 모두 가져 오는 것
- API를 통해서 id와 permalink를 주면 리플라이를 모두 가져 오는 것
- 특정 리플라이에 대해서 댓글을 다는 기능
- 이거 하다가 우연히 voter list만들어 주는 기능까지
되었고,
이제 해야 하는 것은 둘이 비슷한 기능이지만, 일단은 아래와 같은 2가지 입니다.
- 리플라이 중에서 tarot점을 만들어야 하는 리플라이를 구분하는 것
- 이미 리플라이를 한 것에 대해서는 리플라이 하지 않는 것, 즉 리플라이가
필요한 글만 가져오는 기능, 본래 이건 OMA DS라는 기술인데요, 어떻게 구현할지 고민 중에 있습니다.
그리고 nice to have로 타로 카드 그림을 같이 표시하는 기능이 필요합니다. 아무래도 VUE와 Route가 꼭 필요해 보이긴 하지만 이건 learning curve가 조금 되는 것 같더라구요. 여튼 필요한 기술이니 공부해야죠.
마치며
공부도 빨리하고 진도도 빨리 빼서, 가능한 일주일안에 어떻게 해보려고 합니다. 더욱이 voter list를 구해주는 서비스는 어디서 본 것 같은데요, 이것도 필요하신 분이 계시면 조만간 오픈 하겠습니다.
어디엔가 개발의 흔적을 남기는 것은 매우 즐거운 일인것 같습니다.
실제 개발 내용
다 쓰고 나니 source code가 빠졌습니다...헐..
모두 node.js 기반입니다. 전 그냥 heroku와 github연동해서 heroku에서 돌리고 있습니다.
(요 부분도 미역국 끓이기와 비슷한데요, 혹시 heorku 사용법에 대해서 자세한 내용이 필요하시면 알려주세요.)
아래는 permalink를 주변 voter를 가져오는 code입니다. 아직 web front end는 붙어 있지 않고, heroku server의
환경 변수와만 연동되고 있습니다.
console.log('getActiveVotes test');
var res;
var res_formatted = '';;
var pLink = '여기에 글의 permalink입력';
steem.api.getActiveVotes('본인의 steemit ID',pLink, function(err, result) {
console.log(err, result);
console.log('for each test');
res = result;
res.forEach((num, index) => {
console.log(num.voter);
res_formatted += '\@';
res_formatted += num.voter;
res_formatted += '\,';
});
console.log(res_formatted);
});
이렇게 code를 실행하면 아래와 같이 감사를 표하는 글에 넣기 좋은 mention list가 나옵니다.
voter가 많으면 많을수록 사용하기 편리하죠. 아니면 한명씩 typing을 해야 하는데, 중간에 틀릴 가능성이 높은 작업이죠.
아래는 답글을 posting하는 code입니다. steemit에서는 원글이나 댓글이나 다 같은 API로 사용을 하고 있습니다.
Reference
[1] https://steemit.com/steemdev/@jfollas/write-a-steemit-web-app-part-11-posting-content
[2] https://steemit.com/steemdev/@jfollas/write-a-steemit-web-app-part-8-retrieving-content-with-getstate
[3] https://github.com/steemit/steem-js/issues/151
[4] https://developers.steem.io/
[5] https://codeburst.io/javascript-map-vs-foreach-f38111822c0f
//writing reply
var private_posting_wif = process.env.pass; //Heroku server에서 지원하는 기능입니다. 직접 password를
code에 넣어도 되지만, web이나 github에 이를 적어서 올릴수는 없고, 그래서 환경 변수와 연동합니다.
사실 귀찮기는 하지만 posting key는 알려지면 바꾸면 되지요. 하지만서도 문제는 그 사이에 제가 원하지 않는 글들이 써진다는 문제가 있습니다.
var parent_author = 'jeaimetu';
var parent_permlink = 're-jeaimetu-6c1klq-stereotype-20180317t185909244z';
var json_metadata = '';
const permlink = steem.formatter.commentPermlink(parent_author, parent_permlink)
steem.broadcast.comment (
private_posting_wif, // 포스팅 키(steemit의 권한에서 확인)
'jeaimetu', // 원문의 id
parent_permlink, // 원문의 permalink
'jeaimetu', // 댓글 달 사람의 id, 첫번째의 포스팅 키를 소유한 사람의 id
permlink, // 댓글의 permalink
'', // comment에서는 필요 없음
'Posting test through api', // Post나 comment의 본문
json_metadata // 댓글에서는 그냥 null
)
특정 ID의 모든 글 가져오기
steem.api.getState('@jeaimetu',function(err, result){
console.log(err, result);
});
별로 어렵지도 않습니다. 그냥 위와 같이 적으시고 ID부분만 확인하시고 싶으신
분으로 바꾸면 됩니다.
마지막으로 이건 특정 글의 reply를 모두 가져 옵니다.
steem.api.getContentReplies('jeaimetu', 'upvoting-collection', function(err, result){
console.log(err, result);
});
*댓글이나 업보트는 글쓴이에게 큰 힘이 됩니다. 업보트 해주신 분은 꼭 찾아가서 팔로우하고 다시 업보트 하겠습니다.
*업보트를 해주시는 경우 꼭 댓글을 부탁드립니다. 감사의 의미로 제가 업보트 하기 위함입니다. 가끔 업보트 눌러주신 분의 페이지를 방문했는데 글이 없는 경우가 있어서 제가 은혜를 갚을 길이 없어져서요...