새로운 한 주 월요일 잘 보내고 계신가요??
태풍의 피해는 없으신지요.
태풍이 지나고 나니 날씨도 시원하게 공기도 상쾌한게 기분좋은 월요일인 것 같습니다.
그럼 오늘도 프로그램 일기 남겨보겠습니다.
스팀몬스터에서 배틀을 하면 배틀 정보가 기록됩니다.
어제는 이 정보들을 보기 쉽게 하기 위해 파이썬 스팀몬스터 API를 이용하여 사용자의 배틀정보를 출력하는 코드를 짜보았습니다.
배틀 아이디 : 2e4ef9eba30f48bcf8d48b248c2bf418a963457c
배틀 룰셋 - 마나 캡 : 18 룰셋 : Healed Out|Taking Sides 인액티브 덱 : 없음 매치타입 : Ranked
team1 : angstgegner( 3622 )
소환사 : Lyanna Natura( 8 ) 몬스터 : Flesh Golem( 8 ) Earth Elemental( 8 ) Javelin Thrower( 8 )
team2 : angstgegner( 3912 )
소환사 : Lyanna Natura( 8 ) 몬스터 : Flesh Golem( 9 ) Earth Elemental( 8 ) Brownie( 6 ) Goblin Sorcerer( 10 ) Swamp Thing( 6 )
승리자 : goodhello
배틀 아이디 : e2de06245ef145e81392ac1ebca0235c462ba4db
배틀 룰셋 - 마나 캡 : 28 룰셋 : Weak Magic|Reverse Speed 인액티브 덱 : Gold,Black 매치타입 : Ranked
team1 : minhaz007( 3534 )
소환사 : Tyrus Paladium( 8 ) 몬스터 : Silvershield Paladin( 8 ) Silvershield Warrior( 10 ) Defender of Truth( 6 ) Peacebringer( 8 ) Prismatic Energy( 5 )
team2 : minhaz007( 3912 )
소환사 : Lyanna Natura( 8 ) 몬스터 : Flesh Golem( 9 ) Earth Elemental( 8 ) Wood Nymph( 10 ) Goblin Sorcerer( 10 ) Highland Archer( 10 ) Cyclops( 8 )
승리자 : goodhello
배틀 아이디 : 96ef274a2c232758de0f086c20366593133f0e73
배틀 룰셋 - 마나 캡 : 15 룰셋 : Standard 인액티브 덱 : Gold 매치타입 : Ranked
team1 : bubke( 4570 )
소환사 : Alric Stormbringer( 8 ) 몬스터 : Cocatrice( 8 ) Creeping Ooze( 10 ) Crustacean King( 10 ) Mermaid Healer( 6 ) Enchanted Pixie( 8 )
team2 : bubke( 3912 )
소환사 : Lyanna Natura( 8 ) 몬스터 : Flesh Golem( 9 ) Goblin Sorcerer( 10 ) Earth Elemental( 8 )
승리자 : bubke
그 결과 위와 같이 각 배틀마다 결과를 보기 쉽게 출력할 수 있었네요.
스팀몬스터 홈페이지에서는 이 정보를 확인하기 위해 일일이 배틀 하나하나 눌러서 룰셋과 덱을 확인해 보아야 하지만, 필요한 정보를 바로 확인할 수 있게 되니 상당히 유용하리리 생각됩니다.
그래서 오늘은 이 정보를 누구나 쉽게 열람할 수 있게 하기 위하여 웹 프로그램으로 만들어 보았습니다.
이번에는 파이썬 스팀몬스터 API를 사용하지 않고, 스팀몬스터에서 json 형식으로 제공하는 배틀정보 결과를 이용해서 php 웹 프로그램으로 만들었습니다.
$url = "https://steemmonsters.com/battle/history?player=".$_POST["userid"];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_RANGE, '0-100');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$content = curl_exec($ch);
curl_close($ch);
$json = json_decode($content);
알고 싶은 플레이어 정보를 https://steemmonsters.com/battle/history?player=
에 붙여서 json 형태로 배틀결과 정보를 얻어올 수 있습니다.
$url = "https://steemmonsters.com/cards/get_details";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_RANGE, '0-100');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$content = curl_exec($ch);
curl_close($ch);
$allcards = json_decode($content);
function get_card_name($allcard, $card_detail_id)
{
foreach($allcard as $card)
{
if($card->id == $card_detail_id)
{
return $card->name;
}
}
}
그리고 배틀정보에는 나오지 않는 카드 이름을 가지고 오기 위해 get_card_name()
함수도 하나 만들었습니다.
foreach($json->battles as $battle_info)
{
echo "<tr>";
echo "<td>";
echo "마나 캡 : ".$battle_info->mana_cap."<br>";
$ruleset = $battle_info->ruleset;
$ruleset = str_replace("|", "<br>", $ruleset);
echo "룰 셋 : ".$ruleset."<br>";
if ($battle_info->inactive == "")
{
$battle_info->inactive = "없음";
}
echo "인액티브 덱 : ".$battle_info->inactive."<br>";
echo "매치타입 : ".$battle_info->match_type."<br>";
echo "</td>";
$details = json_decode($battle_info->details);
echo "<td>";
echo "플레이어 : ".$details->team1->player."( ".$details->team1->rating." )<br>";
$team1_summoner = get_card_name($allcards, $details->team1->summoner->card_detail_id);
echo "소환사 : ".$team1_summoner."(".$details->team1->summoner->level.")<br>";
$index = 1;
foreach($details->team1->monsters as $monsters)
{
$team1_monsters = get_card_name($allcards, $monsters->card_detail_id);
echo "몬스터 $index : ".$team1_monsters. "(".$monsters->level.")<br>";
$index = $index + 1;
}
echo "</td>";
echo "<td>";
echo "플레이어 : ".$details->team2->player."( ".$details->team2->rating." )<br>";
$team2_summoner = get_card_name($allcards, $details->team2->summoner->card_detail_id);
echo "소환사 : ".$team2_summoner."(".$details->team2->summoner->level.")<br>";
$index = 1;
foreach($details->team2->monsters as $monsters)
{
$team2_monsters = get_card_name($allcards, $monsters->card_detail_id);
echo "몬스터 $index : ".$team2_monsters. "(".$monsters->level.")<br>";
$index = $index + 1;
}
echo "</td>";
echo "<td>";
echo $details->winner;
echo "</td>";
echo "<td>";
//https://splinterlands.io?p=battle&id=0a8833a183d15f073488e6ad3738f385ec02a232&ref=goodhello
echo "<a href='https://splinterlands.io?p=battle&id=".$battle_info->battle_queue_id_1."' target='_blank'>결과보기</a>";
echo "</td>";
echo "</tr>";
배틀 룰셋 정보와, 팀1, 팀2의 플레이어 이름과 점수, 그리고 소환사와 몬스터들을 출력하고, 승리자 명과 이 배틀의 전투를 감상할 수 있는 링크까지 넣어서 테이블을 완성시켰습니다.
http://heinz.wo.tc/sm/index.php#s3
위의 링크에서 배틀 정보 검색을 할 수 있으며..
제 아이디로 배틀 정보를 검색 결과
그럭저럭 보기 좋게 나오고 있네요.
이제 다음 목표는 이 배틀 정보를 이미지를 넣어서 만드는 것입니다.
아무래도 이미지로 배틀 정보를 확인할 수 있다면, 더욱 가독성이 좋을것 같네요.
그럼 다음시간에는 배틀 정보를 이미지로 확인할 수 있도록 열심히 연구해 보겠습니다.
오늘 하루도 파이팅 하시고, 이번 한주도 행복하세요.
굳헬로의 스팀 프로그램 일기!! 시리즈
#1 Python 프로그램 설치 && steemengine 파이썬 api 설치 && 간단한 steemengine 예제
#2 비주얼 스튜디오 코드 프로그램 설치 && 비주얼 스튜디오 코드를 사용하여 파이썬 다루기 && 간단한 steemengine 예제
#3 스팀엔진 토큰의 정보를 가져오는 findOne() && 누군가의 토큰 사용 내역을 가져오는 get_history() && JSON 데이터 출력
#5 스팀엔진 블록을 뒤져서 원하는 정보를 찾아보자!! 스팀엔진 마켓 거래 내역을 뽑아내는 예제
#7 드디어 첫 실전!! 무한 반복 작업 수행하기!! 이제 직접 클레임 하는 손맛은 잊자. 무한 반복 자동 클레임!!
#8 텔레그램 봇을 이용해 알림을 받아보자!! && 무한 반복 자동 클레임의 정보를 텔레그램으로 받아보기!!
#9 무한 반복 자동 클레임 업그레이드!! && 토큰 잔고 확인 && 토큰 전송과 토큰 전송 내역을 텔레그램으로 받아보기!!
#10 토큰 전송내역을 검사하고, 토큰을 전송 받으면 텔레그램으로 알림을 받아보기!!
#11 스팀엔진 토큰 임대내역 추적. 쉽지 않았던 머나먼 여정 (1/2)
#12 스팀엔진 토큰 임대내역 추적. 쉽지 않았던 머나먼 여정 (2/2) 스팀엔진 토큰 임대내역 추적 완료!!
#13 웹 프로그래밍의 시작!! 파이썬을 이용하여 정보를 MySQL 데이터 베이스에 저장해보기!!
#14 파이썬을 이용하여 데이터베이스로부터 정보를 가져오기 && 스팀코인판 3대풀 임대내역 데이터베이스 작업 완료!!
#15 웹 프로그래밍을 이용하여 스팀코인판 3대조합의 임대 내역을 웹으로 확인해보자 !!
#16 스팀엔진 최신 블록을 검사하여 필요한 정보를 데이터베이스에 저장하기!! 3대 조합의 임대내역을 최신으로 저장하기!!
#17 조합들이 필요한 기능 드디어 완성!! 자동 클레임과 자동 분배 기능!!
#18 스팀코인판 3대 조합의 임대내역과 실시간 예상 분배 금액을 웹으로 확인해보자!!
#19 어제 만든 프로그램 업그레이드!! 개별 상세내역보기 기능 추가!!
#20 시행착오... 그리고 시련... 하지만 원사마님 덕분으로 엄청난 레벨업!! 감사합니다. 더욱 발전하겠습니다.
#21 레벨업을 했지만 또 다시 찾아온 시련!! 프로그램 결과와 블록체인에 기록된 결과가 다르다!! 어떻게 해야 할까...
#22 오늘부터 새로운 도전!! 자동 보팅 만들기!! 그 첫번째 스팀코인판의 소각글에 자동보팅을 해보자!! 첫번째 시간 (1/N)
#23 스팀코인판의 소각글의 정보를 가지고 와서 자동보팅을 해보자!! 그 두번째 시간 (2/N)
#24 스팀코인판 3대조합의 임대내역을 웹으로 확인해보자!! 업그레이드!!
#25 스팀코인판 3대조합의 임대내역을 웹으로 확인해보자!! 업그레이드 2!! 그리고 개발 예정 사항 공개!!
#26 드디어 첫 실전 가동 준비중... 스팀코인판 유니온 조합의 수익 자동분배 작업 완료중...
#27 스팀코인판 유니온 조합 첫 자동 분배 결과!! 그리고 보완!!
#28 스팀코인판 유니온 조합 자동 분배 프로그램의 결과를 웹으로 확인해 보자!!
#29 스팀코인판 유니온 조합 자동 분배 상황을 텔레그램으로 확인!! 임내 확인 페이지 정렬 기능 추가!!
#30 스팀코인판 조합의 임대량 페이지 정렬 기능 업그레이드!! 그리고 임대량 파이 차트 완성!!
#31 스팀코인판 조합의 하루하루 임대량 변화를 차트로 확인해보자!!
#32 트리플A를 이용하면서 그동안 번거로웠던 클레임 스테이킹 전송 작업 이젠 안녕!! 자동으로 AAA를 전송하고 클레임하고 스테이킹을 해보자!!
#33 굳헬로가 만든 스팀코인판 조합 자동 클레임과 자동 분배 프로그램 원피스 조합에도 사용 개시!!
#34 스팀코인판 조합 원피스 자동 클레임과 자동 분배 프로그램 업그레이드!! 텔레그램 봇으로 그룹 메시지를 받아보자!!
#35 스팀에서 새글 정보를 텔레그램으로 받아보자!! 함께 정보를 받아보는 텔레그램 그룹방 개설!!
#36 스팀엔진 블록 검사 놓치는 블록이 없도록 해보자!! 파일 입출력 기능 활용!!
#37 스팀엔진 블록을 검사하여 본인글의 댓글을 텔레그램 알람으로 받아보자!!
#38 드디어 완성!! 보팅 알람봇!! 스팀엔진 블록을 검사하여 본인글에 보팅이 찍히면 텔레그램 알람으로 받아보자!!
#39 파이썬과 텔레그램을 이용한 챗봇 프로그래밍의 시작!! 그 첫번째!! 챗봇과 대화를 해보고,특정 메시지에 반응을 해보자!!
#40 파이썬과 텔레그램을 이용한 챗봇 프로그래밍!! 파이썬에 CommandHandler를 사용하여 특정 명령어를 내려보자!!
#41 굳헬로의 텔레그램 보팅알람 서비스 일단은 완성!! 앞으로 다양한 기능 추가 예정!! 사용해보고 후기 남겨주세요!!
#42 업비트의 원화 마켓 코인들의 시세를 텔레그램으로 받아보자!! /get 비트코인, /get 스팀, /get 코인이름 명령어 등록!!
#43 업비트의 원화 마켓 코인들의 시세를 텔레그램으로 받아보자2!! 알려줘 비트코인, 알려줘 스팀 노노!! 이제 바로 비트코인 스팀 명령어 등록!!
#44 매일 매일 새로운 기능이 추가되고 있는 굳스팀 챗봇!! 챗봇을 이용하여 스팀엔진 토큰의 시세 정보를 받아보자!!
#45 텔레그램 챗봇을 이용하여 최신 코인 주요 뉴스를 받아보자!! 굳스팀 챗봇 소개!!
#46 굳스팀 텔레그램 챗봇 새 기능 추가!! 굳스팀 챗봇을 이용하여 최신 헤드라인 뉴스 정보를 받아보자!!
#47 뉴스를 구독해보자!! 명령어 입력없이 특정 시간 챗 봇이 뉴스를 자동으로 보내 드립니다.
#48 본격적으로 스팀코인판 조합의 자동 보팅시스템 제작 돌입!! 기본 설계 및 보팅 설정 페이지 작업 완료!!
#49 스팀코인판 조합의 자동 보팅시스템 제작 2번째 시간!! 보팅 설정에 따라 각 조합원 별로 보팅룰을 적용해 보자!!
#50 스팀코인판 조합의 자동 보팅시스템 제작 3번째 시간!! 설 정된 보팅룰을 파이썬 자동 보팅 프로그램에 가져오기!!
#51 스팀코인판 조합의 자동 보팅시스템 제작 4번째 시간!! 블록을 검사하여 설정된 보팅룰로 보팅하기!!
#52 스팀코인판 조합의 자동 보팅시스템 제작 5번째 시간!! 자동 보팅시스템 테스트 현황!! 굳!! 따봉~~
#53 스팀코인판 조합의 자동 보팅시스템 제작 6번째 시간!! 보팅룰 검사 프로그램과 자동 보팅 프로그램의 분리!!
#54 스팀코인판 조합의 자동 보팅시스템 제작 마지막 시간!! 드디어 실전 가동!! 오류 수정 및 보팅 현황 확인 웹 페이지 제작 완료!!
#55 이번에는 유니온 조합의 자동보팅 시스템을 만들어 보자!! 유니온 조합의 보팅설정 프로그램과 보팅 설정 결과 확인 기능 완료!!
#56 스팀 블록을 검사하여 유니온 조합의 조합원 글에 보팅 룰셋 적용 및 자동 보팅 수행!!
#57 유니온 조합 우량 임대자 우대 조치!! 특별 규칙에 따른 보팅 설정 적용!!
#58 유니온 조합 자동 보팅 프로그램 테스트 결과 성공!! 보팅 현황을 확인할 수 있는 웹 페이지 추가 완료!!
#59 새로운 프로그램 공부를 시작!! 스팀몬스터 자동화를 위해 스팀몬스터 API를 분석해보자!! 그 첫시간!!
#60 스팀몬스터 사용자 정보를 출력해보고, 사용자가 가진 카드 정보를 출력해보자.
#61 조합의 자동분배 프로그램 수정 및 유니온 자동보팅 프로그램 가동 시작!! 오늘도 파이썬으로 스팀몬스터 API를 공부해 보자!!
#62 조합의 자동보팅 프로그램 업그레이드!! 오늘은 스팀몬스터 마켓의 정보를 가져오는 API를 공부해 보자!!
#63 파이썬 스팀몬스터 API를 이용하여 사용자가 보유하고 있는 모든 카드의 값을 계산해보자!!
#64 파이썬 스팀몬스터 API를 이용하여 사용자가 보유하고 있는 모든 카드의 값을 웹 프로그램으로 확인해보자!!
#65 파이썬 스팀몬스터 API를 이용하여 카드 최저가 합산 프로그램 업그레이드!! 소팅 오류 수정 및 이미디 적용 완료!!
jcar토큰 9월 구독 보팅입니다.
좋은 하루 보내세요. ^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
굳헬로우님도 피해없으시죠? 저야 피해 입을것도없어서...ㅎㅎ
그러고보니 집에 전화한다는걸 깜빡~ ㅠ 피해없나 모르겠어요!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
전 어제 태풍 아래서 공차고 술마시고 놀다 왔네요 ㅋㅋㅋㅋㅋ
앗.. 저도 집에 전화한다는걸 깜빡했네요..
오늘은 전화 해봐야겠어요.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
굳헬로님 자동대전봇 그날을 기대하겠습니다! 왠지 정말 만드실 것 같아요 ㅎㅎ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi @goodhello!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 4.012 which ranks you at #3993 across all Steem accounts.
Your rank has not changed in the last three days.
In our last Algorithmic Curation Round, consisting of 112 contributions, your post is ranked at #50.
Evaluation of your UA score:
Feel free to join our @steem-ua Discord server
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit