은승우

Update app.js

Showing 1 changed file with 59 additions and 0 deletions
...@@ -86,6 +86,65 @@ function handleEvent(event) { ...@@ -86,6 +86,65 @@ function handleEvent(event) {
86 // ignore non-text-message event 86 // ignore non-text-message event
87 return Promise.resolve(null); 87 return Promise.resolve(null);
88 } 88 }
89 + else if (event.type == 'message'&& event.message.type == "text"&&event.message.text.indexOf('http')!=-1) {
90 + return new Promise(async(resolve,reject)=>{
91 + var cheerio = require('cheerio');
92 + var uriBase = 'https://koreacentral.api.cognitive.microsoft.com/vision/v2.1/ocr';
93 + var imageUrl=event.message.text;
94 + var options = {
95 + uri: uriBase,
96 + qs: {
97 + 'language': 'unk',
98 + 'detectOrientation': 'true',
99 + },
100 + headers: {
101 + 'Content-Type': 'application/json',
102 + 'Ocp-Apim-Subscription-Key': '979dc5d63344438fa4701c62feebb7dc'
103 + },
104 + body:'{"url": ' + '"' + imageUrl + '"}',
105 + };
106 +
107 + request.post(options, function (error, response, body) {
108 + var data=JSON.stringify(body);
109 + var text='';
110 + while(data.indexOf('text\\')!=-1)
111 + {
112 + data=data.substring(data.indexOf('text\\')+9);
113 + text+=data.substring(0,data.indexOf("\\"))+" ";
114 + }
115 + text=text.substring(text.length/10+1,text.length/8+2);
116 + console.log(text);
117 + var url="https://www.genie.co.kr/search/searchLyrics?query="+text;
118 + request(url, function(error, response, html)
119 + {
120 + console.log(url);
121 + var $ = cheerio.load(html);
122 + const $bodyList= $('#body-content > div.search_lyrics > div.music-list-wrap.type-lyrics > table > tbody > tr');
123 +
124 + var songList=[];
125 + $bodyList.each(function(i, elem){
126 + if(i<20){
127 + songList.push({
128 + singer: $(this).find("td.info").find("a.artist.ellipsis").text().trim(),
129 + song: $(this).find("td.info").find("a.title.ellipsis").text().trim(),
130 + });
131 +
132 + }
133 + })
134 + var resultm='';
135 + for(var i=0;i<songList.length;i++){
136 + if(songList[i].singer!=''){
137 + resultm+=songList[i].singer+", "+songList[i].song+"\n";
138 + }
139 + }
140 + var result = { type: 'text', text:resultm};
141 + client.replyMessage(event.replyToken,result).then(resolve).catch(reject);
142 +
143 + });
144 + });
145 + });
146 +
147 + }
89 return new Promise(function(resolve, reject) { 148 return new Promise(function(resolve, reject) {
90 //언어 감지 option 149 //언어 감지 option
91 var detect_options = { 150 var detect_options = {
......