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

던파홈페이지 맨 아래에 숨어있는 오픈 API와
(주소 : developers.neople.co.kr/contents/apiDocs/df)

윈도우에 내장되어있는 파워쉘을 이용하여
아이템 제작 시 마진을 편리하게 계산할 수 있는
계산기를 만들어보았습니다.
[ 다운로드 ]
(* 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"
#>
댓글