문성준

Add MovieList file

1 +var express = require('express');
2 +const request = require('request');
3 +const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
4 +const TOKEN = ''
5 +const KOFIC_URL = 'http://www.kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieList.json'
6 +const KOFIC_KEY = ''
7 +const fs = require('fs');
8 +const path = require('path');
9 +const HTTPS = require('https');
10 +const domain = ""
11 +const sslport = 23023;
12 +const bodyParser = require('body-parser');
13 +var app = express();
14 +app.use(bodyParser.json());
15 +
16 +app.post('/hook', function (req, res) {
17 +
18 + var eventObj = req.body.events[0];
19 + var source = eventObj.source;
20 + var message = eventObj.message;
21 +
22 + // request log
23 + console.log('======================', new Date() ,'======================');
24 + console.log('[request]', req.body);
25 + console.log('[request source] ', eventObj.source);
26 + console.log('[request message]', eventObj.message);
27 +
28 + trans(eventObj.replyToken, eventObj.message.text);
29 +
30 +
31 + res.sendStatus(200);
32 +});
33 +
34 +// message insert: Inquiry start opening year,Inquiry end opening year
35 +// ex) 2019,2020
36 +function trans(replyToken, message) {
37 + var my_message, copied_message;
38 + copied_message = message
39 + my_message = copied_message.split(',');
40 + request.get(
41 + {
42 + url: KOFIC_URL+`?key=${KOFIC_KEY}&openStartDt=${my_message[0]}&openEndDt=${my_message[1]}}`,
43 + json:true
44 + },(error, response, body) => {
45 + if(!error && response.statusCode == 200) {
46 + console.log(body.message);
47 + var result = '', movieNm, prdtYear, directors;
48 + for (let i = 0; i < body.movieListResult.movieList.length; i ++){
49 + movieNm = body.movieListResult.movieList[i].movieNm;
50 + prdtYear = body.movieListResult.movieList[i].prdtYear;
51 + if(body.movieListResult.movieList[i].directors.length === 0){
52 + directors = "감독정보없음"
53 + }
54 + else{
55 + directors = body.movieListResult.movieList[i].directors[0].peopleNm;
56 + }
57 + result += '제목: ' + movieNm + `(${prdtYear})` + '\n' + '감독: ' + directors + '\n';
58 + }
59 + request.post(
60 + {
61 + url: TARGET_URL,
62 + headers: {
63 + 'Authorization': `Bearer ${TOKEN}`
64 + },
65 + json: {
66 + "replyToken":replyToken,
67 + "messages":[
68 + {
69 + "type":"text",
70 + "text":result
71 + }
72 + ]
73 + }
74 + },(error, response, body) => {
75 + console.log(body)
76 + });
77 + }
78 + });
79 +
80 +}
81 +
82 +try {
83 + const option = {
84 + ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'),
85 + key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(),
86 + cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(),
87 + };
88 +
89 + HTTPS.createServer(option, app).listen(sslport, () => {
90 + console.log(`[HTTPS] Server is started on port ${sslport}`);
91 + });
92 + } catch (error) {
93 + console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.');
94 + console.log(error);
95 + }
96 +
...\ No newline at end of file ...\ No newline at end of file