성준영

download path bug fix

...@@ -9,13 +9,13 @@ let readline = require('readline'); ...@@ -9,13 +9,13 @@ let readline = require('readline');
9 let https = require('https'); 9 let https = require('https');
10 let querystring = require('querystring'); 10 let querystring = require('querystring');
11 let fs = require('fs'); 11 let fs = require('fs');
12 +let read = require('read');
12 const os = require('os'); 13 const os = require('os');
13 14
14 let j = request.jar(); 15 let j = request.jar();
15 request = request.defaults({jar: j}); 16 request = request.defaults({jar: j});
16 17
17 //TODO JSDoc 다시 정리하기 18 //TODO JSDoc 다시 정리하기
18 -
19 /** 19 /**
20 * @author sungjunyoung 20 * @author sungjunyoung
21 * @description klas에 로그인해서 세션을 받습니다. 21 * @description klas에 로그인해서 세션을 받습니다.
...@@ -35,12 +35,12 @@ exports.login = function (id, pw) { ...@@ -35,12 +35,12 @@ exports.login = function (id, pw) {
35 }, function (err, res, body) { 35 }, function (err, res, body) {
36 if (err) { 36 if (err) {
37 if (err.code === 'ESOCKETTIMEDOUT') { 37 if (err.code === 'ESOCKETTIMEDOUT') {
38 - reject('클라스 요청 응답시간이 너무 길어요... ㅠㅠ'); 38 + reject(' 클라스 요청 응답시간이 너무 길어요... ㅠㅠ');
39 } else { 39 } else {
40 - reject('알수없는 에러가 발생했어요!.'); 40 + reject(' 알수없는 에러가 발생했어요!.');
41 } 41 }
42 } else if (j.getCookies("https://klas.khu.ac.kr").length === 0) { 42 } else if (j.getCookies("https://klas.khu.ac.kr").length === 0) {
43 - reject('로그인에 실패했습니다!'); 43 + reject(' 로그인에 실패했습니다!');
44 } else { 44 } else {
45 resolve('success'); 45 resolve('success');
46 } 46 }
...@@ -63,7 +63,7 @@ exports.getLecture = function () { ...@@ -63,7 +63,7 @@ exports.getLecture = function () {
63 }, function (err, res, body) { 63 }, function (err, res, body) {
64 if (err) { 64 if (err) {
65 console.log(err); 65 console.log(err);
66 - reject('파싱 중 에러가 발생했어요!'); 66 + reject(' 파싱 중 에러가 발생했어요!');
67 } else { 67 } else {
68 resolve(body); 68 resolve(body);
69 } 69 }
...@@ -170,9 +170,9 @@ exports.getClassPageBody = function (lectureLink) { ...@@ -170,9 +170,9 @@ exports.getClassPageBody = function (lectureLink) {
170 }, function (err, res, body) { 170 }, function (err, res, body) {
171 if (err) { 171 if (err) {
172 if (err.code === 'ESOCKETTIMEDOUT') { 172 if (err.code === 'ESOCKETTIMEDOUT') {
173 - reject('클라스 요청 응답시간이 너무 길어요... ㅠㅠ'); 173 + reject(' 클라스 요청 응답시간이 너무 길어요... ㅠㅠ');
174 } else { 174 } else {
175 - reject('알수없는 에러가 발생했어요!.'); 175 + reject(' 알수없는 에러가 발생했어요!.');
176 } 176 }
177 } else { 177 } else {
178 resolve(body); 178 resolve(body);
...@@ -257,9 +257,10 @@ exports.downloadSelectedFiles = function (selectedFiles, downloadPath) { ...@@ -257,9 +257,10 @@ exports.downloadSelectedFiles = function (selectedFiles, downloadPath) {
257 if (!downloadPath) { 257 if (!downloadPath) {
258 downloadPath = os.homedir() + '/Downloads/'; 258 downloadPath = os.homedir() + '/Downloads/';
259 } else { 259 } else {
260 - downloadPath = require('path').resolve(downloadPath); 260 + downloadPath = require('path').resolve(downloadPath) + '/';
261 } 261 }
262 262
263 +
263 let count = 0; 264 let count = 0;
264 selectedFiles.files.forEach(function (value, index) { 265 selectedFiles.files.forEach(function (value, index) {
265 request = https.get(value.link, function (response) { 266 request = https.get(value.link, function (response) {
...@@ -267,8 +268,8 @@ exports.downloadSelectedFiles = function (selectedFiles, downloadPath) { ...@@ -267,8 +268,8 @@ exports.downloadSelectedFiles = function (selectedFiles, downloadPath) {
267 let file = fs.createWriteStream(downloadPath + value.fileName); 268 let file = fs.createWriteStream(downloadPath + value.fileName);
268 response.pipe(file); 269 response.pipe(file);
269 270
270 - if (index === count) { 271 + if (selectedFiles.files.length === count) {
271 - resolve('파일이 ' + downloadPath + ' 에 저장되었어요! 열공 :)'); 272 + resolve('\n 파일이 ' + downloadPath + ' 에 저장되었어요! 열공 :)');
272 } 273 }
273 274
274 }); 275 });
......
...@@ -19,10 +19,10 @@ if(require.main === module){ ...@@ -19,10 +19,10 @@ if(require.main === module){
19 const flags = args.parse(process.argv); 19 const flags = args.parse(process.argv);
20 20
21 if (!flags.id) { 21 if (!flags.id) {
22 - console.log('학번(id) 가 필요해요!'); 22 + console.log(' 학번(id) 가 필요해요!');
23 return; 23 return;
24 } else if (!flags.pw) { 24 } else if (!flags.pw) {
25 - console.log('비밀번호(pw) 가 필요해요!'); 25 + console.log(' 비밀번호(pw) 가 필요해요!');
26 return; 26 return;
27 } else { 27 } else {
28 functions.login(flags.id, flags.pw) 28 functions.login(flags.id, flags.pw)
......
1 { 1 {
2 "name": "klas-file-downloader", 2 "name": "klas-file-downloader",
3 - "version": "0.0.4", 3 + "version": "0.0.5",
4 "description": "Project that download lecture reference files from Klas", 4 "description": "Project that download lecture reference files from Klas",
5 "main": "index.js", 5 "main": "index.js",
6 "scripts": { 6 "scripts": {
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
31 "fs": "0.0.1-security", 31 "fs": "0.0.1-security",
32 "promise": "^7.1.1", 32 "promise": "^7.1.1",
33 "querystring": "^0.2.0", 33 "querystring": "^0.2.0",
34 + "read": "^1.0.7",
34 "request": "^2.81.0" 35 "request": "^2.81.0"
35 } 36 }
36 } 37 }
......