-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
145 lines (129 loc) · 4.77 KB
/
Copy pathapp.js
File metadata and controls
145 lines (129 loc) · 4.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
var logo = '\n'
+ '================================================================\n\n'
+ ' OOOOOO, OO~ OO \n'
+ ' OO OOO OO~ OO \n'
+ ' OO OO OO ,OOO, \n'
+ ' OO OO OO~ OOOOOOO OO ,O, OOOOOO O~OO OOO \n'
+ ' OO ,OO OO~ OO OO. OO .O, ,OO OO OO \n'
+ ' OOOOOOO OO~ OO OO. OO O, OO OO OO \n'
+ ' OO OO. OO~ OO OO. OOOO. OOOOOOOO OO \n'
+ ' OO .OO OO~ OO OO. OO OO OO OO \n'
+ ' OO OO, OO~ OO OO. OO OO OO. OO \n'
+ ' OO .OO OO~ OO OO. OO OOO OO OO, OO \n'
+ ' OO OOO OO~ OO OO. OO OO OOOO OO \n\n'
+ '----------------------------------------------------------------\n'
+ ' AMI TEAM PROJECT : ENTERTAINMENT SEARCH SERVICE \n'
+ '================================================================\n\n';
// Modules require
var express = require('express'),
CONFIG = require('./config/config'),
network = require('./lib/network'),
routes = require('./routes'),
search = require('./routes/search'),
graph = require('./routes/graph'),
auth = require('./routes/auth'),
http = require('http'),
flash = require('connect-flash'),
path = require('path');
var app = express();
// Express configure
app.configure(function() {
app.set('port', process.env.PORT || CONFIG.ARGV.PORT);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
//gzip compress
//app.use(express.compress());
app.use(express.methodOverride());
app.use(express.cookieParser('Rinker session'));
app.use(flash());
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function() {
app.use(express.errorHandler());
});
/* Session example
{ id: 'test',
name: 'test',
email: 'penguns@naver.com',
password: 'iQNy7IEYP/6zUvUW7yLZ5y7/hVyWHWeCdQWnkUoCiSA0tar8pLsy+uQXOQD+A5B74i+cAC107vFAO4VRGSmKyw=='
} */
app.locals = {
user : undefined,
view : undefined,
ws : "http://" + CONFIG.ARGV.WS.HOST + ':' + CONFIG.ARGV.WS.PORT,
scraper : "http://" + CONFIG.ARGV.SCRAPER.HOST + ':' + CONFIG.ARGV.SCRAPER.PORT
}
// Guest auth
function loadUser(req, res, next) {
res.locals.view = req.session.view;
if (req.session.user) {
res.locals.user = req.session.user;
next();
} else {
next();
}
};
// Admin auth
function loadAdmin(req, res, next) {
res.locals.view = req.session.view;
if (req.session.user) {
if (req.session.user.level=="admin") {
next();
}
res.locals.user = req.session.user;
req.flash('info', "관리자가 아닙니다.");
res.redirect('/login');
} else {
req.flash('info', "가입되지 않은 아이디 입니다.");
res.redirect('/login');
}
};
app.get('/actor', loadUser, search.actor);
// Page
//app.get('/', loadUser, routes.index);
app.get('/', loadUser, search.index);
app.get('/link', loadUser, routes.iframe);
app.get('/under', loadUser, routes.under);
app.get('/scraper', loadAdmin, routes.scraper);
// Search
app.post('/view', search.view);
app.get('/view', search.view);
app.get('/search', loadUser, search.query);
app.get('/search/person/:id', loadUser, search.person);
app.get('/search/movie/:id', loadUser, search.movie);
app.get('/search/music/:id', loadUser, search.music);
app.get('/search/job', loadUser, search.job);
app.get('/search/actor', loadUser, search.actor);
app.get('/socket', loadUser, search.socket);
app.get('/sql', loadUser, search.sql);
app.get('/search/help', loadUser, search.help);
app.get('/search/error', loadUser, search.error);
// Login & Logout
app.get('/login', loadUser, auth.login);
app.post('/login', loadUser, auth.postLogin);
app.get('/logout', loadUser, auth.logout);
// User
app.get('/users', loadAdmin, auth.getUsers);
app.get('/users/new', loadAdmin, auth.getNew);
app.post('/users/new', auth.postNew);
app.get('/user/:id', loadAdmin, auth.getId);
app.post('/user/:id', loadAdmin, auth.postId);
app.post('/dropuser', loadAdmin, auth.postDropuser);
// Graph dbms
app.get('/graph', loadAdmin, graph.list);
app.post('/graph', loadAdmin, graph.create);
app.get('/graph/:id', loadAdmin, graph.show);
app.post('/graph/:id', loadAdmin, graph.edit);
app.del('/graph/:id', loadAdmin, graph.del);
app.post('/graph/:id/follow', loadAdmin, graph.follow);
app.post('/graph/:id/music', loadAdmin, graph.music);
app.post('/graph/:id/unfollow', loadAdmin, graph.unfollow);
// Create server
http.createServer(app).listen(app.get('port'), function(){
console.log(logo,"++ Rinker: server listening on port", app.get('port'));
});