이진아

파일 분리!

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('/');
})
//--------------------------------------------------------------------------------------------------------
allWebtoons4 = new Array();
function getAllToons4() {
allWebtoonList4 = new Array();
//현재 상영작 좋아요 순
const currentlikemovie = 'https://movie.naver.com/movie/running/current.nhn?view=list&tab=normal&order=likeCount';
axios.get(currentlikemovie).then(res => {
if (res.status === 200) {
let currentLikeMovie = [];
const $ = cheerio.load(res.data);
const $movieList = $('div.lst_wrap ul.lst_detail_t1').children('li');
$movieList.each(function (i) {
currentLikeMovie[i] = {
title: $(this).find('dt.tit a').text(),
img: $(this).find('div.thumb img').attr('src')
//개봉예정작에선 star가 없음
//star: $(this).find('em.num_likeit').text().replace(/\t/gi, '').replace(/\n/gi,'')
};
});
const data = currentLikeMovie.filter(m => m.title);
allWebtoonList4.push(data);
//console.log(data);
}
}, (error) => console.log(error));
//현재 상영작 예매 순
const runningreserve = 'https://movie.naver.com/movie/running/current.nhn?view=list&tab=normal&order=reserve';
axios.get(runningreserve).then(res => {
if (res.status === 200) {
let crawledMovie = [];
const $ = cheerio.load(res.data);
const $movieList = $('div.lst_wrap ul.lst_detail_t1').children('li');
$movieList.each(function (i) {
crawledMovie[i] = {
title: $(this).find('dt.tit a').text(),
img: $(this).find('div.thumb img').attr('src')
};
});
const data = crawledMovie.filter(m => m.title);
allWebtoonList4.push(data);
//console.log(data);
}
}, (error) => console.log(error));
//개봉 예정영화 기대지수순
const premovieinterest = 'https://movie.naver.com/movie/running/premovie.nhn?order=interestRate';
axios.get(premovieinterest).then(res => {
if (res.status === 200) {
let crawledMovie = [];
const $ = cheerio.load(res.data);
const $movieList = $('div.lst_wrap ul.lst_detail_t1').children('li');
$movieList.each(function (i) {
crawledMovie[i] = {
title: $(this).find('dt.tit a').text(),
img: $(this).find('div.thumb img').attr('src')
};
});
const data = crawledMovie.filter(m => m.title);
allWebtoonList4.push(data);
//console.log(data);
}
}, (error) => console.log(error));
//계봉 예정영화 예매순
const prereserve = 'https://movie.naver.com/movie/running/premovie.nhn?order=reserve';
axios.get(prereserve).then(res => {
if (res.status === 200) {
let crawledMovie = [];
const $ = cheerio.load(res.data);
const $movieList = $('div.lst_wrap ul.lst_detail_t1').children('li');
$movieList.each(function (i) {
crawledMovie[i] = {
title: $(this).find('dt.tit a').text(),
img: $(this).find('div.thumb img').attr('src')
};
});
const data = crawledMovie.filter(m => m.title);
allWebtoonList4.push(data);
//console.log(data);
}
}, (error) => console.log(error));
allWebtoons4 = allWebtoonList4;
}
getAllToons4();
setInterval(getAllToons4,5*60*1000);
/* GET home page. */
//진아 : list :allWebtoons2.3 해도 되는지??!!
router.get('/',
function(req,res,next){
if(req.isAuthenticated()){
res.redirect('/mytoons');
console.log("(!)이미 로그인");
}else{
console.log("(!)로그인세션 없음");
res.render('index',{
title: "니툰내툰",
list: allWebtoons4
});
}
});
module.exports = router;