하이브와 굳바이를 해보자!! 웹을 통해 누구나 쉽게 하이브에 올라간 글을 수정해보자!!

안녕하세요.

굳헬로 @goodhello 입니다.

어제 하이브와 작별인사를 하기 위해, 하이브에 올려진 모든 포스트를 수정하는 코드를 작성해 보았는데요.

하이브와 굳바이를 해보자!! 하이브에 올라간 글 수정!! 하지만...

하지만.. 파이썬 코드를 돌리려면 파이썬 개발 환경을 셋팅해야 하고, 이래저래 할일이 필요하다 보니..

오늘은 개발환경 셋팅하지 않고도 바로 하이브와 작별인사를 할 수 있도록 모든 포스트를 수정하는 방법을 알아보겠습니다.

그리고 어제 만든 코드를 업그레이드 해서 조금 더 작동하기 쉽게 만들어 보았습니다.

먼저 개발환경을 셋팅 하지 않고도 파이썬 코드를 실행할 수 있는
https://repl.it/ 에 접속하셔서

https://repl.it/

start coding을 실행 해 줍니다.

그리고 이 화면에서 Python을 선택해 줍니다.

이제 Create Repl 을 눌러주시면 파이썬 코드를 입력하고 실행할 수 있게 될 것입니다.

import time
from hive import Hive
import json

client = Hive(keys=["포스팅 키"]) 

post_author = "아이디"

query = {
  "tag": post_author,
  "limit": 10,
  "start_author": post_author,  
}

index = 1

new_title = "byebye"
new_body = "![image.png](https://files.peakd.com/file/peakd-hive/goodhello.spt/Xz1amrCv-image.png)"

while True : 
    mypost = client.get_discussions_by_blog(query)
    for p in mypost :
        print("%d : %s - %s" % (index, p["author"], p["permlink"]))        
        index = index + 1
        
        
        if p["title"] == new_title :
            print("pass")
        else : 
            details = client.get_content(post_author, p["permlink"])
            json_metadata = details['json_metadata']
            
            json_metadata = json.loads(json_metadata)
            tags = json_metadata["tags"][0]            
            json_metadata = json.dumps(json_metadata)            

            client.commit.post(title=new_title, body=new_body, author=details['author'], permlink=details['permlink'], tags = tags,         json_metadata=details['json_metadata'], reply_identifier=(details['parent_author'] + '/' + details['parent_permlink']))
            print("edited")
            time.sleep(5)

    if len(mypost) < 11 :
        break
    query = {
        "tag": post_author,
        "limit": 10,
        "start_author": post_author,
        "start_permlink": p["permlink"]
    }

client = Hive(keys=["포스팅 키"])에 포스팅 키를 넣어주시고, post_author = "아이디" 에 아이디를 넣어 주시면 되겠습니다.

그리고 new_title = "byebye"에는 포스트 제목을

new_body = "![image.png](https://files.peakd.com/file/peakd-hive/goodhello.spt/Xz1amrCv-image.png)" 에는 포스팅 내용을 넣으시면 되는데... 저는 다음 이미지를 넣었답니다.

그런데 바로 실행하시면 에러가 뜰것입니다. 이유는 파이썬 하이브 패키지를 설치않았기 때문인데요.

좌측의 버튼중에 Packages 버튼을 눌러서 파이썬 하이브 패키지를 설치해 보겠습니다.

search for a package 란에 다음과 같이

hivepy 를 입력하면 파이썬 하이브 패키지가 나오게 되는데

오른쪽은 + 버튼을 눌러주면 자동으로 파이썬 하이브 패키지가 설치되게 됩니다.

설치하는데 시간이 걸리니 조금 기다려 주시고...

이제 상단의 run 버튼을 눌러 코드를 실행하면

위와 같이 코드가 실행되면서 포스트가 자동으로 수정되게 됩니다.

그런데 가끔 RPCError 가 뜨면서 작동이 멈추기도 하는데... 하이브가 삐리해서 뜨는 거니 걱정하지 마시고 다시 run 버튼을 눌러서 실행해주면 수정된 포스트는 건너뛰고 이어서 수정 작업을 계속 하게 됩니다.

그러면 하이브와 바이바이 작업 끝!!!!

마지막으로 하나 추가하자면...

위의 작업이 귀찮거나 어려우신 분들은....

https://repl.it/repls/ElasticInbornComputergames#main.py

위의 링크로 들어가셔서 본인의 포스팅키와 아이디를 넣고 바로 'run'을 실행하시면 되겠습니다.

그럼 모두 하이브와 작별인사 잘 하시길 바라며~

오늘 하루도 행복하세요~

Sort:  

수고 많으셨네요. 하이브에 글 안 올린 입장에선 관계 없는거죠?^^

하이브가 생기기 전에 스팀잇에 쓰셨던 모든 글들이 하이브에 복사되어 있습니다. 하이브에 따로 올리지 않으셨더라도 글이 있을거예요.

@upvu voted. voting percent : 10.32 %, delegate sp : 9050, token amount : 1000, total sp of upvu : 1607604

@goodhello transfered 30 KRWP to @krwp.burn. voting percent : 91.63%, voting power : 80.84%, steem power : 1834493.79, STU KRW : 1200.
@goodhello staking status : 8325 KRWP
@goodhello limit for KRWP voting service : 24.975 KRWP (rate : 0.003)
What you sent : 30 KRWP
Refund balance : 5.024 KRWP [44748738 - e04a2b3fe0c285fb9facbf0476aca7a782b906f1]

저는 이놈들과 끝까지 싸워보겠습니다! 다운보팅 언제까지 하는지...ㅋㅋㅋ

ㅎㅎㅎㅎ 다운보팅 하는 손꾸락을 그냥 확!!!

손꾸락 확~ 부러뜨려 주세욥~ ㅋㅋㅋ

와 대박 감사 합니다~~

최근거 부터 차근차근 수정이 되네요. 빨대로 뽑아 먹을건 먹고 한달에 한번씩 밀기 해야 겠습니다.굿입니다.

query = {
  "tag": post_author,
  "limit": 10,
  "start_author": post_author,  
}

위의 query에

query = {
        "tag": post_author,
        "limit": 10,
        "start_author": post_author,
        "start_permlink": "포스팅 permlink"
    }

수정하고 싶은 최근 포스팅의 permlinkquery"start_permlink" : "포스팅 permlink" 추가해 주시면 해당 포스팅부터 수정이 시작됩니다.

skymin님이 goodhello님의 이 포스팅에 따봉(5 SCT)을 하였습니다.

중간에 리스팀 되어진 포스팅이 있으면 수정이 안되고 멈춰 버리네요

앗.. 그건 포스트 저자 검사로 처리할 수 있을 것 같은데...

잠시만요... 처리하고 새 링크 올리도록 할께요..

if p["title"] == new_title :
    print("pass")

이미 수정된 글인지 검사하는 구문을

if p["title"] == new_title or p["author"] != post_author:
    print("pass")

위와 같이 저자 검사도 같이 하도록 코드를 넣어서 수정해서 사용하시면 될 것 같아요.

대단합니다. 엄지 척

감사합니다~ ㅎㅎ

즐몬하세요 ^^

헬로형님
스팀과하이브에동시써지게해주는건없나요