점치고 가세요 개발 현황/Tarot, Steem API, development status

in #steemdev7 years ago (edited)

전편보기 : "타로 - 당신의 운명을 맞추어 보세요.

얼마 전에 타로로 과거, 현재, 미래를 점치는 사이트를 만든 것을 잠시 소개 드렸었습니다.
그 사이에, 몇가지 변화가 있었는데요..



책 구입


타로가 구체적으로 궁금해서 책을 하나 샀습니다. 오컬트 타로 덱을 이야기할때 나오는 책인데요,

바로 이 책입니다.
"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가 나옵니다.

@virus707,@tyedyefirepower,@topbit,@qrwerq,@joceo00,@dugsu2,@talkmon,@jeaimetu,@sd974201,@krhodler,@fast.rabbit

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);
});



*댓글이나 업보트는 글쓴이에게 큰 힘이 됩니다. 업보트 해주신 분은 꼭 찾아가서 팔로우하고 다시 업보트 하겠습니다.

*업보트를 해주시는 경우 꼭 댓글을 부탁드립니다. 감사의 의미로 제가 업보트 하기 위함입니다. 가끔 업보트 눌러주신 분의 페이지를 방문했는데 글이 없는 경우가 있어서 제가 은혜를 갚을 길이 없어져서요...


Sort:  

오.. 프로그램을 잘 모르니 이런걸 보면 너무 신기해요.

덕담 감사합니다. 활기찬 한 주 보내세요.

폰으로 읽다보니 컴에서 다시 읽어봐야 겠어요. 업보트/팔로우 남깁니다. 3EFE4046-5F2E-41FF-ADF3-C60D98F88EBD.jpeg

앗..저도 모바일에서 보니 source code부분이 너무 옆으로 길어서 잘 안보이네요.
다음부턴 format에 신경써 보겠습니다. 저도 업보트/맞팔 완료 입니다.! 즐거운 한 주 되세요.

그런데..태극기 문양과 비슷한 위의 그림은 무엇인지 궁금합니다.

Congratulations @jeaimetu! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of posts published
Award for the number of comments received
Award for the number of comments
You published a post every day of the week

Click on any badge to view your own Board of Honor on SteemitBoard.

To support your work, I also upvoted your post!
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

Thanks. This is my honor. I also upvoted your comment.

이런건 kr-dev 에도 올리던데요... ^^

감사합니다. kr-dev는 처음 들었는데요, 오늘 한번 둘러보도록 하겠습니다.
@kdj 님 캐릭터가 어디선가 게임에서 본 것 같은데 잘 기억이 나질 않습니다. 아침에 라디오를 들으니 이런 현상을 "설단"현상 이라고 한다고 하더라구요..무언가 기억이 나는데 혀끝에서만 맴도는 현상이요.
즐거운 한 주 되세요!

진행과정 또 보게되니 반갑네요~ ㅎㅎ 응원합니다

감사합니다. 꾸벅.

재미있는 프로젝트는 홍보가 제 맛입니다.

@홍보해

우앗 감사합니다. 그런데 "홍보해"는 봇이 사용하는 키워드인가요? 스알못인 제게는 신선한 충격입니다.

@asbear 님이 돌리고 계신 @krguidedog 봇이라고 생각하시면 됩니다. kr 태그 사용에 대해 한정하여, kr 태그 달린 글에 대해서 스팸을 방지를 하고, 스팸 방지에 기여한 사람들에게 포인트를 부여하여 여러 명령어를 사용할 수 있도록 지원하고 있습니다. (물론 어뷰징 이슈는 꾸준히 발생하고 있습니다만...)

어디선가 본 적이 있습니다. 검색해 보니 초기 개발 기획글도 나오네요. 멋진 프로젝트입니다. 제가 생각한 것과는 조금 다르지만요. 전 외국인에 대한 스팸이 아니라 무언가 한국 사람들에게 steem 사용 가이드를 주는 것이라고 이름을 보고 떠올렸었거든요.

오후 잘 보내세요!

@jeaimetu님 안녕하세요. 여름이 입니다. @qrwerq님이 이 글을 너무 좋아하셔서, 저에게 홍보를 부탁 하셨습니다. 이 글은 @krguidedog에 의하여 리스팀 되었으며, 가이드독 서포터들로부터 보팅을 받으셨습니다. 축하드립니다!

우앗..융단 폭격 감사합니다. 정말 덕분에 기분 좋은 하루가 될 것 같습니다. @qrwerq 님께도 감사드립니다!

무언가 빼먹었다 싶었더니, permalink가 이렇게 되어 버렸네요. "5f31hq". OMG. 제가 이렇게 글을 썼음에도 불구하구요..
https://steemit.com/busy/@jeaimetu/permalink

반갑습니다! 혹시 코스모스에 관심은 없으신가요!?

감사합니다. 팔로우하고 업보트했습니다.

코스모스면 작년에 ICO한 blockchain말씀하시는 건지요? 아니면
타로의 종류중에 하나 인가요? 조금 더 자세히 말씀해 주시면 감사하겠습니다.

아이고 넵 작년에 ICO 한 블럭체인입니다 ㅎㅎhttps://github.com/cosmos
텐더민트 엔진을 기반으로 만들어지는 블럭체인입니다.

안녕하세요. 한 번 들어보기만 했습니다.

잠시 github에 가 보니..
sdk는 GO로 되어 있고, UI는 node.js 기반으로 vue를 사용하고 있는것 같습니다.

구체적인 commit들은 아직 못 보았구요,

넵 좋은 프로젝트라 소개한번 드렸습니다 ㅎㅎ

지인들에게도 이야기해 보겠습니다. 전 tech.인데 지인중엔 business쪽도 있어서요.
일요일 마무리 잘 하시고, 좋은 한 주 되세요.

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by jeaimetu from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

Thanks. This is really awesome project.

Sorry. There is little bug of my program to extract voter list. Please understand absence of your id. Thanks.