Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Chat_Bot
/
KaKao_ChatBot
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Graphs
Network
Create a new issue
Commits
Issue Boards
Authored by
윤준현
2018-12-04 23:19:54 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
b1cf00a292f56d4b81ed81d3d4181095b8b4b90a
b1cf00a2
1 parent
018d6b6d
add yorusika
success
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
95 additions
and
8 deletions
app.js
crawling/Yonezu.js
crawling/Yorusika.js
app.js
View file @
b1cf00a
...
...
@@ -8,6 +8,7 @@ var async = require('async');
var
crawlReol
=
require
(
'./crawling/Reol'
);
var
crawlYonezu
=
require
(
'./crawling/Yonezu'
);
var
crawlYorusika
=
require
(
'./crawling/Yorusika'
);
var
singer
;
//body-parser 미들웨어 사용
...
...
@@ -51,7 +52,10 @@ app.post('/message', function(req,res){
break
;
case
'ヨルシカ-Discography'
:
singer
=
'yorusika'
;
break
crawlYorusika
.
crawl_yorusika
(
'http://yorushika.com/discography/'
,
function
(
yorusika
){
callback
(
null
,
yorusika
);
});
break
;
default
:
if
(
singer
==
'Reol'
){
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
){
...
...
@@ -64,7 +68,9 @@ app.post('/message', function(req,res){
});
}
else
if
(
singer
==
'yorusika'
){
crawlYorusika
.
crawl_yorusika
(
'http://yorushika.com/discography/'
,
function
(
yorusika
){
callback
(
null
,
yorusika
);
});
}
else
callback
(
null
,
null
);
...
...
@@ -124,7 +130,16 @@ app.post('/message', function(req,res){
case
'Reol-Discography'
:
send
=
{
'message'
:
{
'text'
:
'앨범 목록입니다.'
'text'
:
'Album List'
,
'photo'
:
{
'url'
:
'https://yt3.ggpht.com/a-/AN66SAydQt1STVdFCVvwEyZitr-v4dNGDKdyIt-oSA=s288-mo-c-c0xffffffff-rj-k-no'
,
'width'
:
300
,
'height'
:
300
},
'message_button'
:
{
'label'
:
'Youtube channel Link'
,
'url'
:
"https://www.youtube.com/channel/UCB6pJFaFByws3dQj4AdLdyA/"
}
},
keyboard
:
{
'type'
:
'buttons'
,
...
...
@@ -138,7 +153,7 @@ app.post('/message', function(req,res){
'message'
:
{
'text'
:
'이름 : 米津玄師(Yonezu Kenshi) \n성별 : 남성 \n생년월일 : 1991년 3월 10일 \n혈액형 : O형'
,
'photo'
:
{
'url'
:
'http
://reissuerecords.net/rr/wp-content/uploads/flamingo_photo2.jpg
'
,
'url'
:
'http
s://s3.namuwikiusercontent.com/s/5f35be0c28de612d20eccea8c795cee38eea58700af4723f6920fc00b48c491ae5e89572e7bcb5ab2e2eb37aa6c498dbc3f4896239d3f98e4794c9b1ec96031c43d77090d83f00ba5b7d65e566f415af055f79a8059dd2f6b1f36f0f8e742f9d
'
,
'width'
:
1000
,
'height'
:
667
},
...
...
@@ -156,7 +171,16 @@ app.post('/message', function(req,res){
case
'米津玄師-Discography'
:
send
=
{
'message'
:
{
'text'
:
'Album List'
'text'
:
'Album List'
,
'photo'
:
{
'url'
:
'https://yt3.ggpht.com/a-/AN66SAwKDZ2RTvreg5m1Ub6Wd6glpKCYMGrVG4mpqw=s288-mo-c-c0xffffffff-rj-k-no'
,
'width'
:
300
,
'height'
:
300
},
'message_button'
:
{
'label'
:
'Youtube channel Link'
,
'url'
:
"https://www.youtube.com/channel/UCUCeZaZeJbEYAAzvMgrKOPQ/"
}
},
keyboard
:
{
'type'
:
'buttons'
,
...
...
@@ -188,11 +212,20 @@ app.post('/message', function(req,res){
case
'ヨルシカ-Discography'
:
send
=
{
'message'
:
{
'text'
:
'Album List'
'text'
:
'Album List'
,
'photo'
:
{
'url'
:
'https://yt3.ggpht.com/a-/AN66SAzKliDeZQJhb9JshzY4hJY_pJSbM1gfYoqY=s288-mo-c-c0xffffffff-rj-k-no'
,
'width'
:
300
,
'height'
:
300
},
'message_button'
:
{
'label'
:
'Youtube channel Link'
,
'url'
:
"https://www.youtube.com/channel/UCRIgIJQWuBJ0Cv_VlU3USNA"
}
},
keyboard
:
{
'type'
:
'buttons'
,
'buttons'
:
[
'ㅁ'
]
'buttons'
:
discography
[
0
].
json_album
}
};
...
...
crawling/Yonezu.js
View file @
b1cf00a
...
...
@@ -10,10 +10,13 @@ function crawl_yonezu(url, callback){
const
$
=
cheerio
.
load
(
body
);
var
kenshi
=
$
(
'body > div.content-wrapper > article > div.wiki-content.clearfix > div'
)
var
index
;
var
album_num
=
0
;
for
(
var
i
=
1
;
i
<=
$
(
'.toc-item'
).
length
;
i
++
)
{
album
=
$
(
kenshi
).
find
(
'#toc > div > div:nth-child(5) > div:nth-child(5) > span:nth-child('
+
i
+
')'
).
text
()
//앨범 정보 가져오기
if
(
album
!=
''
)
{
json_album
.
push
(
album
.
substr
(
7
));
album_num
++
album
=
album_num
+
'.'
+
album
.
substr
(
14
)
json_album
.
push
(
album
);
}
index
=
40
+
i
*
2
;
...
...
crawling/Yorusika.js
0 → 100644
View file @
b1cf00a
var
request
=
require
(
'request'
);
var
cheerio
=
require
(
'cheerio'
);
function
crawl_yorusika
(
url
,
callback
){
let
json_album
=
[],
json_year
=
[],
json_track
=
[],
json_image
=
[];
let
yorusika
=
[];
var
track
;
var
year
;
request
(
url
,
function
(
err
,
res
,
body
)
{
const
$
=
cheerio
.
load
(
body
);
var
index
;
var
album_num
=
0
;
console
.
log
(
$
(
'.discography_contents'
).
length
);
for
(
var
i
=
$
(
'.discography_contents'
).
length
;
i
>=
1
;
i
--
)
{
year
=
$
(
'body > article > section > div > div:nth-child('
+
i
+
') > div.discography_text > div.discography_date'
).
text
();
year
=
year
.
substr
(
0
,
year
.
length
-
7
);
json_year
.
push
(
year
);
if
(
i
==
3
){
track
=
$
(
'body > article > section > div > div:nth-child('
+
i
+
') > div.discography_text > div.discography_description'
).
text
();
track
=
track
.
substr
(
6
);
track
=
track
.
substr
(
0
,
track
.
length
-
22
);
}
else
{
track
=
$
(
'body > article > section > div > div:nth-child('
+
i
+
') > div.discography_text > div.discography_description'
).
text
();
track
=
track
.
substr
(
6
);
track
=
track
.
substr
(
0
,
track
.
length
-
7
);
}
json_track
.
push
(
track
);
var
check
=
false
album_num
++
;
var
album_name
=
''
;
album
=
$
(
'body > article > section > div > div:nth-child('
+
i
+
') > div.discography_text > div.discography_title'
).
text
();
for
(
var
j
=
0
;
j
<
album
.
length
;
j
++
){
if
(
album
[
j
]
==
'「'
)
check
=
true
;
if
(
check
==
true
)
album_name
+=
album
[
j
];
}
album_name
=
album_num
+
'. '
+
album_name
json_album
.
push
(
album_name
);
}
yorusika
.
push
({
json_album
,
json_year
,
json_track
});
callback
(
yorusika
);
});
}
exports
.
crawl_yorusika
=
crawl_yorusika
;
\ No newline at end of file
Please
register
or
login
to post a comment