wnwnw

완결웹툰 배열 통합

......@@ -68,6 +68,783 @@ function getLatestToon(titleid, day ,cb) {
function getAllToons() {
allWebtoonList = new Array();
//다음 연재완료 웹툰
var daum = 'http://webtoon.daum.net/data/pc/webtoon/list_finished/?genre_id=&timeStamp=1575275921086';
var site = 'daum';
client.fetch(daum, {}, function (err, $, res, body) {
var p = Promise.resolve();
var data = JSON.parse(body);
var list = data["data"];
list.forEach(function (item, idx) {
var webtoon_link = 'http://webtoon.daum.net/webtoon/view/' + item.nickname.toString();
var yyyy = (item.finishDate).substring(0,4)
var site='daum';
var week='finished';
var webtoon = {
toon_index : item.id,
name: item.title,
thum_link: item.pcThumbnailImage.url,
webtoon_link: webtoon_link,
week:week,
//year : yyyy,
site : site,
latest:0
}
allWebtoonList.push(webtoon);
});
});
const naver2019 = 'https://comic.naver.com/webtoon/period.nhn?period=2019';
var site='naver';
axios.get(naver2019).then(res => {
if (res.status === 200) {
let naver2019 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2019;
var week='finished'
$toonList.each(function (i) {
naver2019[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2019[i]);
});
//const data = naver2019.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2018 = 'https://comic.naver.com/webtoon/period.nhn?period=2018';
axios.get(naver2018).then(res => {
if (res.status === 200) {
let naver2018 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2018;
var week='finished'
$toonList.each(function (i) {
naver2018[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2018[i]);
});
//const data = naver2018.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2017 = 'https://comic.naver.com/webtoon/period.nhn?period=2017';
axios.get(naver2017).then(res => {
if (res.status === 200) {
let naver2017 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2017;
var week='finished'
$toonList.each(function (i) {
naver2017[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2017[i]);
});
//const data = naver2017.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2016 = 'https://comic.naver.com/webtoon/period.nhn?period=2016';
axios.get(naver2016).then(res => {
if (res.status === 200) {
let naver2016 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2016;
var week='finished'
$toonList.each(function (i) {
naver2016[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2016[i]);
});
//const data = naver2016.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2015 = 'https://comic.naver.com/webtoon/period.nhn?period=2015';
axios.get(naver2015).then(res => {
if (res.status === 200) {
let naver2015 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2015;
var week='finished'
$toonList.each(function (i) {
naver2015[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2015[i]);
});
//const data = naver2015.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2014 = 'https://comic.naver.com/webtoon/period.nhn?period=2014';
axios.get(naver2014).then(res => {
if (res.status === 200) {
let naver2014 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2014;
var week='finished'
$toonList.each(function (i) {
naver2014[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2014[i]);
});
//const data = naver2014.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2013 = 'https://comic.naver.com/webtoon/period.nhn?period=2013';
axios.get(naver2013).then(res => {
if (res.status === 200) {
let naver2013 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2013;
var week='finished'
$toonList.each(function (i) {
naver2013[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2013[i]);
});
//const data = naver2013.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2012 = 'https://comic.naver.com/webtoon/period.nhn?period=2012';
axios.get(naver2012).then(res => {
if (res.status === 200) {
let naver2012 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2012;
var week='finished'
$toonList.each(function (i) {
naver2012[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2012[i]);
});
//const data = naver2012.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2011 = 'https://comic.naver.com/webtoon/period.nhn?period=2011';
axios.get(naver2011).then(res => {
if (res.status === 200) {
let naver2011 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2011;
var week='finished'
$toonList.each(function (i) {
naver2011[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2011[i]);
});
//const data = naver2011.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2010 = 'https://comic.naver.com/webtoon/period.nhn?period=2010';
axios.get(naver2010).then(res => {
if (res.status === 200) {
let naver2010 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2010;
var week='finished'
$toonList.each(function (i) {
naver2010[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2010[i]);
});
//const data = naver2010.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2009 = 'https://comic.naver.com/webtoon/period.nhn?period=2009';
axios.get(naver2009).then(res => {
if (res.status === 200) {
let naver2009 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2009;
var week='finished'
$toonList.each(function (i) {
naver2009[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2009[i]);
});
//const data = naver2009.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2008 = 'https://comic.naver.com/webtoon/period.nhn?period=2008';
axios.get(naver2008).then(res => {
if (res.status === 200) {
let naver2008 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2008;
var week='finished'
$toonList.each(function (i) {
naver2008[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2008[i]);
});
//const data = naver2008.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2007 = 'https://comic.naver.com/webtoon/period.nhn?period=2007';
axios.get(naver2007).then(res => {
if (res.status === 200) {
let naver2007 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2007;
var week='finished'
$toonList.each(function (i) {
naver2007[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2007[i]);
});
//const data = naver2007.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2006 = 'https://comic.naver.com/webtoon/period.nhn?period=2006';
axios.get(naver2006).then(res => {
if (res.status === 200) {
let naver2006 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2006;
var week='finished'
$toonList.each(function (i) {
naver2006[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2006[i]);
});
//const data = naver2006.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
}, (error) => console.log(error));
const naver2005 = 'https://comic.naver.com/webtoon/period.nhn?period=2005';
axios.get(naver2005).then(res => {
var p = Promise.resolve();
if (res.status === 200) {
let naver2005 = [];
const $ = cheerio.load(res.data);
const $toonList = $('#content > div.list_area.daily_img > ul > li');
var tn = 2005;
var week='finished'
$toonList.each(function (i) {
naver2005[i] = {
toon_index : $(this).find('li > div > a').attr('href').split('=')[1],
name : $(this).find('dl > dt > a').text(),
thumb_link: $(this).find('div > a > img').attr('src'),
webtoon_link: "http://comic.naver.com"+$(this).find('li > div > a').attr('href'),
week : week,
//year : tn,
site : site,
latest : 0
};
allWebtoonList.push(naver2005[i]);
});
//const data = naver2005.filter(m => m.title);
//allWebtoonList3.push(data);
//console.log(allWebtoonList3)
}
})
}
//월요일 다음 웹툰
var mon='mon';
var mon_name='MON';
var daum = `http://webtoon.daum.net/data/pc/webtoon/list_serialized/mon?timeStamp=1575877780449`;
var site = 'daum';
client.fetch(daum, {}, function (err, $, res, body) {
var data = JSON.parse(body);
var list = data["data"];
list.forEach(function (item, idx) {
var webtoon_link = 'http://webtoon.daum.net/webtoon/view/' + item.nickname.toString();
var webtoon = {
toon_index: item.id,
name: item.title,
thum_link: item.pcThumbnailImage.url,
webtoon_link: webtoon_link,
week :mon_name,
site: site,
latest: 0
};
allWebtoonList.push(webtoon);
});
});
//화요일 다음 웹툰
var tue='tue';
var tue_name='TUE';
var daum1 = `http://webtoon.daum.net/data/pc/webtoon/list_serialized/tue?timeStamp=1575877814179`;
client.fetch(daum1, {}, function (err, $, res, body) {
var data = JSON.parse(body);
var list = data["data"];
list.forEach(function(item, idx){
var webtoon_link='http://webtoon.daum.net/webtoon/view/'+item.nickname.toString();
var webtoon= {
toon_index: item.id,
name : item.title,
thum_link : item.pcThumbnailImage.url,
webtoon_link : webtoon_link,
week : tue_name,
site : site,
latest : 0
};
allWebtoonList.push(webtoon);
});
});
//수요일 다음 웹툰
var wed='wed';
var wed_name='WED';
var daum2 = `http://webtoon.daum.net/data/pc/webtoon/list_serialized/wed?timeStamp=1575877833390`;
client.fetch(daum2, {}, function (err, $, res, body) {
var data = JSON.parse(body);
var list = data["data"];
list.forEach(function(item, idx){
var webtoon_link='http://webtoon.daum.net/webtoon/view/'+item.nickname.toString();
var webtoon= {
toon_index: item.id,
name : item.title,
thum_link : item.pcThumbnailImage.url,
webtoon_link : webtoon_link,
week : wed_name,
site : site,
latest : 0
};
allWebtoonList.push(webtoon);
});
});
//목요일 다음 웹툰
var thu='thu';
var daum3 =`http://webtoon.daum.net/data/pc/webtoon/list_serialized/thu?timeStamp=1575877858989`;
var thu_name='THU';
client.fetch(daum3, {}, function (err, $, res, body) {
var data = JSON.parse(body);
var list = data["data"];
list.forEach(function(item, idx){
var webtoon_link='http://webtoon.daum.net/webtoon/view/'+item.nickname.toString();
var webtoon= {
toon_index: item.id,
name : item.title,
thum_link : item.pcThumbnailImage.url,
webtoon_link : webtoon_link,
week : thu_name,
site : site,
latest : 0
};
allWebtoonList.push(webtoon);
});
});
//금요일 다음 웹툰
var fri='fri';
var daum4 =`http://webtoon.daum.net/data/pc/webtoon/list_serialized/fri?timeStamp=1575877889317`;
var fri_name='FRI';
client.fetch(daum4, {}, function (err, $, res, body) {
var data = JSON.parse(body);
var list = data["data"];
list.forEach(function(item, idx){
var webtoon_link='http://webtoon.daum.net/webtoon/view/'+item.nickname.toString();
var webtoon= {
toon_index: item.id,
name : item.title,
thum_link : item.pcThumbnailImage.url,
webtoon_link : webtoon_link,
week : fri_name,
site : site,
latest : 0
};
allWebtoonList.push(webtoon);
});
});
//토요일 다음 웹툰
var sat='sat';
var daum5 =`http://webtoon.daum.net/data/pc/webtoon/list_serialized/sat?timeStamp=1575877911857`;
var sat_name='SAT';
client.fetch(daum5, {}, function (err, $, res, body) {
var data = JSON.parse(body);
var list = data["data"];
list.forEach(function(item, idx){
var webtoon_link='http://webtoon.daum.net/webtoon/view/'+item.nickname.toString();
var webtoon= {
toon_index: item.id,
name : item.title,
thum_link : item.pcThumbnailImage.url,
webtoon_link : webtoon_link,
week : sat_name,
site : site,
latest : 0
};
allWebtoonList.push(webtoon);
});
});
//일요일 다음 웹툰
var sun='sun';
var daum6 = `http://webtoon.daum.net/data/pc/webtoon/list_serialized/sun?timeStamp=1575877949212`;
var sun_name='SUN';
client.fetch(daum6, {}, function (err, $, res, body) {
var data = JSON.parse(body);
var list = data["data"];
list.forEach(function(item, idx){
//다음 웹툰 아이디, 제목, 요일
var webtoon_link='http://webtoon.daum.net/webtoon/view/'+item.nickname.toString();
var webtoon= {
toon_index: item.id,
name : item.title,
thum_link : item.pcThumbnailImage.url,
webtoon_link : webtoon_link,
week : sun_name,
site : site,
latest : 0
};
allWebtoonList.push(webtoon);
});
});
//네이버 웹툰
var allWeeklyToonsUrl = "http://comic.naver.com/webtoon/weekday.nhn";
request(allWeeklyToonsUrl,function (err, res, html) {
if(!err){
var $ = cheerio.load(html);
var p = Promise.resolve();
var eachs = $(".thumb").each(function (i) {
var week = $(this).parent().parent().prev().attr('class');
var webtoon_link = "http://comic.naver.com" + $(this).children().first().attr('href');
var thumb_link = $(this).children().first().children().first().attr('src');
var name = $(this).next().text();
var titleid = webtoon_link.split('?')[1].split('&')[0].split('=')[1];
var site = 'naver';
var webtoon= {
toon_index: titleid,
name : name,
thum_link : thumb_link,
webtoon_link : webtoon_link,
week : week,
site : site,
latest : 0
};
allWebtoonList.push(webtoon);
});
p.then(function() {
i = 0;
allWebtoonList.forEach(function (webtoon) {
var sql= "INSERT INTO `toon` (toon_index, name, thum_link, webtoon_link, week, site, latest) VALUES(?) ON DUPLICATE KEY UPDATE latest=latest";
var values=[webtoon.toon_index, webtoon.name, webtoon.thum_link, webtoon.webtoon_link,webtoon.week, webtoon.site, webtoon.latest];
connection.query(sql,[values],function(err,result){
if (err) {
console.log("웹툰 DB 에러 : " + err);
} else {
// console.log("웹툰 DB처리 완료!");
}
});
//});
})
});
}
allWebtoons = allWebtoonList;
});
getAllToons();
//처음 한번 수행
setInterval(getAllToons,5*60*1000);
//5분에 한번 수행
/* GET home page. */
router.get('/',
function(req,res,next){
if(req.isAuthenticated()){
res.redirect('/mytoons');
console.log("(!)이미 로그인");
}else{
console.log("(!)로그인세션 없음");
res.render('index',{
title: "니툰내툰",
list: allWebtoons
});
}
});
module.exports = router;
var express = require('express');
var cheerio = require('cheerio');
var request = require('request');
const axios = require('axios');
//axios 추가 설치된거 확인하기
var router = express.Router();
var mysql = require('mysql');
var client = require('cheerio-httpcli');
var passport = require('passport'),
KakaoStrategy = require('passport-kakao').Strategy;
passport.use(new KakaoStrategy({
clientID : 'bd2e610396fb7bbb84cf91a786b3cc72',
callbackURL :'/auth/login/kakao/callback',
clientSecret : 'eUtJGtlLoCZJufevp3LKfDP0KOtZUV7R'
},
function(accessToken, refreshToken,params, profile, done){
//사용자 정보는 profile에
loginByThirdparty(accessToken, refreshToken, profile);
console.log("(!)로그인 : " + profile._json.id+"("+profile._json.properties.nickname +")");
//return done(null,profile)
return done(null, {
'user_id': profile._json.id,
'nickname': profile._json.properties.nickname
});
}
));
// kakao 로그인
router.get('/auth/login/kakao',
// passport.authenticate('kakao',{state: "myStateValue"})
passport.authenticate('kakao')
);
// kakao 로그인 연동 콜백
router.get('/auth/login/kakao/callback',
passport.authenticate('kakao', {
//session: false,
successRedirect: '/mytoons',
failureRedirect: '/'
})
);
function loginByThirdparty(accessToken, refreshToken, profile) {
//예전 코드는 MySQL 버젼이 맞지 않음
// var sql = 'INSERT INTO `user`(id) VALUES(?) ON DUPLICATE KEY(PRIMARY) UPDATE id=(?);'
var sql = "INSERT INTO `user` (id) VALUES (?) ON DUPLICATE KEY UPDATE id=id";
var kid=[profile._json.id];
connection.query(sql,kid,function(err,result){
if (err) {
console.log("로그인 쿼리중 에러 : " + err);
} else {
console.log("로그인 DB처리 완료!");
}
});
}
router.get('/auth/logout/kakao',function (req,res) {
req.logout();
res.redirect('/');
})
allWebtoons = new Array();
function getLatestToon(titleid, day ,cb) {
}
function getAllToons() {
allWebtoonList = new Array();
//월요일 다음 웹툰
var mon='mon';
var mon_name='MON';
......