백승욱

Merge branch 'feature/DailyBoxOfficeList'(for version 1.0)

1 +//=============================================================
2 +var express = require('express');
3 +const request = require('request');
4 +const config = require('./config.json');
5 +//=============================================================
6 +const LINE_URL = 'https://api.line.me/v2/bot/message/reply'
7 +const TOKEN = config.TOKEN;
8 +const BOXOFFICE_URL = 'http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json'
9 +const KOFIC_KEY = config.KOFIC_KEY;
10 +//=============================================================
11 +
12 +// 어제 기준 영화 순위(1위 ~ 5위) 출력
13 +exports.ShowYesterdayRank = function(replyToken) {
14 +
15 + var yesterday = exports.GetYesterday();
16 +
17 + request.get(
18 + {
19 + url: BOXOFFICE_URL+`?key=${KOFIC_KEY}&targetDt=${yesterday}`,
20 + json:true
21 + },(error, response, body) => {
22 + if(!error && response.statusCode == 200) {
23 + console.log(body.boxOfficeResult);
24 +
25 + var movieName = [];
26 + movieName[0] = body.boxOfficeResult.dailyBoxOfficeList[0].movieNm;
27 + movieName[1] = body.boxOfficeResult.dailyBoxOfficeList[1].movieNm;
28 + movieName[2] = body.boxOfficeResult.dailyBoxOfficeList[2].movieNm;
29 + movieName[3] = body.boxOfficeResult.dailyBoxOfficeList[3].movieNm;
30 + movieName[4] = body.boxOfficeResult.dailyBoxOfficeList[4].movieNm;
31 +
32 + var movieOpenDt = [];
33 + movieOpenDt[0] = body.boxOfficeResult.dailyBoxOfficeList[0].openDt;
34 + movieOpenDt[1] = body.boxOfficeResult.dailyBoxOfficeList[1].openDt;
35 + movieOpenDt[2] = body.boxOfficeResult.dailyBoxOfficeList[2].openDt;
36 + movieOpenDt[3] = body.boxOfficeResult.dailyBoxOfficeList[3].openDt;
37 + movieOpenDt[4] = body.boxOfficeResult.dailyBoxOfficeList[4].openDt;
38 +
39 + var movieAudiAcc = [];
40 + movieAudiAcc[0] = exports.numberWithCommas(body.boxOfficeResult.dailyBoxOfficeList[0].audiAcc);
41 + movieAudiAcc[1] = exports.numberWithCommas(body.boxOfficeResult.dailyBoxOfficeList[1].audiAcc);
42 + movieAudiAcc[2] = exports.numberWithCommas(body.boxOfficeResult.dailyBoxOfficeList[2].audiAcc);
43 + movieAudiAcc[3] = exports.numberWithCommas(body.boxOfficeResult.dailyBoxOfficeList[3].audiAcc);
44 + movieAudiAcc[4] = exports.numberWithCommas(body.boxOfficeResult.dailyBoxOfficeList[4].audiAcc);
45 +
46 + request.post(
47 + {
48 + url: LINE_URL,
49 + headers: {
50 + 'Authorization': `Bearer ${TOKEN}`
51 + },
52 + json: {
53 + "replyToken":replyToken,
54 + "messages":[
55 + {
56 + "type":"text",
57 + "text":
58 + `[1위]\n영화제목 : ${movieName[0]}\n개봉일 : ${movieOpenDt[0]}\n누적 관객 수 : ${movieAudiAcc[0]}명\n\n`+
59 + `[2위]\n영화제목 : ${movieName[1]}\n개봉일 : ${movieOpenDt[1]}\n누적 관객 수 : ${movieAudiAcc[1]}명\n\n`+
60 + `[3위]\n영화제목 : ${movieName[2]}\n개봉일 : ${movieOpenDt[2]}\n누적 관객 수 : ${movieAudiAcc[2]}명\n\n`+
61 + `[4위]\n영화제목 : ${movieName[3]}\n개봉일 : ${movieOpenDt[3]}\n누적 관객 수 : ${movieAudiAcc[3]}명\n\n`+
62 + `[5위]\n영화제목 : ${movieName[4]}\n개봉일 : ${movieOpenDt[4]}\n누적 관객 수 : ${movieAudiAcc[4]}명\n\n`
63 + }
64 + ]
65 + }
66 + },(error, response, body) => {
67 + console.log(body)
68 + });
69 + }
70 + });
71 +}
72 +
73 +
74 +// 어제 날짜를 YYYYMMDD 형식(type: string)으로 반환하는 함수
75 +exports.GetYesterday = function() {
76 +
77 + var today = new Date();
78 + var yesterday = new Date(today.setDate(today.getDate() - 1));
79 +
80 + var year = yesterday.getFullYear();
81 + var month = ('0' + (yesterday.getMonth() + 1)).slice(-2);
82 + var day = ('0' + yesterday.getDate()).slice(-2);
83 +
84 + return (year + month + day);
85 +}
86 +
87 +
88 +// 숫자 사이에 콤마(,) 찍고 반환하는 함수(입력, 출력 모두 문자열)
89 +exports.numberWithCommas = function(x) {
90 + return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
91 +}
No preview for this file type