mirror of
https://git.mapside.kr/public/lotto_automation.git
synced 2026-09-21 00:05:02 +09:00
Compare commits
7
Commits
092df29869
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9c5b413d84 | ||
|
|
90cbc95ee2 | ||
|
|
bccdee3ae4 | ||
|
|
e5d59a836d | ||
|
|
da09a696ef | ||
|
|
f900ef5039 | ||
|
|
d226357f5f |
@@ -4,3 +4,4 @@ node_modules
|
||||
test
|
||||
yarn.lock
|
||||
config.json
|
||||
package-lock.json
|
||||
@@ -5,6 +5,6 @@
|
||||
"ntfyToken": "TOKEN",
|
||||
"buyLottoPolicy": [
|
||||
"auto",
|
||||
"1,2,3,4,5,6"
|
||||
[1,2,3,4,5,6]
|
||||
]
|
||||
}
|
||||
@@ -6,6 +6,7 @@ class Constants {
|
||||
static SYSTEM_CHECK_URL = `${Constants.BASE_URL}/index_check.html`
|
||||
static MAIN_PAGE_URL = `${Constants.BASE_URL}/common.do?method=main`
|
||||
static LOGIN_REQUEST_URL = `${Constants.BASE_URL}/userSsl.do?method=login`
|
||||
static PW_CHANGE_NEXT_URL = `${Constants.BASE_URL}/userSsl.do?method=pspnPwChng`
|
||||
static BUY_PAGE_URL = `${Constants.API_URL}/olotto/game/game645.do`
|
||||
static BUY_LOTTO_645_URL = `${Constants.API_URL}/olotto/game/execBuy.do`
|
||||
static BUY_READY_SOCKET_URL = `${Constants.API_URL}/olotto/game/egovUserReadySocket.json`
|
||||
|
||||
+29
-2
@@ -62,7 +62,34 @@ class Lotto {
|
||||
if(loginResult instanceof Error)
|
||||
return loginResult
|
||||
|
||||
const $ = Cheerio.load(loginResult.data)
|
||||
let $ = Cheerio.load(loginResult.data)
|
||||
|
||||
/**
|
||||
* 비밀번호 변경 감지
|
||||
*
|
||||
* 비밀번호가 변경이 될 경우 'https://www.dhlottery.co.kr/userSsl.do?method=pwdPlyChngNoti'로 redirect 됨
|
||||
* 비밀번호를 유지할 지 변경할 지 고르는 페이지인데, 여기에 있는 chngTgtId 및 pwdChgToken를 추출해서
|
||||
*
|
||||
* POST 'https://www.dhlottery.co.kr/userSsl.do?method=pspnPwChng'
|
||||
* payload로 chngTgtId, pwdChgToken을 보내면 다음에 하기 처리됨.
|
||||
*
|
||||
* 성공하면 'https://www.dhlottery.co.kr/user.do?method=login&returnUrl=https%3A%2F%2Fwww.dhlottery.co.kr%2Fcommon.do%3Fmethod%3Dmain'
|
||||
* redirect 진행되며, 마지막으로 MAIN_PAGE_URL로 redirect됨
|
||||
*/
|
||||
const targetInput = $('#chngTgtId')
|
||||
if(targetInput.length !== 0) {
|
||||
const chngTgtId = targetInput.val()
|
||||
const pwdChgToken = $('#pwdChgToken').val()
|
||||
|
||||
const pwChgNextData = { chngTgtId, pwdChgToken }
|
||||
const pgChgNextResult = await this.#_request('POST', Constants.PW_CHANGE_NEXT_URL, pwChgNextData)
|
||||
if(pgChgNextResult instanceof Error)
|
||||
return pgChgNextResult
|
||||
|
||||
$ = Cheerio.load(pgChgNextResult.data)
|
||||
}
|
||||
|
||||
|
||||
const btnCommonElements = $('a.btn_common')
|
||||
if(btnCommonElements.length > 0)
|
||||
return new Error('로그인에 실패했습니다. 아이디 또는 비밀번호를 확인해주세요.')
|
||||
@@ -86,7 +113,7 @@ class Lotto {
|
||||
const requestParams = lotteryInputs.map((lotto, idx) => {
|
||||
return {
|
||||
genType: lotto === 'auto' ? '0' : '1',
|
||||
arrGameChoiceNum: lotto === 'auto' ? null : lotto.map(num => String(num).padStart(2, 0)).join(','),
|
||||
arrGameChoiceNum: lotto === 'auto' ? null : lotto.sort().map(num => String(num).padStart(2, 0)).join(','),
|
||||
alpabet: String.fromCharCode(65 + idx)
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user