굳헬로의 스팀 프로그램 일기!! 서른세번째 #33 굳헬로가 만든 스팀코인판 조합 자동 클레임과 자동 분배 프로그램 원피스 조합에도 사용 개시!!

in #sct5 years ago

steem.jpg

새로운 한주가 시작되었네요.

푹푹 찌는 날씨가... 정말 가을이 기다려 지는데... 이 놈의 여름은 언제 끝날지...

그래도 남은 여름 힘내서 견뎌내야겠죠.

오늘도 힘내서 프로그램 일기 남겨봅니다.


제가 만든 유니온 조합의 분배 프로그램이 잘 돌아가고 있는 것 같습니다.

몇가지 기능을 업그레이드 하려던 때에 원피스 조합에서도 제가 만든 분배 프로그램을 이용하겠다는 요청이 들어와서 오늘은 그 작업을 해보았습니다.

복습하는 차원에서 주요 코드를 간단히 살펴보도록 하겠습니다.

def claim_token(username, pwd, tokenname) :
    nodes = NodeList()
    nodes.update_nodes()
    stm = Steem(nodes.get_nodes())    
    
    try:
        stm.unlock(pwd)
    except:
        stm = Steem(node=nodes.get_nodes(), keys=[pwd])        
    json_data = []
    json_data.append({"symbol": tokenname})
    stm.custom_json("scot_claim_token", json_data, required_posting_auths=[username])

계정명과 포스팅키, 토큰명으로 claim_token() 함수를 호출하면 토큰이 클레임 되게 됩니다.

def team1p_delegate_view(username, tokenname) :    
    db = pymysql.connect(host=host, port=3306, user=user, passwd=passwd, db=db_name, charset='utf8')
    delegate_sum = 0
    dict = {}

    try:
        cursor = db.cursor(pymysql.cursors.DictCursor)
        sql = "SELECT * FROM delegate WHERE to_ ='" + username + "' && symbol ='" + tokenname + "'"
        cursor.execute(sql)
        result = cursor.fetchall()
        for row_data in result:    
            delegate_sum = delegate_sum + row_data['quantity']            
            sender = row_data['sender']                

            if sender in dict :
                dict[sender] = float(dict[sender]) + float(row_data['quantity'])
            else :
                dict[sender] = float(row_data['quantity'])        
       
    finally:
        db.close()

    sdict = sorted(dict.items(), key=operator.itemgetter(1))

    for s in reversed(sdict) :
        dsum = dsum + s[1]
        ratio = (float(s[1]) / delegate_sum) * 100
        divide = float(balance) / 100 * ratio
        ratio = round((float(s[1]) / (delegate_sum) * 100),2)
        amount = 0

        sender = username
        active_key = "액티브 키" 
        receiver = s[0]            
        token = tokenname
        getday = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        token_memo = ""

        amount = int(divide)
        token_memo = getday + " " + s[0] + " 리워드 배분 : " + str(int(divide))

        token_transfer(sender, active_key, receiver, amount, token, token_memo)

def token_transfer(sender, active_key, receiver, amount, token, token_memo):
    stm = Steem(keys=[active_key])
    wallet = Wallet(sender, steem_instance=stm)    

    wallet.transfer(receiver,amount,token, memo=token_memo)    

데이터 베이스에 저장된 임대내역을 가지고 와서 임대량이 높은 순서대로 소팅을 시켜주고 지분율을 계산하여 token_transfer() 함수를 호출하여 토큰을 전송하게 됩니다.

이제 이 프로그램을 스케쥴러에 등록 했고, 오늘 밤부터 가동하게 되겠네요.

부디 별탈없이 돌아가기를....

그리고 이번에 새로운 것을 하나 넣어 봤는데요.

토큰 클레임 하는 내역과 전송하는 내역을 여러사람이 받아볼 수 있도록 텔레그램 봇을 그룹봇으로 받도록 코드를 수정하였습니다.

아직 완전히 동작을 테스트 완료 한건 아니지만 그룹봇을 이용해 다양하게 활용을 할 수 있을것 같습니다.

단체로 스팀에서 필요한 데이터를 받을때 사용하면 좋을 것 같습니다.

예를 들어 스팀코인판 공지사항이라던지, 이벤트라던지... 그런 정보들을 받아보는 텔레그램 그룹을 만들어 봐야겠어요.

그럼 여러분들 오늘 하루도 행복하시구요~

다음 시간에 또 새로운걸 공부해서 찾아오도록 하겠습니다.


굳헬로의 스팀 프로그램 일기!! 시리즈

#1 굳헬로의 스팀 프로그램 일기!! 대망의 시작 #1 Python 프로그램 설치 && steemengine 파이썬 api 설치 && 간단한 steemengine 예제

#2 굳헬로의 스팀 프로그램 일기!! 그 두번째 #2 비주얼 스튜디오 코드 프로그램 설치 && 비주얼 스튜디오 코드를 사용하여 파이썬 다루기 && 간단한 steemengine 예제

#3 굳헬로의 스팀 프로그램 일기!! 세번째 #3 스팀엔진 토큰의 정보를 가져오는 findOne() && 누군가의 토큰 사용 내역을 가져오는 get_history() && JSON 데이터 출력

#4 굳헬로의 스팀 프로그램 일기!! 네번째 #4 steemengine Token 클래스 && Token.get_holder() && Token.get_market_info() && Token.get_buy_book() && Token.get_sell_book()

#5 굳헬로의 스팀 프로그램 일기!! 다섯번째 #5 스팀엔진 블록을 뒤져서 원하는 정보를 찾아보자!! 스팀엔진 마켓 거래 내역을 뽑아내는 예제

#6 굳헬로의 스팀 프로그램 일기!! 여섯번째 #6 파이썬으로 스팀엔진 토큰들을 클레임 해보자.

#7 굳헬로의 스팀 프로그램 일기!! 일곱번째 #7 프로그램 일기도 어느덧 1주일!! 드디어 첫 실전!! 무한 반복 작업 수행하기!! 이제 직접 클레임 하는 손맛은 잊자. 무한 반복 자동 클레임!!

#8 굳헬로의 스팀 프로그램 일기!! 여덟번째 #8 텔레그램 봇을 이용해 알림을 받아보자!! && 무한 반복 자동 클레임의 정보를 텔레그램으로 받아보기!!

#9 굳헬로의 스팀 프로그램 일기!! 아홉번째 #9 무한 반복 자동 클레임 업그레이드!! && 토큰 잔고 확인 && 토큰 전송과 토큰 전송 내역을 텔레그램으로 받아보기!!

#10 굳헬로의 스팀 프로그램 일기!! 열번째 #10 토큰 전송내역을 검사하고, 토큰을 전송 받으면 텔레그램으로 알림을 받아보기!!

#11 굳헬로의 스팀 프로그램 일기!! 열한번째 #11 스팀엔진 토큰 임대내역 추적. 쉽지 않았던 머나먼 여정 (1/2)

#12 굳헬로의 스팀 프로그램 일기!! 열두번째 #12 스팀엔진 토큰 임대내역 추적. 쉽지 않았던 머나먼 여정 (2/2) 스팀엔진 토큰 임대내역 추적 완료!!

#13 굳헬로의 스팀 프로그램 일기!! 열세번째 #13 웹 프로그래밍의 시작!! 파이썬을 이용하여 정보를 MySQL 데이터 베이스에 저장해보기!!

#14 굳헬로의 스팀 프로그램 일기!! 열네번째 #14 파이썬을 이용하여 데이터베이스로부터 정보를 가져오기 && 스팀코인판 3대풀 임대내역 데이터베이스 작업 완료!!

#15 굳헬로의 스팀 프로그램 일기!! 열다섯번째 #15 웹 프로그래밍을 이용하여 스팀코인판 3대조합의 임대 내역을 웹으로 확인해보자 !!

#16 굳헬로의 스팀 프로그램 일기!! 열여섯번째 #16 스팀엔진 최신 블록을 검사하여 필요한 정보를 데이터베이스에 저장하기!! 3대 조합의 임대내역을 최신으로 저장하기!!

#17 굳헬로의 스팀 프로그램 일기!! 열일곱번째 #17 조합들이 필요한 기능 드디어 완성!! 자동 클레임과 자동 분배 기능!!

#18 굳헬로의 스팀 프로그램 일기!! 열여덟번째 #18 스팀코인판 3대 조합의 임대내역과 실시간 예상 분배 금액을 웹으로 확인해보자!!

#19 굳헬로의 스팀 프로그램 일기!! 열아홉번째 #19 어제 만든 프로그램 업그레이드!! 개별 상세내역보기 기능 추가!!

#20 굳헬로의 스팀 프로그램 일기!! 어느덧 스물번째 #20 시행착오... 그리고 시련... 하지만 원사마님 덕분으로 엄청난 레벨업!! 감사합니다. 더욱 발전하겠습니다.

#21 굳헬로의 스팀 프로그램 일기!! 스물한번째 #21 레벨업을 했지만 또 다시 찾아온 시련!! 프로그램 결과와 블록체인에 기록된 결과가 다르다!! 어떻게 해야 할까...

#22 굳헬로의 스팀 프로그램 일기!! 스물두번째 #22 오늘부터 새로운 도전!! 자동 보팅 만들기!! 그 첫번째 스팀코인판의 소각글에 자동보팅을 해보자!! 첫번째 시간 (1/N)

#23 굳헬로의 스팀 프로그램 일기!! 스물세번째 #23 스팀코인판의 소각글의 정보를 가지고 와서 자동보팅을 해보자!! 그 두번째 시간 (2/N)

#24 굳헬로의 스팀 프로그램 일기!! 스물네번째 #24 스팀코인판 3대조합의 임대내역을 웹으로 확인해보자!! 업그레이드!!

#25 굳헬로의 스팀 프로그램 일기!! 스물다섯번째 #25 스팀코인판 3대조합의 임대내역을 웹으로 확인해보자!! 업그레이드 2!! 그리고 개발 예정 사항 공개!!

#26 굳헬로의 스팀 프로그램 일기!! 스물여섯번째 #26 드디어 첫 실전 가동 준비중... 스팀코인판 유니온 조합의 수익 자동분배 작업 완료중...

#27 굳헬로의 스팀 프로그램 일기!! 스물일곱번째 #27 스팀코인판 유니온 조합 첫 자동 분배 결과!! 그리고 보완!!

#28 굳헬로의 스팀 프로그램 일기!! 스물여덟번째 #28 스팀코인판 유니온 조합 자동 분배 프로그램의 결과를 웹으로 확인해 보자!!

#29 굳헬로의 스팀 프로그램 일기!! 스물아홉번째 #29 스팀코인판 유니온 조합 자동 분배 상황을 텔레그램으로 확인!! 임내 확인 페이지 정렬 기능 추가!!

#30 굳헬로의 스팀 프로그램 일기!! 서른번째 #30 스팀코인판 조합의 임대량 페이지 정렬 기능 업그레이드!! 그리고 임대량 파이 차트 완성!!

#31 굳헬로의 스팀 프로그램 일기!! 서른한번째 #31 스팀코인판 조합의 하루하루 임대량 변화를 차트로 확인해보자!!

#32 굳헬로의 스팀 프로그램 일기!! 서른두번째 #32 트리플A를 이용하면서 그동안 번거로웠던 클레임 스테이킹 전송 작업 이젠 안녕!! 자동으로 AAA를 전송하고 클레임하고 스테이킹을 해보자!!

Sort:  

ukk님이 goodhello님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
ukk님의 원피스팀 수익배분 자동화

...까지 유지할 수 있었던 것은
팀원들에게 한 약속을 지키기 위해서였던 것 같습니다.


그러던 중 goodhello님의 자동배분 소식을 듣게 되었고,
생기자마자 사용하고 싶었지만 공적인 계정이기때문에 함부로 사용할 수가 없...

벌써 33회군요. 언제 따라하나. ㅠㅠ


sct천사 보팅이벤트 많이들 참여하세요 ^^
https://www.steemcoinpan.com/sct/@sct1004/sct-8-19

천천히 따라 해보시면 금방 따라올거에요~

이 놈의 여름은 언제 끝날지...

이제 얼마 안남았어요^^ 조금만 힘내세요~ ㅎㅎ

넵!! 파이팅입니다~

굳헬로님 요즘 진짜 열심히 하는거 같네요 ^^


sct천사 보팅이벤트 많이들 참여하세요 ^^
https://www.steemcoinpan.com/sct/@sct1004/sct-8-19

하하.. 감사합니다~

프로그램 짜는 일도 술 마시는 일만큼 재미나네요~

굿헬로님 조만간 토큰 하나 발행할 수도 있겠습니다.ㅎㅎㅎ

ㅎㅎㅎ 버스 토큰 하나 발행 해볼까요?? ㅎㅎㅎ

Thank you for your continued support towards JJM. For each 1000 JJM you are holding, you can get an additional 1% of upvote. 10,000JJM would give you a 11% daily voting from the 700K SP virus707 account.

Hi @goodhello!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 3.983 which ranks you at #4068 across all Steem accounts.
Your rank has not changed in the last three days.

In our last Algorithmic Curation Round, consisting of 156 contributions, your post is ranked at #71.

Evaluation of your UA score:
  • You're on the right track, try to gather more followers.
  • The readers like your work!
  • Good user engagement!

Feel free to join our @steem-ua Discord server