권은령

update app.js

...@@ -86,7 +86,7 @@ function handleEvent(event) { ...@@ -86,7 +86,7 @@ function handleEvent(event) {
86 return; 86 return;
87 } 87 }
88 }); 88 });
89 - 89 +
90 return new Promise(function(resolve, reject) 90 return new Promise(function(resolve, reject)
91 { 91 {
92 var result = { type: 'text', text:''}; 92 var result = { type: 'text', text:''};
...@@ -125,7 +125,7 @@ function handleEvent(event) { ...@@ -125,7 +125,7 @@ function handleEvent(event) {
125 125
126 console.log(songList[userNum].song); 126 console.log(songList[userNum].song);
127 console.log(lyric); 127 console.log(lyric);
128 - 128 +
129 //papago 언어 감지 129 //papago 언어 감지
130 request.post(detect_options, (error,response,body)=> 130 request.post(detect_options, (error,response,body)=>
131 { 131 {
...@@ -135,10 +135,10 @@ function handleEvent(event) { ...@@ -135,10 +135,10 @@ function handleEvent(event) {
135 var source = ''; 135 var source = '';
136 var target = ''; 136 var target = '';
137 var result = { type: 'text', text:''}; 137 var result = { type: 'text', text:''};
138 - 138 +
139 //언어 감지가 제대로 됐는지 확인 139 //언어 감지가 제대로 됐는지 확인
140 console.log(detect_body.langCode); 140 console.log(detect_body.langCode);
141 - 141 +
142 //번역은 한국어->영어 / 영어->한국어만 지원 142 //번역은 한국어->영어 / 영어->한국어만 지원
143 if(detect_body.langCode == 'ko'||detect_body.langCode == 'en') 143 if(detect_body.langCode == 'ko'||detect_body.langCode == 'en')
144 { 144 {
...@@ -151,7 +151,7 @@ function handleEvent(event) { ...@@ -151,7 +151,7 @@ function handleEvent(event) {
151 form: {'source':source, 'target':target, 'text': lyric}, 151 form: {'source':source, 'target':target, 'text': lyric},
152 headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret} 152 headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret}
153 }; 153 };
154 - 154 +
155 // Naver Post API 155 // Naver Post API
156 request.post(options, function(error, response, body){ 156 request.post(options, function(error, response, body){
157 // Translate API Sucess 157 // Translate API Sucess
...@@ -159,7 +159,7 @@ function handleEvent(event) { ...@@ -159,7 +159,7 @@ function handleEvent(event) {
159 // JSON 159 // JSON
160 var objBody = JSON.parse(response.body); 160 var objBody = JSON.parse(response.body);
161 // Message 잘 찍히는지 확인 161 // Message 잘 찍히는지 확인
162 - 162 +
163 result.text = objBody.message.result.translatedText; 163 result.text = objBody.message.result.translatedText;
164 console.log("result: "+result.text); 164 console.log("result: "+result.text);
165 //번역된 문장 보내기 165 //번역된 문장 보내기
...@@ -183,7 +183,7 @@ function handleEvent(event) { ...@@ -183,7 +183,7 @@ function handleEvent(event) {
183 }); 183 });
184 } 184 }
185 else if (event.message.text.indexOf('http')!=-1) { 185 else if (event.message.text.indexOf('http')!=-1) {
186 - return new Promise(async(resolve,reject)=>{ 186 + return new Promise(async(resolve,reject)=>{
187 var uriBase = 'https://koreacentral.api.cognitive.microsoft.com/vision/v2.1/ocr'; 187 var uriBase = 'https://koreacentral.api.cognitive.microsoft.com/vision/v2.1/ocr';
188 var imageUrl=event.message.text; 188 var imageUrl=event.message.text;
189 var options = { 189 var options = {
...@@ -198,9 +198,9 @@ function handleEvent(event) { ...@@ -198,9 +198,9 @@ function handleEvent(event) {
198 }, 198 },
199 body:'{"url": ' + '"' + imageUrl + '"}', 199 body:'{"url": ' + '"' + imageUrl + '"}',
200 }; 200 };
201 - 201 +
202 request.post(options, function (error, response, body) { 202 request.post(options, function (error, response, body) {
203 - var data=JSON.stringify(body); 203 + var data=JSON.stringify(body);
204 console.log(data); 204 console.log(data);
205 var text=''; 205 var text='';
206 while(data.indexOf('text\\')!=-1) 206 while(data.indexOf('text\\')!=-1)
...@@ -218,7 +218,7 @@ function handleEvent(event) { ...@@ -218,7 +218,7 @@ function handleEvent(event) {
218 console.log(url); 218 console.log(url);
219 var $ = cheerio.load(html); 219 var $ = cheerio.load(html);
220 const $bodyList= $('#body-content > div.search_lyrics > div.music-list-wrap.type-lyrics > table > tbody > tr'); 220 const $bodyList= $('#body-content > div.search_lyrics > div.music-list-wrap.type-lyrics > table > tbody > tr');
221 - 221 +
222 var songs=[]; 222 var songs=[];
223 $bodyList.each(function(i, elem){ 223 $bodyList.each(function(i, elem){
224 if(i<20){ 224 if(i<20){
...@@ -226,7 +226,7 @@ function handleEvent(event) { ...@@ -226,7 +226,7 @@ function handleEvent(event) {
226 singer: $(this).find("td.info").find("a.artist.ellipsis").text().trim(), 226 singer: $(this).find("td.info").find("a.artist.ellipsis").text().trim(),
227 song: $(this).find("td.info").find("a.title.ellipsis").text().trim(), 227 song: $(this).find("td.info").find("a.title.ellipsis").text().trim(),
228 }); 228 });
229 - 229 +
230 } 230 }
231 }) 231 })
232 console.log(songs); 232 console.log(songs);
...@@ -246,6 +246,60 @@ function handleEvent(event) { ...@@ -246,6 +246,60 @@ function handleEvent(event) {
246 }); 246 });
247 }); 247 });
248 } 248 }
249 + else if(event.message.text.substring(0,6)=='콘서트 보기'||event.message.text.substring(0,5)=='콘서트보기'){
250 +
251 + return new Promise(function(resolve, reject)
252 + {
253 + var showlist = { type: 'text', text:''};
254 + for(var i = 0; i < concert_list.length; i++)
255 + {
256 + showlist.text+=i+1 + ". " + concert_list[i] + "\n";
257 + }
258 + console.log(showlist.text);
259 +
260 + client.replyMessage(event.replyToken, showlist).then(resolve).catch(reject);
261 + });
262 + }
263 +
264 + else if(0 < event.message.text.substr(0,2)*1 && event.message.text.substr(0,2)*1 < 27){
265 +
266 + var selectnum = (event.message.text.substr(0,2)*1);
267 + var result = { type: 'text', text:''};
268 + console.log(selectnum);
269 + if(selectnum <=0 || selectnum >=27){
270 + result.text = '목록에 존재하지 않는 콘서트입니다.';
271 + return ;
272 + }
273 +
274 + return new Promise(function(resolve, reject){
275 + var concert_name = concert_list[selectnum-1];
276 + var $ = cheerio.load(concert_name);
277 + var keyword = $.text();
278 + console.log(keyword);
279 +
280 + var options = {method: 'GET',
281 + url: 'https://www.googleapis.com/youtube/v3/search',
282 + qs: { key: 'AIzaSyB4b-n8SSv73CLDKvFigpLPYA6yWG2JQ9A',
283 + part: 'id',
284 + maxResults: '1',
285 + order: 'relevance',
286 + q: keyword,
287 + type: 'video'}
288 + };
289 +
290 +
291 + request(options, function(error,result,body){
292 + if(error) throw new Error(error);
293 + var videourl = { type: 'text', text:''};
294 +
295 + var temp1 = body.split(':');
296 + videourl.text += "https://www.youtube.com/watch?v=" + temp1[13].substr(2,11);
297 +
298 + console.log(videourl.text);
299 + client.replyMessage(event.replyToken, videourl).then(resolve).catch(reject);
300 + });
301 + });
302 + }
249 else{ 303 else{
250 return new Promise(function(resolve, reject) { 304 return new Promise(function(resolve, reject) {
251 //언어 감지 option 305 //언어 감지 option
...@@ -312,4 +366,4 @@ function handleEvent(event) { ...@@ -312,4 +366,4 @@ function handleEvent(event) {
312 366
313 app.get('/',(req,res)=>{ 367 app.get('/',(req,res)=>{
314 res.send("hello"); 368 res.send("hello");
315 -})
...\ No newline at end of file ...\ No newline at end of file
369 +})
......
This diff could not be displayed because it is too large.