1.스팀api pip install 하기
스팀 api 를 사용하기위해 python-steam-api를 install해준다.
pip install python-steam-api
2.스팀 api key 발급받기
api 사용에 필요한 steam key를 발급받는다.
https://steamcommunity.com/dev/apikey
3.import
스팀 키를 작성해오고 다음과같이 작성한다.
(이때 스팀키는 외부에 노출되지않도록 주의해야한다..)
from steamapi import *
#스팀 api 설정
steam = Steam("steam_api_key_here!")
4.코드
4-1.스팀 아이디입력받기
ID, 고유코드, 프로필 주소 어느것도 입력받을수있게만들었다
ID -> 고유코드 -> 프로필 주소순으로 try하여 작동한다.
game 변수에 steam.users.get_owned_games(steamid)를 통해 얻은 게임목록을 얻는다.
try:#아이디
ID=steam.users.search_user(steamid)["player"]["steamid"]
#게임목록 추출(리스트)
game=steam.users.get_owned_games(ID)["games"]
except:
try:#고유코드
game=steam.users.get_owned_games(steamid)["games"]
except:
try:#프로필주소
game=steam.users.get_owned_games(steamid[36:-1])["games"]
except:
printf("실패")
4-2.게임 가격정보얻어오기
위에서 얻은 각게임 이름을 반복문으로
nameprice_check 함수를 통해 보내 게임이름과 게임가격을 리스트에 넣고
게임 가격리스트를 game_price_list함수에 보내 가격의 합을 구한다.
#게임가격리스트,게임수
game_price_list=[]
gamenum=0
for i in game:
print(str(gamenum)+"시작")
gamenum=gamenum + 1
game_name,game_price=nameprice_check(i)
game_price_list.append(game_price)
gamesum=pricesum(game_price_list)
4-3.nameprice_check 함수
steam.apps.search_games(name)으로 찾은 게임의 가격을 가져온다.
그뒤 첫글자가 달러가 아니거나 실패할경우 무료게임으로 간주하여 가격을 0으로 설정하였다.
그후 첫글자를 없애고 1000을 곱하여 원화로 나타냈다.
#게임이름, 게임가격 리턴해주는 함수
def nameprice_check(i):
name=i["name"]
try:#유료
price=steam.apps.search_games(name)["apps"][0]["price"]
if (price[0] != '$'):
price=0
else:
price=float(price[1:])*1000
except:#무료
price=0
return name,price
4-4.pricesum 함수
#게임 가격 합산
def pricesum(price_list):
sumprice=0
for i in price_list:
sumprice=sumprice+i
return sumprice
2.디스코드 봇에서 활용
from head import *
#스팀 api 설정
steam = Steam("steam_api_key_here!")
#게임이름, 게임가격 리턴해주는 함수
def nameprice_check(i):
name=i["name"]
try:#유료
price=steam.apps.search_games(name)["apps"][0]["price"]
if (price[0] != '$'):
price=0
else:
price=float(price[1:])*1000
except:#무료
price=0
return name,price
#게임 가격 합산
def pricesum(price_list):
sumprice=0
for i in price_list:
sumprice=sumprice+i
return sumprice
#스팀
@bot.command()
async def 스팀(ctx,*,steamid):
await ctx.send(f'잠시만기다려주세여~')
#아이디 입력받아 식별코드 얻기
try:#아이디
ID=steam.users.search_user(steamid)["player"]["steamid"]
#게임목록 추출(리스트)
game=steam.users.get_owned_games(ID)["games"]
except:
try:#고유코드
game=steam.users.get_owned_games(steamid)["games"]
except:
try:#프로필주소
game=steam.users.get_owned_games(steamid[36:-1])["games"]
except:
await ctx.send(f'실패')
#게임가격리스트,게임수
game_price_list=[]
gamenum=0
embed = discord.Embed(title = "스팀", description = "", color = 0x62c1cc)
for i in game:
print(str(gamenum)+"시작")
gamenum=gamenum + 1
game_name,game_price=nameprice_check(i)
game_price_list.append(game_price)
gamesum=pricesum(game_price_list)
embed = discord.Embed(title = "당신이 땅에다 버린돈", description = "", color = 0x62c1cc)
embed.add_field(name = "게임수:"+str(gamenum), value ="버린돈은 아마도"+str(gamesum)+"원",inline=False)
embed.set_thumbnail(url="https://t3.daumcdn.net/thumb/R720x0/?fname=http://t1.daumcdn.net/brunch/service/user/6Hj8/image/I97Vf9b84uTpJ3rmYebSPcIGRho.jpg")
await ctx.send(embed = embed)
'Language > Python' 카테고리의 다른 글
[Python]24시간 디스코드 봇 무료 호스팅하기 구글클라우드 (0) | 2024.05.20 |
---|---|
[Python] 말버릇 분석 프로그램 만들기 계획 (0) | 2024.05.09 |
[Python] 리스트 컴프리헨션(Comprehension) (0) | 2024.04.05 |