[node.js 초급코드2] 내 포스팅 링크 정리 Script

in #kr-dev2 years ago

드뎌 2번째 코딩 포스팅입니다. ㅎㅎ
첫번째 초급코드를 성공(?)하고, 어떤걸해볼까 생각하다마 그마나 할만하겠다 싶은 주제를 잡아본 겁니다.

나의 muksteem Link 리포트

먼저 시나리오를 구상해보면,
1. 내 포스팅을 읽어온다.
2. 'muksteem' Tag 를 걸러낸다.
3. Payout 전후로 Link 를 구분한다.
4. 링포팅할 형태로 Link 를 구성해서 뿌려준다.
[미달성]5. 리포트 포스팅을 한다.
5번째는 아무래도 그냥 나열만하는 포스팅은 성의도 없을꺼 같고 보는 사람도 그닥 기분 좋진 않을꺼 같아서, 추후에 완성하면 포스팅해보겠습니다. ㅎㅎ

이제 코드로 들어가보면,

  1. 먼저 선언부 코드를 만들었습니다.(나중에 아이디랑 tag 만 변경하면 다른 리포팅도 가능하도록)

    이 코드에서 미리 설명드릴 내용 중 하나는, currDay의 선언인데요.
    이 값은 나중에 Payout 여부를 나눌 때, 날짜 데이타(Date) 변수에서 7일 차이를 계산하기 위해서, 1 Day 를 milliseconds 단위로 치환한 겁니다.

  2. 포스팅을 읽어오기 위한 Steem API 를 호출합니다.
    여기서는 2017-01-01 이후, 100 개 글을 읽어오도록 했는데, 이 부분도 사실은 hard coding 하면 안되는건데 ㅎ 아직 초보라 귀엽게 봐주세요 ㅎㅎ;;

  3. 읽어온 포스팅 JSON 데이터에서 태그로 접근하는 코드입니다.
    포스팅 수만큼 for loop 를 돌면서, 각 포스팅에 들어간 태그 값을 읽어와야되는데요.
    여기서 한가지 배우게된 내용이 10줄 코드입니다.
    포스팅 데이터가 JSON 으로 넘어왔지만, 포스팅 안에 포함된 태그값은 JSON 형태로된 String 이라서 바로 접근이 안됩니다.
    아래 코드처럼 JSON 형태인 String 을 JSON.parse 로 진짜 JSON 포맷으로 변환해야 내부 값 접근이 가능합니다.

  4. 이제 'muksteem' 태그만 걸러내고, Payout 전후로 나누는 코드가 들어갑니다.
    JSON 포맷으로 변환한 tags 가 JSON Array 이기에 역시 for loop 로 'muksteem' 태그를 찾았고요.
    Payout 전후로 구분하려면 포스팅 JSON 에서 created 값을 가져와서 현재 시간과 비교를 해야되는데요.
    created 값도 String 포맷이라 Date 포맷으로 변환하고, 현재 시간과의 차이를 계산하면 millisecond 값으로 나오기 때문에 위에서 계산해둔 currDay 값으로 나눠주면 날짜 값이 나오게되고, 그 값이 6보다 크면 payout 된거니 구분해서 저장합니다.

  5. 구분한 포스팅 데이터를 원하는 Link 형태로 저장합니다.(별도 String 으로 옮겨놓음.)
    Link 데이터 형태가 좀 복잡한데요;; 타이틀만 노출하고, 'a' 태그를 이용해서 링크했습니다.
    포스팅 데이터에서 Link 값을 구성하는게 좀 까다로웠습니다. ㅎㅎ;

  6. 마지막으로 위에서 구분한 Payout 전/후 Link 데이터를 화면에 뿌려주는 부분인데요.
    node.js 를 좀 공부해보셨다면 아시다시피 비동기 함수라서 끝나는 시점에 뿌려줘야 제대로된 데이터가 나오게 됩니다.
    그래서 포스팅 데이터 Array for loop 안에서 마지막 loop 일 때, 화면에 뿌리도록 코딩한 내용입니다.

위 코드를 돌려서 생성된 데이터 입니다.
데이터를 그대로 붙인거라 Link 정보는 'a' 태그로 숨겨지고, 타이틀에 링크가 생성된겁니다. ㅎㅎ

Payout 이전 먹스팀 포스팅 Link

[먹스팀] 딩딤 1968(신사동 가로수길)
카페라떼 제품 변경의 아쉬움

Payout 이후 먹스팀 포스팅 Link

[먹스팀] 한남동 오마일
[먹스팀] 달달한 커피를 좋아하시는 분들께 추천 메뉴
[먹스팀] 양재동 영동족발
[먹스팀] 역삼동 돝고기506
[먹스팀] 신사동 한추
[먹스팀] 삼성동 크라이치즈버거
[먹스팀] 속초 유진게찜
[먹스팀] 은마상가 호박죽
[먹스팀] 금돼지식당
[먹스팀] 신사시장 떡볶이
[먹스팀] 평양면옥(논현점)
[먹스팀] 새벽집(청담)
[먹스팀] 청담 오아시스
[먹스팀] 청담 루쏘(더치큐브라떼)

다른 분들 보면 코드만 보기좋게, 복사도 가능하게 작성하시는 분들도 계시던데, 제가 아직 방법을 몰라서 그나마 보시기 좋도록 코드를 나눠서 설명해봤습니다.
node.js 를 배우시는 분들께 도움이 되길바라며... ㅎ


이전 포스팅
[node.js 초급코드] 내 포스팅 댓글에 달린 주사위 값 조회
Sort:  

이벤트 참여 감사합니다~^^
보팅 하구 가용ㅎㅎ

감사합니다~:)

안녕하세요^^ 로이스마켓 포스팅 보팅 지원 마켓이 종료 되었습니다.
이용해주셔서 감사드립니다!
이용에 불편사항이나 개선점 의견있으시면
https://steemit.com/roys-market/@roys-market/roys-market-46-60-2steem-or-2sbd
여기에 댓글 부탁드립니다^^

능력자시네요^^
전 읽어도 무슨 말인지.ㅎㅎㅎㅎ

능력자 천국 스팀잇~~

능력자라뇨 >< 잘하시는 분들이 보시면 완전 허접이 코드일껍니다 ㅎㅎ;;;
감사합니다~:)

코딩교육 파이팅 입니다!!!

카일의 보팅지원이벤트 6차수 4일차, 보팅 남기고 갑니다.

감사합니다~:)