todo.js
3.3 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
/*
* GET todo
*/
var fs = require('fs'); // 파일 시스템 모듈
var request = require('request');
exports.list = function(req, res){ // ToDo 목록 가져오기
fs.exists('./todo_list.json', function (exists) { // ToDo 목록 존재 확인
if(exists) {
fs.readFile('./todo_list.json', {
'encoding': 'utf8'
}, function (err, list) { // todo_list.json 파일 읽기
res.json(list);
});
} else {
var list = { // 기본 ToDo 목록 형식
'list': []
};
fs.writeFile('./todo_list.json', JSON.stringify(list), function (err) { // todo_list.json 파일 쓰기
res.json(list);
});
}
});
};
exports.add = function(req, res){ // 새로운 ToDo 항목 추가하기
var todo = { // 기본 ToDo 항목 형식
'contents': '',
'videoId':'',
'complete': false
};
//유튜브 api 이용 검색부분
var optionParams = {
q:req.body.contents,
part:"snippet",
key:"AIzaSyCgGa6aM7taXs4bajtYukbc_EQAKTLVTNc",
type:"video",
maxResult:5,
regionCode:"KR",
order:"viewCount"
};
optionParams.q = encodeURI(optionParams.q);
var url="https://www.googleapis.com/youtube/v3/search?";
for(var option in optionParams){
url+=option+"="+optionParams[option]+"&";
}
//url의마지막에 붙어있는 & 정리
url=url.substr(0, url.length-1);
request(url, function(err, res, body){
// console.log(body)
//json형식을 서버로 부터 받음
var data=JSON.parse(body).items;
for(var content in data){
//youtube downloader에 videoId 넘기면 됨.
console.log(data[content].snippet.title+" : "+data[content].id.videoId);
todo.contents = data[content].snippet.title;
todo.videoId = data[content].id.videoId;
fs.readFile('./todo_list.json', {
'encoding': 'utf8'
}, function (err, data) {
data = JSON.parse(data);
for (var i=0;i<5;i++)
{
data.list.push(todo);
}
// 새로운 ToDo 항목 추가
fs.writeFile('./todo_list.json', JSON.stringify(data), function (err) {
res.json(true); // 이부분에서 오류가 나는데 잘 모르겠습니다.
});
});
}
res.json(true); //교수님께서 추가하신 부분입니다.
});
//todo.contents = req.body.contents;
/*
fs.readFile('./todo_list.json', {
'encoding': 'utf8'
}, function (err, data) {
data = JSON.parse(data);
for (var i=0;i<5;i++)
{
data.list.push(VideoIds[i]);
}
// 새로운 ToDo 항목 추가
fs.writeFile('./todo_list.json', JSON.stringify(data), function (err) {
res.json(true);
});
});*/
};
exports.complete = function(req, res){ // 선택한 ToDo 항목 완료하기
fs.readFile('./todo_list.json', {
'encoding': 'utf8'
}, function (err, data) {
data = JSON.parse(data);
data.list[req.body.index].complete = true;
console.log(data.list[req.body.index].contents);
fs.writeFile('./todo_list.json', JSON.stringify(data), function (err) {
res.json(true);
});
});
};
exports.del = function(req, res){ // 선택한 ToDo 항목 삭제하기
fs.readFile('./todo_list.json', {
'encoding': 'utf8'
}, function (err, data) {
data = JSON.parse(data);
data.list[req.body.index] = null; // 선택한 ToDo 항목 삭제
data.list = data.list.filter(Boolean); // 유효한 값 추려내기
fs.writeFile('./todo_list.json', JSON.stringify(data), function (err) {
res.json(true);
});
});
};