장수창

added yongin crawling

...@@ -2,11 +2,12 @@ var express = require('express'); ...@@ -2,11 +2,12 @@ var express = require('express');
2 const request = require('request'); 2 const request = require('request');
3 const axios = require("axios"); 3 const axios = require("axios");
4 const cheerio = require("cheerio"); 4 const cheerio = require("cheerio");
5 -const url = "http://ncov.mohw.go.kr/"; // 질병관리본부 url 5 +const ncov_url = "http://ncov.mohw.go.kr/"; // 질병관리본부 url
6 +const yongin_url = 'http://www.yongin.go.kr/health/ictsd/INC_selectIctsdPatntList.do?q_currPage=1&q_rowPerPage=10&_=1592578382959'; // 용인시
6 const TARGET_URL = 'https://api.line.me/v2/bot/message/reply' 7 const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
7 const MULTI_TARGET_URL = 'https://api.line.me/v2/bot/message/multicast' 8 const MULTI_TARGET_URL = 'https://api.line.me/v2/bot/message/multicast'
8 const BROAD_TARGET_URL = 'https://api.line.me/v2/bot/message/broadcast' 9 const BROAD_TARGET_URL = 'https://api.line.me/v2/bot/message/broadcast'
9 -const TOKEN = '' 10 +const TOKEN = '///////'
10 const NAVER_NEWS_ID = '' 11 const NAVER_NEWS_ID = ''
11 const NAVER_NEWS_SECRET = '' 12 const NAVER_NEWS_SECRET = ''
12 const fs = require('fs'); 13 const fs = require('fs');
...@@ -14,10 +15,10 @@ const path = require('path'); ...@@ -14,10 +15,10 @@ const path = require('path');
14 const HTTPS = require('https'); 15 const HTTPS = require('https');
15 const domain = "www.osschatbot2020.tk" 16 const domain = "www.osschatbot2020.tk"
16 const sslport = 23023; 17 const sslport = 23023;
17 -
18 const bodyParser = require('body-parser'); 18 const bodyParser = require('body-parser');
19 var app = express(); 19 var app = express();
20 20
21 +
21 // broadcast route 22 // broadcast route
22 var period_broadcast = 50000; 23 var period_broadcast = 50000;
23 var count_broadcast = 0; 24 var count_broadcast = 0;
...@@ -57,10 +58,10 @@ app.post('/hook', function (req, res) { ...@@ -57,10 +58,10 @@ app.post('/hook', function (req, res) {
57 res.sendStatus(200); 58 res.sendStatus(200);
58 }); 59 });
59 60
60 -//reply 61 +// reply
61 function replyNationWide(eventObj) { 62 function replyNationWide(eventObj) {
62 //read status 63 //read status
63 - request.post(url, function (err, res, body) { 64 + request.post(ncov_url, function (err, res, body) {
64 65
65 const $ = cheerio.load(body) 66 const $ = cheerio.load(body)
66 let parentTag = $("div.liveNum ul.liveNum li"); 67 let parentTag = $("div.liveNum ul.liveNum li");
...@@ -115,7 +116,7 @@ function replyNationWide(eventObj) { ...@@ -115,7 +116,7 @@ function replyNationWide(eventObj) {
115 116
116 } 117 }
117 118
118 -//hello 119 +// hello
119 function hello(eventObj) { 120 function hello(eventObj) {
120 121
121 request.post( 122 request.post(
...@@ -140,6 +141,10 @@ function hello(eventObj) { ...@@ -140,6 +141,10 @@ function hello(eventObj) {
140 "text":"코로나 19 관련 뉴스는 '뉴스'를 타이핑 해주세요." 141 "text":"코로나 19 관련 뉴스는 '뉴스'를 타이핑 해주세요."
141 }, 142 },
142 { 143 {
144 + "type":"text",
145 + "text":"감사합니다."
146 + },
147 + {
143 "type": "sticker", 148 "type": "sticker",
144 "packageId": "11539", 149 "packageId": "11539",
145 "stickerId": "52114110" 150 "stickerId": "52114110"
...@@ -152,9 +157,24 @@ function hello(eventObj) { ...@@ -152,9 +157,24 @@ function hello(eventObj) {
152 }); 157 });
153 } 158 }
154 159
155 -// Broadcast 160 +// Broadcast yongin
156 function broadcast(){ 161 function broadcast(){
157 162
163 + request.post(yongin_url, function (err, res, body) {
164 +
165 + const $ = cheerio.load(body)
166 + let parentTag = $("div.view_content");
167 +
168 + let resultArr = [];
169 + parentTag.each(function (i, elem) {
170 + let itemObj = {
171 + text: $(this).find("p").text(),
172 + }
173 + resultArr.push(itemObj);
174 + })
175 + var fs = require('fs');
176 + var array = fs.readFileSync('yongin.txt').toString().split("\n");
177 +
158 request.post( 178 request.post(
159 { 179 {
160 url: BROAD_TARGET_URL, 180 url: BROAD_TARGET_URL,
...@@ -165,42 +185,21 @@ function broadcast(){ ...@@ -165,42 +185,21 @@ function broadcast(){
165 "messages":[ 185 "messages":[
166 { 186 {
167 "type":"text", 187 "type":"text",
168 - "text":"Hello, user" 188 + "text":"용인시 확진자의 동선이 공개되었습니다."
169 }, 189 },
170 { 190 {
171 - "type":"text", 191 + "type": "sticker",
172 - "text":"May I help you?" 192 + "packageId": "11539",
193 + "stickerId": "52114110"
173 } 194 }
174 ] 195 ]
175 } 196 }
176 },(error, response, body) => { 197 },(error, response, body) => {
177 console.log(body) 198 console.log(body)
178 }); 199 });
179 -}
180 200
181 -// Multicast User 201 + })
182 -// request.post( 202 +}
183 -// {
184 -// url: MULTI_TARGET_URL,
185 -// headers: {
186 -// 'Authorization': `Bearer ${TOKEN}`
187 -// },
188 -// json: {
189 -// "to": [`${USER_ID}`],
190 -// "messages":[
191 -// {
192 -// "type":"text",
193 -// "text":"용인시"
194 -// },
195 -// {
196 -// "type":"text",
197 -// "text":"용인시"
198 -// }
199 -// ]
200 -// }
201 -// },(error, response, body) => {
202 -// console.log(body)
203 -// });
204 203
205 //reply news 204 //reply news
206 function replyNews(eventObj) { 205 function replyNews(eventObj) {
......