[스팀몬스터] 파이썬으로 카드 매도 주문하기(1/2)

Words
293
Reading
2 min
Listen
Play
8y

스팀몬스터 팩도 사고 시장에서 카드도 사다보니 수량이 많아졌습니다. 저는 주로 peakmonster.kr에서 매도 주문을 내는데, 최대 25장까지 한번에 매도를 할 수 있습니다. 만약 200장을 매도할려고 하면.... 25장 매도 주문을 8번 반복해서 내어야 합니다. 만약 1000장을 매도 주문해야 한다면.. 날 셈니다.

그래서 이걸 파이썬으로 구현해 보고 싶어서 방법을 찾아보았습니다.

역시나.. 아주 좋은 소스가 github에 있습니다.
https://github.com/rondras/Steem-Monsters-Trading-Bot

다운 받아서 소스 분석 시작합니다.

카드별 정보

카드별로 uid가 존재하고 해당 uid를 보면 세부적인 정보가 있습니다. 그 내용은 아래와 같습니다.

본인이 보유하고 있는 카드 리스트

현재 본인이 보유하고 있는 카드 리스트는 아래와 같은 방식으로 구할 수 있습니다.

    r = requests.get('https://steemmonsters.com/cards/collection/' +str(user))
    data = r.json()
    for card in data["cards"]:
        monsterid = card["card_detail_id"]
        uid = card["uid"]
        xp = card["xp"]
        buy_price = card["buy_price"]
        market_id = card["market_id"]
        edition = card["edition"]
        gold = card["gold"]
        print("monster id :", monsterid, " XP :", xp, " ed :", edition, " gold :", gold)
       

팔아야할 카드를 가져오자

앞에 나오는 코드를 기반으로 하여 팔고자 하는 종류의 카드 리스트를 받는 함수입니다. 이때 입력하는 정보는 카드 ID와 edition(알파/베타/킥) 그리고 gold 여부입니다.

def get_card_list_need_to_sell(card_id, ed, gd) :
    r = requests.get('https://steemmonsters.com/cards/collection/' +str(user))
    data = r.json()
    targets = []
    count = 1
    for card in data["cards"]:
        monsterid = card["card_detail_id"]
        xp = card["xp"]
        market_id = card["market_id"]
        edition = card["edition"]
        gold = card["gold"]
        # id 같고, xp = 0이고, 아직 market에 나오지 않았고, edition, gold 같으면
        if ( monsterid == card_id ) :
            uid = card["uid"]
            count+=1
            if( xp == 0 and edition == ed and gold == gd and market_id == None) :
                cards = [uid, 0]
                targets.append(cards)

    print ("target cnt : ", len(targets))
    return (targets)

오늘은 팔아야할 카드를 얻는 것 까지 정리해 봅니다. 다음에는 팔아야할 카드를 custom json으로 steem 블럭체인에 올리는 방법에 대하여 알아보겠습니다.

이렇게 파이썬으로 매도 주문을 낼 수 있게 되니, 매매하기가 한결 편해졌네요.

500팩 사러 가즈아!!

[스팀몬스터] 파이썬으로 카드 매도 주문하기(1/2) | Ecency