Showing
2 changed files
with
139 additions
and
20 deletions
| ... | @@ -9,6 +9,9 @@ var async = require('async'); | ... | @@ -9,6 +9,9 @@ var async = require('async'); |
| 9 | var crawlReol = require('./crawling/Reol'); | 9 | var crawlReol = require('./crawling/Reol'); |
| 10 | var crawlYonezu = require('./crawling/Yonezu'); | 10 | var crawlYonezu = require('./crawling/Yonezu'); |
| 11 | var crawlYorusika = require('./crawling/Yorusika'); | 11 | var crawlYorusika = require('./crawling/Yorusika'); |
| 12 | +var crawlGuckkasten = require('./crawling/Guckkasten'); | ||
| 13 | +var crawlMot = require('./crawling/Mot'); | ||
| 14 | + | ||
| 12 | var singer; | 15 | var singer; |
| 13 | 16 | ||
| 14 | //body-parser 미들웨어 사용 | 17 | //body-parser 미들웨어 사용 |
| ... | @@ -57,6 +60,19 @@ app.post('/message', function(req,res){ | ... | @@ -57,6 +60,19 @@ app.post('/message', function(req,res){ |
| 57 | callback(null,yorusika); | 60 | callback(null,yorusika); |
| 58 | }); | 61 | }); |
| 59 | break; | 62 | break; |
| 63 | + case 'Guckkasten-Discography': | ||
| 64 | + singer = 'guckkasten'; | ||
| 65 | + crawlGuckkasten.crawl_guckkasten(function (guckkasten) { | ||
| 66 | + callback(null, guckkasten); | ||
| 67 | + }); | ||
| 68 | + break; | ||
| 69 | + case 'Mot-Discography': | ||
| 70 | + singer = 'mot'; | ||
| 71 | + crawlMot.crawl_mot(function (mot) { | ||
| 72 | + callback(null, mot); | ||
| 73 | + }); | ||
| 74 | + break; | ||
| 75 | + | ||
| 60 | default: | 76 | default: |
| 61 | if(singer == 'Reol'){ | 77 | if(singer == 'Reol'){ |
| 62 | crawlReol.crawl_Reol('https://namu.wiki/w/%EB%A0%88%EC%98%A4%EB%A3%A8/%EC%9D%8C%EB%B0%98#toc',function(Reol){ | 78 | crawlReol.crawl_Reol('https://namu.wiki/w/%EB%A0%88%EC%98%A4%EB%A3%A8/%EC%9D%8C%EB%B0%98#toc',function(Reol){ |
| ... | @@ -73,6 +89,16 @@ app.post('/message', function(req,res){ | ... | @@ -73,6 +89,16 @@ app.post('/message', function(req,res){ |
| 73 | callback(null,yorusika); | 89 | callback(null,yorusika); |
| 74 | }); | 90 | }); |
| 75 | } | 91 | } |
| 92 | + else if(singer=='guckkasten'){ | ||
| 93 | + crawlGuckkasten.crawl_guckkasten(function(guckkasten){ | ||
| 94 | + callback(null,guckkasten); | ||
| 95 | + }); | ||
| 96 | + } | ||
| 97 | + else if(singer=='mot'){ | ||
| 98 | + crawlMot.crawl_mot(function (mot) { | ||
| 99 | + callback(null, mot); | ||
| 100 | + }); | ||
| 101 | + } | ||
| 76 | else | 102 | else |
| 77 | callback(null,null); | 103 | callback(null,null); |
| 78 | break; | 104 | break; |
| ... | @@ -83,7 +109,12 @@ app.post('/message', function(req,res){ | ... | @@ -83,7 +109,12 @@ app.post('/message', function(req,res){ |
| 83 | // 사용자의 msg를 받아 res를 보냄 // | 109 | // 사용자의 msg를 받아 res를 보냄 // |
| 84 | 110 | ||
| 85 | function(discography, callback){ | 111 | function(discography, callback){ |
| 86 | - var index = parseInt(msg[0])-1; | 112 | + var index; |
| 113 | + if(msg[1] != '.'){ | ||
| 114 | + index = parseInt(msg[0])*10 + parseInt(msg[1]) -1; | ||
| 115 | + } | ||
| 116 | + else | ||
| 117 | + index = parseInt(msg[0])-1; | ||
| 87 | switch (msg) { | 118 | switch (msg) { |
| 88 | case '일본': | 119 | case '일본': |
| 89 | send = { | 120 | send = { |
| ... | @@ -101,11 +132,11 @@ app.post('/message', function(req,res){ | ... | @@ -101,11 +132,11 @@ app.post('/message', function(req,res){ |
| 101 | case '한국': | 132 | case '한국': |
| 102 | send = { | 133 | send = { |
| 103 | 'message': { | 134 | 'message': { |
| 104 | - 'text': '미구현' | 135 | + 'text': '등록된 가수 목록입니다.' |
| 105 | }, | 136 | }, |
| 106 | keyboard: { | 137 | keyboard: { |
| 107 | 'type': 'buttons', | 138 | 'type': 'buttons', |
| 108 | - 'buttons': ['MOT', 'Gukkasten', 'ZICO'] | 139 | + 'buttons': ['Mot', 'Guckkasten'] |
| 109 | } | 140 | } |
| 110 | }; | 141 | }; |
| 111 | break; | 142 | break; |
| ... | @@ -241,11 +272,77 @@ app.post('/message', function(req,res){ | ... | @@ -241,11 +272,77 @@ app.post('/message', function(req,res){ |
| 241 | 272 | ||
| 242 | }; | 273 | }; |
| 243 | break; | 274 | break; |
| 275 | +//////////////// | ||
| 276 | + // Guckkasten // | ||
| 277 | + //////////////// | ||
| 278 | + case 'Guckkasten': | ||
| 279 | + send = { | ||
| 280 | + 'message': { | ||
| 281 | + 'text': '설명 : 4인조 밴드\n멤버 :\n 하현우(Vocal, Guitar)\n 전규호(Guitar)\n 이정길(Drum)\n 김기범(Bass)\n장르 : 싸이키델릭 록\n데뷔 : 2007년\n소속사 : 인터파크', | ||
| 282 | + 'photo': { | ||
| 283 | + 'url': 'http://ticketimage.interpark.com/interparkenter/guckkasten/about/guckkasten_about_pc_image(540x420px).jpg', | ||
| 284 | + 'width': 540, | ||
| 285 | + 'height': 420 | ||
| 286 | + }, | ||
| 287 | + 'message_button': { | ||
| 288 | + 'label': '공식 홈페이지', | ||
| 289 | + 'url': "http://www.interparkenter.com/guckkasten/Main" | ||
| 290 | + } | ||
| 291 | + }, | ||
| 292 | + keyboard: { | ||
| 293 | + 'type': 'buttons', | ||
| 294 | + 'buttons': ['Guckkasten-Discography'] | ||
| 295 | + } | ||
| 296 | + }; | ||
| 297 | + break; | ||
| 298 | + case 'Guckkasten-Discography': | ||
| 299 | + console.log(discography[0].json_album); | ||
| 300 | + send = { | ||
| 301 | + 'message': { | ||
| 302 | + 'text': 'Album List' | ||
| 303 | + }, | ||
| 304 | + keyboard: { | ||
| 305 | + 'type': 'buttons', | ||
| 306 | + 'buttons': discography[0].json_album | ||
| 307 | + } | ||
| 244 | 308 | ||
| 309 | + }; | ||
| 310 | + break; | ||
| 245 | ///////////// | 311 | ///////////// |
| 246 | - //// MOT //// | 312 | + //// Mot //// |
| 247 | ///////////// | 313 | ///////////// |
| 314 | + case 'Mot': | ||
| 315 | + send = { | ||
| 316 | + 'message': { | ||
| 317 | + 'text': '설명 : 5인조 밴드\n현멤버(3집 이후) :\n 이이언(Vocal)\n 유웅렬(Guitar)\n 조남열(Drum)\n 송인섭(Bass)\n 이하윤(Keyboard)\n구멤버(1, 2집) :\n 이이언(Vocal)\n지이(Guitar)\n장르 : Indie Rock\n 데뷔 : 2007년\n소속사 : 인터파크', | ||
| 318 | + 'photo': { | ||
| 319 | + 'url': 'https://scontent-icn1-1.xx.fbcdn.net/v/t1.0-1/p320x320/31164203_908165976030791_1214044515636084736_n.jpg?_nc_cat=111&_nc_ht=scontent-icn1-1.xx&oh=7da23be5eb9dfcd537287b012f231dbb&oe=5C9B33D0', | ||
| 320 | + 'width': 1000, | ||
| 321 | + 'height': 677 | ||
| 322 | + }, | ||
| 323 | + 'message_button': { | ||
| 324 | + 'label': '공식 Facebook', | ||
| 325 | + 'url': "https://www.facebook.com/bandmot.official" | ||
| 326 | + } | ||
| 327 | + }, | ||
| 328 | + keyboard: { | ||
| 329 | + 'type': 'buttons', | ||
| 330 | + 'buttons': ['Mot-Discography'] | ||
| 331 | + } | ||
| 332 | + }; | ||
| 333 | + break; | ||
| 334 | + case 'Mot-Discography': | ||
| 335 | + send = { | ||
| 336 | + 'message': { | ||
| 337 | + 'text': 'Album List' | ||
| 338 | + }, | ||
| 339 | + keyboard: { | ||
| 340 | + 'type': 'buttons', | ||
| 341 | + 'buttons': discography[0].json_album | ||
| 342 | + } | ||
| 248 | 343 | ||
| 344 | + }; | ||
| 345 | + break; | ||
| 249 | 346 | ||
| 250 | // 앨범 정보 읽기 // | 347 | // 앨범 정보 읽기 // |
| 251 | 348 | ||
| ... | @@ -284,8 +381,30 @@ app.post('/message', function(req,res){ | ... | @@ -284,8 +381,30 @@ app.post('/message', function(req,res){ |
| 284 | } | 381 | } |
| 285 | } | 382 | } |
| 286 | } | 383 | } |
| 384 | + else if (singer == 'guckkasten'){ | ||
| 385 | + send = { | ||
| 386 | + 'message': { | ||
| 387 | + 'text': album + '\n발매년도 : ' + discography[0].json_year[index] + '\n수록곡 : \n' + discography[0].json_track[index] | ||
| 388 | + }, | ||
| 389 | + keyboard: { | ||
| 390 | + 'type': 'buttons', | ||
| 391 | + 'buttons': ['Guckkasten-Discography', '초기화면'] | ||
| 392 | + } | ||
| 393 | + } | ||
| 394 | + } | ||
| 395 | + else if (singer == 'mot'){ | ||
| 396 | + send = { | ||
| 397 | + 'message': { | ||
| 398 | + 'text': album + '\n발매년도 : ' + discography[0].json_year[index] + '\n수록곡 : \n' + discography[0].json_track[index] | ||
| 399 | + }, | ||
| 400 | + keyboard: { | ||
| 401 | + 'type': 'buttons', | ||
| 402 | + 'buttons': ['Mot-Discography', '초기화면'] | ||
| 403 | + } | ||
| 404 | + } | ||
| 405 | + } | ||
| 287 | break; | 406 | break; |
| 288 | - | 407 | + |
| 289 | // 초기 설정으로 돌아가기 // | 408 | // 초기 설정으로 돌아가기 // |
| 290 | 409 | ||
| 291 | case '초기화면' : | 410 | case '초기화면' : | ... | ... |
| ... | @@ -4,30 +4,30 @@ var cheerio = require('cheerio'); | ... | @@ -4,30 +4,30 @@ var cheerio = require('cheerio'); |
| 4 | function crawl_guckkasten(callback){ | 4 | function crawl_guckkasten(callback){ |
| 5 | var n = 0; | 5 | var n = 0; |
| 6 | var guckkasten = []; | 6 | var guckkasten = []; |
| 7 | - crawl(function(album,year,track){ | 7 | + crawl(function(json_album,json_year,json_track){ |
| 8 | n++ | 8 | n++ |
| 9 | if (n == 10) { | 9 | if (n == 10) { |
| 10 | var j; | 10 | var j; |
| 11 | var a, y, t; | 11 | var a, y, t; |
| 12 | - for (var i = 1; i < year.length; i++) { | 12 | + for (var i = 1; i < json_year.length; i++) { |
| 13 | - y = year[i]; | 13 | + y = json_year[i]; |
| 14 | - a = album[i]; | 14 | + a = json_album[i]; |
| 15 | - t = track[i] | 15 | + t = json_track[i] |
| 16 | j = i - 1; | 16 | j = i - 1; |
| 17 | - while (j >= 0 && year[j] > y) { | 17 | + while (j >= 0 && json_year[j] > y) { |
| 18 | - album[j + 1] = album[j]; | 18 | + json_album[j + 1] = json_album[j]; |
| 19 | - year[j + 1] = year[j]; | 19 | + json_year[j + 1] = json_year[j]; |
| 20 | - track[j + 1] = track[j]; | 20 | + json_track[j + 1] = json_track[j]; |
| 21 | j--; | 21 | j--; |
| 22 | } | 22 | } |
| 23 | - album[j + 1] = a; | 23 | + json_album[j + 1] = a; |
| 24 | - year[j + 1] = y; | 24 | + json_year[j + 1] = y; |
| 25 | - track[j + 1] = t; | 25 | + json_track[j + 1] = t; |
| 26 | } | 26 | } |
| 27 | - for(var i = 0; i<album.length; i++){ | 27 | + for(var i = 0; i<json_album.length; i++){ |
| 28 | - album[i] = (i+1)+'. ' +album[i]; | 28 | + json_album[i] = (i+1)+'. ' +json_album[i]; |
| 29 | } | 29 | } |
| 30 | - guckkasten.push(album, year, track); | 30 | + guckkasten.push({json_album, json_year, json_track}); |
| 31 | callback(guckkasten); | 31 | callback(guckkasten); |
| 32 | } | 32 | } |
| 33 | }) | 33 | }) | ... | ... |
-
Please register or login to post a comment