본문 바로가기

새로운 블로그로 이전합니다
구글블로그 / 네이버블로그
(자료도 점차 이전할 계획입니다.)


게임/던파

던파) 경매장 검색 계산기 (컴퓨터용, 파워쉘, 오픈API)

by devsp 2021. 3. 15.



 

* PC 환경에 최적화된 글 입니다.

 

던파홈페이지 맨 아래에 숨어있는 오픈 API

(주소 : developers.neople.co.kr/contents/apiDocs/df)

 

윈도우에 내장되어있는 파워쉘을 이용하여

 

아이템 제작 시 마진을 편리하게 계산할 수 있는

계산기를 만들어보았습니다.

 

 

[ 다운로드 ]

 

던파 경매장 검색 파워쉘 스크립트(배포용).txt
0.00MB

(* txt파일의 내용을 파워쉘 ISE의 흰 부분에 복붙하면 됩니다.)

(* API키는 OpenAPI에 로그인하면 생성할 수 있습니다.)

 

 

[ API키 발급 관련 사항 ]

 

ㄴ 추가 제공 항목을 체크하지 않아도 가입가능합니다.

 

ㄴ 로그인 후, 우측상단마이페이지에서 등록을 통해

API키를 발급받을 수 있습니다.

 

 

[ 코드 설명 ]

 

# 코드복사에 따른 오류 방지 코드. 

# (코드를 복붙해서 실행시키면 정상적으로 동작하지 않는 문제를 해결해줌)

Add-Type -AssemblyName System.Web;

 

# 함수 생성. ㄱ이 이름이고, $name과 $num은 함수에 넣을 값이 됨.
function ㄱ($name, $num) {

 

    # https://developers.neople.co.kr/contents/apiDocs/df (Neople 오픈 API)

    # 이곳에서 로그인을 하면 API키를 발급받을 수 있음.

    $key = "(발급받은 API 키)";

 

    # 아이템 이름을 Url인코딩 처리. (주소창에 집어넣을 수 있도록 변환)

    $item = [System.Web.HttpUtility]::UrlEncode($name);

 

    # 요청할 주소를 만드는 과정. API Docs를 확인하면 내용 추가 가능.

    # API키 붙이기.

    $url = "https://api.neople.co.kr/df/auction?apikey=" + $key;

    # 아이템 이름 붙이기.

    $url += "&itemName=" + $item;

    # 가격기준 오름차순(작은값->큰값)으로 정렬.

    $url += "&sort=unitPrice:asc";

   

    # 0일 경우는 평균값, 1~10은 해당 번째 줄의 가격을 출력.

    if($num -eq 0) {$n = 16;}

    else {$n = 17 * ($num - 1) + 15};

   

    # 웹파싱 영역.

    $webClient = New-Object System.Net.WebClient;

    $webClient.Encoding = [System.Text.Encoding]::utf8;

    $content = $webClient.DownloadString($url);

   

    # 웹파싱으로 받은 문자열을 정리하여 출력하는 부분.

    $content2 = "";

    $content2 = ($content -replace ("{`"rows`":\[{","")) -replace ("\]}",",") -split(",") -replace("{","") -replace("}","");

    $res = ($content2 | Select-Object -index $n) -split(":") | Select-Object -index 1;

   

    # 잘못된 결과인 경우 오류를 출력하여 잘못된 계산 방지.

    if($content -eq "{`"rows`":[]}") {

          echo ("`"" + $name + "`"이(가) 잘못된 검색어 이거나, 경매장에 등록된 물품이 없습니다. 띄어쓰기를 확인해주세요.");

    }

    # 최종 결과값 출력.

    else {

        return [int]$res;

    }

    # 오류방지를 위한 일정시간 대기. (API 사용설명 : 최대 1초에 100회 처리 = 10밀리초에 1번 수행.)

    Start-Sleep -m 50;

}

# 파란색 영역 정리.

cls;

 

<# 사용방법

 

1. (ㄱ "검색할 아이템명" 숫자) 방식으로 함수를 사용할 수 있음.

   ★ 파워쉘에서는 "함수이름V인수1V인수2" (V는 띄어쓰기)의 방식으로 여러 인자를 함수에 집어넣을 수 있음.

 

2. 여러 결과를 이용하여 계산을 할 경우에는 [int]( (ㄱ "아이템명1" 1) + (ㄱ "아이템명2" 1) )의 방식으로 계산할 수 있음.

   맨앞에 [int]를 붙여줘야하고 ()괄호를 이용하여 감싸줘야 함.

 

3. 문자열은 따옴표를 이용하여 구분할 수 있고, 문자열을 +하면 문자상으로 붙어서 표시됨.

   123 + 123 = 246

   "123" + "123" = "123123"

   "123" + 123 = "123123"

#>

 

 





"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


댓글