궁금해하는 사람이 있어서 공유핢!





1. 로스트아크 홈페이지 로그인



꿀팁) 여기 스토브 런처에서 들어가면 따로 로그인 안 해도 되서 더 편함


2. F12를 눌러 작업자 메뉴 호출







3. 콘솔탭 클릭





4. 아래 코드를 그대로 복사&붙여넣기후 엔터


var lastNum = 1;
var sum = 0;
var regexp = /B(?=(d{3})+(?!d))/g;
var chargeDateList=[];
var chargeWayList=[];
var cashList=[];
var text = "";
var years = [2017,2018,2019,2020,2021,2022,2023,2024,2025,2026];
for(var j=years.length-1; j>=0;j--){
    $.ajax({
                url: '/Cash/GetChargeList',
                type: 'GET',
                data: { Page: 1, StartDate: years[j]+'.01.01', EndDate: years[j]+'.12.31'},
                dataType: 'html',
                async: false,
                success: function (data) {
                    var pageNum = $(data).find(".pagination__last")[0].getAttribute("onClick");
                    if(pageNum != null){
                        lastNum = pageNum.replace(/[^0-9]/g,"");
                    }
                },
                error: function (xhr, status, error) {
                    ajaxErrorHandler(xhr, status, error);
                    return;
                }
            });
    for(var i=1;i<=lastNum;i++){
        $.ajax({
                url: '/Cash/GetChargeList',
                type: 'GET',
                data: { Page: i, StartDate: years[j]+'.01.01', EndDate: years[j]+'.12.31'},
                dataType: 'html',
                async: false,
                success: function (data) {
                    $(data).find("td.list__price").each(function(){
                        var $cash = $(this)
                        cashList.push($cash.text().replace(/[^0-9]/g,""))
                    });
                    $(data).find("td.list__date").each(function(){
                        var $cash = $(this)
                        chargeDateList.push($cash.text())
                    });
                    $(data).find("td.list__way").each(function(){
                        var $cash = $(this)
                       chargeWayList.push($cash.text())
                    });
                },
                error: function (xhr, status, error) {
                    ajaxErrorHandler(xhr, status, error);
                    return;
                }
            });
    }
}


(function(console) {
    console.save = function(data, filename){
        if(!data) {
            console.error('Console.save: No data')
            return;
        }
        if(!filename) filename = 'console.html'
        if(typeof data === "object"){
            data = JSON.stringify(data, undefined, 4)
        }
        var blob = new Blob([data], {type: 'text/json'}),
            e    = document.createEvent('MouseEvents'),
            a    = document.createElement('a')


        a.download = filename
        a.href = window.URL.createObjectURL(blob)
        a.dataset.downloadurl =  ['text/json', a.download, a.href].join(':')
        e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
        a.dispatchEvent(e)
    }
})(console)


function downloadCSV(csv, filename) {
  var csvFile;
  var downloadLink;


  //한글 처리를 해주기 위해 BOM 추가하기
  const BOM = "uFEFF";
  csv = BOM + csv;


  csvFile = new Blob([csv], { type: "text/csv" });
  downloadLink = document.createElement("a");
  downloadLink.download = filename;
  downloadLink.href = window.URL.createObjectURL(csvFile);
  downloadLink.style.display = "none";
  document.body.appendChild(downloadLink);
  downloadLink.click();
}


cashList.forEach(function(cash){
    sum += Number(cash);
});


var csv = [];
var row = [];


row.push(
    "충전일자",
    "충전금액",
    "충전수단",
);
csv.push(row.join(","));


for(var i =cashList.length-1; i>=0;i--){
    console.log(chargeDateList[i] + " " + cashList[i].replace(regexp, ',') + "원 " + chargeWayList[i]);
    text = text + "n"+chargeDateList[i] + " " + cashList[i].replace(regexp, ',') + "원 " + chargeWayList[i];
    row = [];
    row.push(
        chargeDateList[i],
        cashList[i],
        chargeWayList[i],
    );
    csv.push(row.join(","));
}


sum = sum.toString().replace(regexp, ',');
text = text + "n" +"총합 : " + sum;
console.log("현재까지 "+sum+"원 사용하셨습니다");
alert("현재까지 "+sum+"원 사용하셨습니다")


function downloadResult() {
      downloadCSV(csv.join("n"),"로아현질내역.csv")
    }


const el = document.createElement('button');
el.id = 'downloadBtn';
el.style = 'width: 100%; height: 64px; text-align: center';
el.innerText = '사용내역 다운로드';
el.onclick = downloadResult;
document.body.prepend(el);




+) 만약 처음 이 콘솔을 사용하는거라면, 보안상 콘솔에 코드 복붙이 안 되고 경고문을 띄우면서 복붙이 안되는 경우가 있음.

그럴땐 그냥 콘솔에 allow pasting 치고 엔터 친 다음 다시 위의 코드 복붙하면 됨




5. 5초쯤 기다리면 화면에 결과 출력됨




이렇게 쉽고 간단하게 로아에 지른 총 액수를 확인하는것이 가능하니 로붕이들도 심심하면 해보셂