Showing
3 changed files
with
58 additions
and
5 deletions
... | @@ -17,9 +17,11 @@ var app = express(); | ... | @@ -17,9 +17,11 @@ var app = express(); |
17 | app.use(bodyParser.json()); | 17 | app.use(bodyParser.json()); |
18 | ///////////////////////////////////////////////// | 18 | ///////////////////////////////////////////////// |
19 | // commit 할때 지워야 할것들 | 19 | // commit 할때 지워야 할것들 |
20 | -const USER_ID = '' | 20 | +const USER_ID = ''; |
21 | -const TOKEN = '' | 21 | +const TOKEN = ''; |
22 | -const domain = "" | 22 | +const domain = ''; |
23 | +const KAKAO_KEY = ''; | ||
24 | +///////////////////////////////////////////////// | ||
23 | 25 | ||
24 | let MEGA_date; | 26 | let MEGA_date; |
25 | let MEGA_TheaterLocation; | 27 | let MEGA_TheaterLocation; |
... | @@ -31,6 +33,7 @@ let initFlag = false; //브랜드 선택 flag | ... | @@ -31,6 +33,7 @@ let initFlag = false; //브랜드 선택 flag |
31 | let MEGA_flag = -1; //메가박스 인지 확인하는 flag | 33 | let MEGA_flag = -1; //메가박스 인지 확인하는 flag |
32 | let MEGA_count; //메가박스에서 영화관 판단하는 count | 34 | let MEGA_count; //메가박스에서 영화관 판단하는 count |
33 | let MEGA_AbleLocationList = []; //메가박스에서 영화관 이름 매치하는 것 저장하는 list | 35 | let MEGA_AbleLocationList = []; //메가박스에서 영화관 이름 매치하는 것 저장하는 list |
36 | +let MegaboxKakaoResultTheater = []; | ||
34 | exports.MEGA_PlayingMovieURL = MEGA_PlayingMovieURL; | 37 | exports.MEGA_PlayingMovieURL = MEGA_PlayingMovieURL; |
35 | //////////////////////////////////////////////// | 38 | //////////////////////////////////////////////// |
36 | //처음 영화관을 가져오는 것까지 대략 30초가 걸림 => 30초 기다리고 메세지 전송 | 39 | //처음 영화관을 가져오는 것까지 대략 30초가 걸림 => 30초 기다리고 메세지 전송 |
... | @@ -213,15 +216,24 @@ app.post('/hook', asyncHandler(async (req, res, next) => { | ... | @@ -213,15 +216,24 @@ app.post('/hook', asyncHandler(async (req, res, next) => { |
213 | const final_URL = "https://www.megabox.co.kr/booking?rpstMovieNo=" + MEGA_title + "&brchNo1=" + MEGA_TheaterLocationCode + '&playDe=' + MEGA_date; | 216 | const final_URL = "https://www.megabox.co.kr/booking?rpstMovieNo=" + MEGA_title + "&brchNo1=" + MEGA_TheaterLocationCode + '&playDe=' + MEGA_date; |
214 | console.log(final_URL); | 217 | console.log(final_URL); |
215 | PushMessage(final_URL, "링크를 누르면 예매창으로 바로 이동합니다."); | 218 | PushMessage(final_URL, "링크를 누르면 예매창으로 바로 이동합니다."); |
219 | + MEGA_PlayingMovieList = []; //영화 리스트 초기화 | ||
220 | + MegaboxKakaoResultTheater = []; | ||
221 | + GetMegaboxKakaoMapURL(MEGA_TheaterLocation); | ||
216 | setTimeout(function () { | 222 | setTimeout(function () { |
217 | - MEGA_PlayingMovieList = []; | 223 | + console.log(MegaboxKakaoResultTheater[0]); |
224 | + let MegaboxKakaoResultTheaterNAME = MegaboxKakaoResultTheater[0]['theater_name']; | ||
225 | + let MegaboxKakaoResultTheaterURL = MegaboxKakaoResultTheater[0]['theater_url']; | ||
226 | + console.log(MegaboxKakaoResultTheaterNAME, MegaboxKakaoResultTheaterURL); | ||
227 | + PushMessage(MegaboxKakaoResultTheaterURL, "카카오맵으로 검색한 " + MegaboxKakaoResultTheaterNAME+ "의 위치입니다."); | ||
228 | + setTimeout(function () { | ||
229 | + //EGA_PlayingMovieList = []; | ||
218 | initFlag = false; | 230 | initFlag = false; |
219 | MEGA_flag = -1; | 231 | MEGA_flag = -1; |
220 | PushSingleMessage("원하시는 브랜드의 번호를 입력해주세요.\n1: CGV\n2: LotteCinema\n3: Megabox\n언제든 브랜드를 바꾸고 싶으시다면 '브랜드'를 입력해주세요."); | 232 | PushSingleMessage("원하시는 브랜드의 번호를 입력해주세요.\n1: CGV\n2: LotteCinema\n3: Megabox\n언제든 브랜드를 바꾸고 싶으시다면 '브랜드'를 입력해주세요."); |
221 | }, 1000); | 233 | }, 1000); |
234 | + }, 2000); | ||
222 | } | 235 | } |
223 | } | 236 | } |
224 | - | ||
225 | res.sendStatus(200); | 237 | res.sendStatus(200); |
226 | })) | 238 | })) |
227 | //}); | 239 | //}); |
... | @@ -238,6 +250,45 @@ try { | ... | @@ -238,6 +250,45 @@ try { |
238 | console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.'); | 250 | console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.'); |
239 | console.log(error); | 251 | console.log(error); |
240 | } | 252 | } |
253 | +GetMegaboxKakaoMapURL= async(LOCATE) => { | ||
254 | + let KAKAOOPTION = { | ||
255 | + url: "https://dapi.kakao.com/v2/local/search/keyword", | ||
256 | + method: "GET", | ||
257 | + headers: { | ||
258 | + 'Authorization': `KakaoAK ${KAKAO_KEY}` // commit 할때 지워야 할것 | ||
259 | + }, | ||
260 | + qs: { | ||
261 | + 'query': '메가박스 ' + LOCATE, // 메가박스 영화관이름 | ||
262 | + //'category_group_code' : 'CT1', | ||
263 | + 'size': 5 | ||
264 | + }, | ||
265 | + encoding: 'UTF-8' | ||
266 | + }; | ||
267 | + let selectable_theaters = []; | ||
268 | + request(KAKAOOPTION, function (err, res, body) { | ||
269 | + info_list = JSON.parse(body).documents; | ||
270 | + | ||
271 | + if (!err && res.statusCode == 200) { | ||
272 | + info_list.forEach(info => { | ||
273 | + //console.log(info.category_name); | ||
274 | + if (info.category_name.endsWith("메가박스")) { | ||
275 | + const theater_info = { | ||
276 | + "theater_name": info.place_name, | ||
277 | + "theater_url": info.place_url | ||
278 | + }; | ||
279 | + //console.log(theater_info); | ||
280 | + //return theater_info; | ||
281 | + selectable_theaters.push(theater_info); | ||
282 | + } | ||
283 | + }); | ||
284 | + } | ||
285 | + console.log(selectable_theaters); | ||
286 | + MegaboxKakaoResultTheater = selectable_theaters; | ||
287 | + return; | ||
288 | + }); | ||
289 | + | ||
290 | +} | ||
291 | + | ||
241 | //메세지 전송하는 function 모음 | 292 | //메세지 전송하는 function 모음 |
242 | function SendMessage(eventObj, text1, text2 = "") { //reply message | 293 | function SendMessage(eventObj, text1, text2 = "") { //reply message |
243 | request.post( | 294 | request.post( | ... | ... |
Chatbot/package-lock.json
0 → 100644
This diff could not be displayed because it is too large.
... | @@ -16,7 +16,9 @@ | ... | @@ -16,7 +16,9 @@ |
16 | "chromedriver": "^101.0.0", | 16 | "chromedriver": "^101.0.0", |
17 | "express": "^4.18.1", | 17 | "express": "^4.18.1", |
18 | "express-async-handler": "^1.2.0", | 18 | "express-async-handler": "^1.2.0", |
19 | + "moment": "^2.29.3", | ||
19 | "puppeteer": "^14.1.1", | 20 | "puppeteer": "^14.1.1", |
21 | + "request": "^2.88.2", | ||
20 | "selenium-webdriver": "^4.1.2" | 22 | "selenium-webdriver": "^4.1.2" |
21 | } | 23 | } |
22 | } | 24 | } | ... | ... |
-
Please register or login to post a comment