강현태

웹툰 보기 링크 추가.

This diff is collapsed. Click to expand it.
...@@ -14,6 +14,7 @@ var mytoons = require('./routes/mytoons'); ...@@ -14,6 +14,7 @@ var mytoons = require('./routes/mytoons');
14 var passport = require('passport'); 14 var passport = require('passport');
15 var setting = require('./routes/setting'); 15 var setting = require('./routes/setting');
16 var session = require('express-session'); 16 var session = require('express-session');
17 +var toonviewer = require('./routes/toonviewer')
17 18
18 passport.serializeUser(function(user, done) { 19 passport.serializeUser(function(user, done) {
19 console.log('serialized'); 20 console.log('serialized');
...@@ -58,6 +59,7 @@ app.use('/', index); ...@@ -58,6 +59,7 @@ app.use('/', index);
58 app.use('/users', users); 59 app.use('/users', users);
59 app.use('/mytoons', mytoons); 60 app.use('/mytoons', mytoons);
60 app.use('/setting', setting); 61 app.use('/setting', setting);
62 +app.use('/toonviewer', toonviewer);
61 63
62 //app.use(express.static('views')); 64 //app.use(express.static('views'));
63 65
......
...@@ -32,7 +32,7 @@ function getUpdatedToons(cb){ ...@@ -32,7 +32,7 @@ function getUpdatedToons(cb){
32 } 32 }
33 33
34 function getMyToons(id,cb){ 34 function getMyToons(id,cb){
35 - var sqlquery = 'SELECT name, thum_link, webtoon_link, week, last, latest FROM user u, user_toon_relation ur, toon t WHERE u.id=? && u.id=ur.user_id && t.toon_index=ur.toon_index;'; 35 + var sqlquery = 'SELECT name, thum_link, webtoon_link, week, last, latest, t.toon_index AS toon_index FROM user u, user_toon_relation ur, toon t WHERE u.id=? && u.id=ur.user_id && t.toon_index=ur.toon_index;';
36 var mylist = new Array(); 36 var mylist = new Array();
37 connection.query(sqlquery,id,function(err,rows,result){ 37 connection.query(sqlquery,id,function(err,rows,result){
38 if(!err){ 38 if(!err){
...@@ -40,7 +40,7 @@ function getMyToons(id,cb){ ...@@ -40,7 +40,7 @@ function getMyToons(id,cb){
40 cb(mylist); 40 cb(mylist);
41 }else{ 41 }else{
42 console.log("내 웹툰 리스트 가져오는데 실패했습니다!"); 42 console.log("내 웹툰 리스트 가져오는데 실패했습니다!");
43 - throw err; 43 + //throw err;
44 } 44 }
45 }); 45 });
46 } 46 }
......
1 +var express = require('express');
2 +var router = express.Router();
3 +var request = require('request');
4 +var cheerio = require('cheerio');
5 +var async = require('async');
6 +
7 +function updateLastWebtoon(toon_index, user_id, num,cb){
8 + var sql_query = "UPDATE user_toon_relation SET last=? WHERE user_id=? && toon_index=?";
9 + connection.query(sql_query,[num, user_id,toon_index],function(err){
10 + if(!err){
11 + cb();
12 + }
13 + });
14 +}
15 +
16 +function getToonImages(toon_index, num, cb){
17 + var imageList = [];
18 + var toonUrl = "http://comic.naver.com/webtoon/detail.nhn?titleId=" + toon_index + "&no=" + num;
19 +
20 + request(toonUrl, function(err, res, html){
21 + if(!err){
22 + var $ = cheerio.load(html);
23 + var p = Promise.resolve();
24 + var eachs = $("div.wt_viewer > img").each(function(index, element) {
25 + p = p.then(function() {
26 + var toonHref = $(element).attr('src');
27 + imageList.push(toonHref);
28 + });
29 + });
30 + p.then(function(){
31 + cb(imageList);
32 + });
33 + }else{
34 + console.log("웹툰 이미지 못가져왔습니다.");
35 + }
36 + });
37 +}
38 +
39 +router.get('/:toon_index/:num',function(req,res){
40 + if(!req.isAuthenticated()){
41 + res.redirect('/');
42 + return;
43 + }
44 + updateLastWebtoon(req.params.toon_index, req.user.user_id, req.params.num, function(){
45 + var toonUrl = "http://comic.naver.com/webtoon/detail.nhn?titleId=" + req.params.toon_index + "&no=" + req.params.num;
46 + res.redirect(toonUrl);
47 + /*
48 + getToonImages(req.params.toon_index, req.params.num, function(imageList){
49 + res.render('toonviewer',{
50 + title: "zzz",
51 + images: imageList
52 + });
53 + });
54 + */
55 + })
56 +});
57 +
58 +module.exports = router;
...\ No newline at end of file ...\ No newline at end of file
...@@ -27,11 +27,8 @@ ...@@ -27,11 +27,8 @@
27 </head> 27 </head>
28 <h1>내툰</h1> 28 <h1>내툰</h1>
29 <p>추가한 리스트</p> 29 <p>추가한 리스트</p>
30 -
31 <a href="/auth/logout/kakao">로그아웃</a> 30 <a href="/auth/logout/kakao">로그아웃</a>
32 <a href="/setting/">세팅</a> 31 <a href="/setting/">세팅</a>
33 -</br>
34 -
35 <table> 32 <table>
36 <tr> 33 <tr>
37 <th>썸네일</th> 34 <th>썸네일</th>
...@@ -44,11 +41,10 @@ ...@@ -44,11 +41,10 @@
44 %><tr> 41 %><tr>
45 <td class="toon_thumbnail"><image src="<%= mytoons[i].thum_link%>"/></td> 42 <td class="toon_thumbnail"><image src="<%= mytoons[i].thum_link%>"/></td>
46 <td class="toon_name"><%= mytoons[i].name %></td> 43 <td class="toon_name"><%= mytoons[i].name %></td>
47 - <td class="toon_last"><%= mytoons[i].last %>화</td> 44 + <td class="toon_last"><a href="/toonviewer/<%= mytoons[i].toon_index %>/<%= mytoons[i].last %>"><%= mytoons[i].last %>화</a></td>
48 - <td class="toon_next"><%= mytoons[i].last +1 %>화</td> 45 + <td class="toon_next"><% if(mytoons[i].last+1 <= mytoons[i].latest){ %> <a href="/toonviewer/<%= mytoons[i].toon_index %>/<%= mytoons[i].last+1 %>"><%= mytoons[i].last +1 %>화</a><% } %></td>
49 - <td class="toon_latest"><%= mytoons[i].latest %>화</td> 46 + <td class="toon_latest"><a href="/toonviewer/<%= mytoons[i].toon_index %>/<%= mytoons[i].latest %>"><%= mytoons[i].latest %>화</a></td>
50 </tr> 47 </tr>
51 - <br>
52 <% } %> 48 <% } %>
53 </table> 49 </table>
54 50
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
11 </head> 11 </head>
12 <h1>내툰</h1> 12 <h1>내툰</h1>
13 <p>추가하거나 제거할 웹툰을 선택해주세요.</p> 13 <p>추가하거나 제거할 웹툰을 선택해주세요.</p>
14 - 14 +<a href="/mytoons">뒤로</a>
15 <table> 15 <table>
16 <% 16 <%
17 var current = ""; 17 var current = "";
......
1 +<!DOCTYPE html>
2 +<html lang="en">
3 +<head>
4 + <meta charset="UTF-8">
5 + <title><%= title %></title>
6 +</head>
7 +<body>
8 +<%
9 +for(image in images){
10 +%>
11 +<img src="<%= images[image] %>" alt=""/>
12 +<%
13 +}
14 + %>
15 +
16 +</body>
17 +</html>
...\ No newline at end of file ...\ No newline at end of file