You are viewing a single comment's thread from:

RE: [코딩몰라여] steem-python으로 포스트와 댓글 실시간으로 읽어오기 기초 ~속도개선~ 편

in #kr-dev3 years ago (edited)

새글이 올라왔다는 알람이 와서 달려왔습니다. !!!!
요새 제가 고민하고 있는걸 정확히 찍어주셨네요
그런데...............
저 함수를 대체할 수 있다고 해주셨는데..
어떻게 써야 할지가 감이 안 잡힙니다.
본문 처음 심플한 봇에 적용을 한다면 어떻게 해야 할까요?
파이썬 생초보라... 감히 부탁 드립니다. ㅠㅠ
예시 py 하나 올려주시면 안될까요?

Sort:  

기존에 올린 예제에서 코멘트를 추출하는 부분이 종속적이었던 부분을 해소한 v2 예제를 업로드하였습니다.

본문 처음의 심플한 봇은 v2에서 filter_reply 함수 내에 and comment['op'][1]['parent_author'] != '' 조건을 제거해주세요. 그리고 main의 댓글 처리하는 봇의 조건을 그대로 붙여주시면 됩니다. 영화 시간 다 되가서 급하게 달고 갑니다. 으아앙ㅇ.... 미안해요! 나중에 다시 확인할게요!

V2 예제를 돌리면 아래와 같은 오래 메시지가 나옵니다.여기 이미지가 작아서 잘 보일려나 모르겠습니다.1.JPG

오래 기다리셨습니다. Google Compute Engine에서 작동시키기 위한 버전을 GitHub에 다시 추가했습니다. 두 가지 이슈가 있었는데,

하나는 올려주신 내용대로 urllib의 문제가 있었습니다. 검색해보니 GitHub에서 관련 내용 을 발견할 수 있었고 반영했습니다.

또 다른 문제는 multiprocess 부분에서 블록을 읽어서 가져온 메시지가 너무 길다며 오류가 났기 때문에 multiprocess 부분을 빼버렸습니다.

Gevent를 통해 블록을 가져오는 것과 Post() 변환 횟수만 없어도 충분한 속도가 보장이 되는 것을 확인하였기 때문에 그대로 사용하셔도 된다고 생각합니다.

와우 팽팽 돌아갑니다.

실행결과
{'trx_id': 'a6f8dc52a02d001c7320e1a4bfdb213f0b1ec362', 'block': 21896692, 'trx_in_block': 32, 'op_in_trx': 0, 'virtual_op': 0, 'timestamp': '2018-04-26T05:53:09', 'op': ['comment', {'parent_author': 'stella12', 'parent_permlink': '6av
lbb', 'author': 'xinnong', 'permlink': 're-stella12-6avlbb-20180426t055309752z', 'title': '', 'body': '그저께 블록체인 미디어 관련 강의에서 유니오 소개 듣고왔는데\n7일 보상이 무제한이 된다는 점이 가장 흥미롭더라고요 ㅎㅎ', 'json_metad
ata': '{"tags":["kr"],"app":"steemit/0.1"}'}]}

쭉쭉 나옵니다.
여기서 필요한 정보만 받아오고 싶습니다.
print(post["body"]) 처럼
print(reply["body"]) 이렇게 쓰면 에러가 자꾸 나오는데요..

print(post.export()['body']) 아니면 .. 처럼
print(export.export()['body']) 이렇게 써도 에러가 나오네요 ㅠㅠ

다 온거 같은데...

숟가락 까지 쥐게 해줬는데 먹여달라는 거 같은 느낌이네요
에휴... 궁금해서 죽어리겠습니다. ^^

print(reply[‘op’][1][‘body’]) 라고 쓰시면 나올거에요 :) 링크 타고 가셔서 get_account_history 구조를 그려둔거 한 번 보시면 원하는 데이터 뽑는 법을 이해하시는데 도움이 될거에요!

3.JPG
성공 했습니다. 그런데 문제가 있네요
한 10분 정도 돌고나면..
멈쳐버려요
4.JPG

조금더 고민해 봐야겠습니다.

노드를 api.steem.com으로 한 10분정도 켜두면 database lock 이러면서 에러 납니다.
그래서 노드를 바꿀려고 했죠
노드가 함수 안에도 있다는 걸 몰랐어요
두 군데를 모두 https://rpc.buildteam.io 로 바꾸고 나서
뻑 안납니다. !!!! 대박

댓글도 달고 싶은데..
post.reply를 여기서 쓰면 에러가 납니다. 이것도 해결 방법이 있을거 같은데 .. 시간내서 공부해 볼려구요

.reply 함수로 댓글을 달려면 포스트 객체로 변환해야합니다. 그럴 땐 permlink를 만들어서 Post 객체를 만드는게 좋겠죠.

while
try:

exception 

이거 쓰면 에러를 피해가려나 했는데..
계속 에러뜨고 멈쳐 있어요 ㅠ

@dailypro님이 만드시려는 것이 dailypro님 포스트에 @금손 이라는 댓글을 달면 댓글과 함께 보팅을 해주는 봇 맞죠? :)

네 그렇습니다.
댓글에 "@금손"을 부르면

  1. 내가 대댓글을 달고 <- 미해결
  2. 댓글에다간 보팅을 해주고 <-미해결
  3. 보팅봇한테는 송금하고 <-해결