송민석

Delete overlap files

1 -const xlsx = require( "xlsx" );
2 -// 엑셀 파일을 가져오기
3 -
4 -const excelFile = xlsx.readFile("./GuideLine/컴퓨터공학과 권장이수 가이드라인.xlsx");
5 -// 엑셀 파일의 첫번째 시트의 정보 추출
6 -
7 -const sheetName = excelFile.SheetNames[0];
8 -const firstSheet = excelFile.Sheets[sheetName];
9 -const jsonData = xlsx.utils.sheet_to_json(firstSheet);
10 -var first_first = [];
11 -var first_second = [];
12 -var second_first = [];
13 -var second_second = [];
14 -var third_first = [];
15 -var third_second = [];
16 -var fourth_first = [];
17 -var fourth_second = [];
18 -
19 -function jason_to_arry() {
20 - for (var data in jsonData){
21 - first_first.push(jsonData[data]['1학년 1학기']);
22 - first_second.push(jsonData[data]['1학년 2학기']);
23 - second_first.push(jsonData[data]['2학년 1학기']);
24 - second_second.push(jsonData[data]['2학년 2학기']);
25 - third_first.push(jsonData[data]['3학년 1학기']);
26 - third_second.push(jsonData[data]['3학년 2학기']);
27 - fourth_first.push(jsonData[data]['4학년 1학기']);
28 - fourth_second.push(jsonData[data]['4학년 2학기']);
29 - }
30 -}
31 -// jason -> array로 변경
32 -function remove_null() {
33 -first_first = first_first.filter(function(item) {
34 - return item !== null && item !== undefined && item !== '';
35 -});
36 -first_second = first_second.filter(function(item) {
37 - return item !== null && item !== undefined && item !== '';
38 - });
39 -second_first = second_first.filter(function(item) {
40 - return item !== null && item !== undefined && item !== '';
41 -});
42 -second_second = second_second.filter(function(item) {
43 - return item !== null && item !== undefined && item !== '';
44 - });
45 -third_first = third_first.filter(function(item) {
46 - return item !== null && item !== undefined && item !== '';
47 - });
48 -third_second = third_second.filter(function(item) {
49 - return item !== null && item !== undefined && item !== '';
50 - });
51 -fourth_first = fourth_first.filter(function(item) {
52 - return item !== null && item !== undefined && item !== '';
53 - });
54 -fourth_second = fourth_second.filter(function(item) {
55 - return item !== null && item !== undefined && item !== '';
56 - });
57 -}
58 -// null 값 제거
59 -
60 -
61 -jason_to_arry()
62 -remove_null()
63 -
64 -console.log(first_first);
1 const config = require('./config') 1 const config = require('./config')
2 const mongoose = require("mongoose"); 2 const mongoose = require("mongoose");
3 -const { range } = require("express/lib/request"); 3 +const {range} = require("express/lib/request");
4 const xlsx = require("xlsx"); 4 const xlsx = require("xlsx");
5 const fs = require('fs') 5 const fs = require('fs')
6 6
7 - 7 +const connect = mongoose
8 - 8 + .connect(config.url, {
9 -const connect = mongoose.connect(config.url, 9 + useNewUrlParser: true,
10 - { 10 + useUnifiedTopology: true
11 - useNewUrlParser: true, 11 + })
12 - useUnifiedTopology: true, 12 + .then(() => console.log("DB : Succesfully Connected"))
13 - }) 13 + .catch((err) => console.log(err.message));
14 - .then(() => console.log("DB : Succesfully Connected"))
15 - .catch((err) => console.log(err.message));
16 -
17 14
18 var express = require('express'); 15 var express = require('express');
19 16
20 -const { Subinfo } = require('./models/model'); 17 +const {Subinfo} = require('./models/model');
21 var request = require('request'); 18 var request = require('request');
22 19
23 -
24 var departmentinfo = '컴퓨터공학과' 20 var departmentinfo = '컴퓨터공학과'
25 var gradeinfo = '2학년1학기' 21 var gradeinfo = '2학년1학기'
26 var name = [] 22 var name = []
27 var time = [] 23 var time = []
28 var prof = [] 24 var prof = []
29 25
30 -Subinfo.find({ department: `${departmentinfo}`, grade: `${gradeinfo}` }).then((sub) => { 26 +Subinfo
31 - if (sub) { 27 + .find({department: `${departmentinfo}`, grade: `${gradeinfo}`})
32 - for (var i in sub) { 28 + .then((sub) => {
33 - if (sub[i]['choice'] == '필수') { 29 + if (sub) {
34 - name.push(sub[i]['name']) 30 + for (var i in sub) {
31 + if (sub[i]['choice'] == '필수') {
32 + name.push(sub[i]['name'])
35 33
36 - var random_num = (Math.floor(Math.random() * (sub[i]['subject'].length))) 34 + var random_num = (Math.floor(Math.random() * (sub[i]['subject'].length)))
37 - sub[i]['subject'][random_num]['time'] 35 + sub[i]['subject'][random_num]['time']
38 36
39 - if (time.length > 0) { 37 + if (time.length > 0) {
38 + /*
40 while (true) { 39 while (true) {
41 try { 40 try {
42 var tmp = 0 41 var tmp = 0
...@@ -56,19 +55,76 @@ Subinfo.find({ department: `${departmentinfo}`, grade: `${gradeinfo}` }).then((s ...@@ -56,19 +55,76 @@ Subinfo.find({ department: `${departmentinfo}`, grade: `${gradeinfo}` }).then((s
56 console.error(err); 55 console.error(err);
57 } 56 }
58 } 57 }
58 + */
59 + while (true) {
60 + try {
61 + var tmp = 0
62 + var random_num = (Math.floor(Math.random() * (sub[i]['subject'].length)))
63 +
64 + for (var j in time) {
65 + if (time[j].slice(0, 1) == sub[i]['subject'][random_num]['time'].slice(0, 1)) {
66 + var tmp_time1 = Number(`${time[j].slice(2, 4) + '.' + time[j].slice(5, 7)}`)
67 + var tmp_time2 = Number(`${time[j].slice(8, 10) + '.' + time[j].slice(11, 13)}`)
68 + var tmp_time3 = Number(
69 + `${sub[i]['subject'][random_num]['time'].slice(2, 4) + '.' + sub[i]['subject'][random_num]['time'].slice(
70 + 5,
71 + 7
72 + )}`
73 + )
74 +
75 + if (tmp_time3 >= tmp_time1 & tmp_time3 <= tmp_time2) {
76 + tmp = 1
77 + break
78 + }
79 + }
80 + }
81 + if (tmp == 0) {
82 + break
83 + }
84 + } catch (err) {
85 + console.error(err);
86 + }
87 + }
88 + }
89 + time.push(sub[i]['subject'][random_num]['time'])
90 + prof.push(sub[i]['subject'][random_num]['prof'])
91 +
92 + }
93 + }
94 + console.log(name)
95 + console.log(time)
96 + console.log(prof)
97 + } else {
98 + console.log(err)
59 } 99 }
60 - time.push(sub[i]['subject'][random_num]['time']) 100 + })
61 - prof.push(sub[i]['subject'][random_num]['prof']) 101 +
102 + //console.log(Math.floor(Math.random() * (10))) * /
103 +
104 +/*
105 +while (true) {
106 + try {
107 + var tmp = 0
108 + var random_num = (Math.floor(Math.random() * (sub[i]['subject'].length)))
109 +
110 + for (var j in time) {
111 + if (time[j].slice(0, 1) == sub[i]['subject'][random_num]['time'].slice(0, 1)) {
112 + var tmp_time1 = Number(`${time[j].slice(2, 4) + '.' + time[j].slice(5, 7)}`)
113 + var tmp_time2 = Number(`${time[j].slice(8, 10) + '.' + time[j].slice(11, 13)}`)
114 + var tmp_time3 = Number(`${sub[i]['subject'][random_num]['time'].slice(2, 4) + '.' + sub[i]['subject'][random_num]['time'].slice(5, 7)}`)
62 115
116 + if (tmp_time3 >= tmp_time1 & tmp_time3 <= tmp_time2) {
117 + tmp = 1
118 + break
119 + }
63 } 120 }
64 } 121 }
65 - console.log(name) 122 + if (tmp == 0) {
66 - console.log(time) 123 + break
67 - console.log(prof) 124 + }
68 } 125 }
69 - else { 126 + catch (err) {
70 - console.log(err) 127 + console.error(err);
71 } 128 }
72 -})
73 -
74 -//console.log(Math.floor(Math.random() * (10)))
...\ No newline at end of file ...\ No newline at end of file
129 +}
130 +*/
...\ No newline at end of file ...\ No newline at end of file
......
1 -const config = require('./config')
2 -const mongoose = require("mongoose");
3 -const { range } = require("express/lib/request");
4 -const xlsx = require("xlsx");
5 -const fs = require('fs')
6 -var first_first = [];
7 -var first_second = [];
8 -var second_first = [];
9 -var second_second = [];
10 -var third_first = [];
11 -var third_second = [];
12 -var fourth_first = [];
13 -var fourth_second = [];
14 -var new_list = {};
15 -function jason_to_arry(jsonData) {
16 - for (var data in jsonData) {
17 - first_first.push(jsonData[data]['1학년 1학기']);
18 - first_second.push(jsonData[data]['1학년 2학기']);
19 - second_first.push(jsonData[data]['2학년 1학기']);
20 - second_second.push(jsonData[data]['2학년 2학기']);
21 - third_first.push(jsonData[data]['3학년 1학기']);
22 - third_second.push(jsonData[data]['3학년 2학기']);
23 - fourth_first.push(jsonData[data]['4학년 1학기']);
24 - fourth_second.push(jsonData[data]['4학년 2학기']);
25 - }
26 -}
27 -// json -> array로 변경
28 -function remove_null(major) {
29 -
30 - first_first = first_first.filter(function (item) {
31 - return item !== null && item !== undefined && item !== '';
32 - });
33 - first_second = first_second.filter(function (item) {
34 - return item !== null && item !== undefined && item !== '';
35 - });
36 - second_first = second_first.filter(function (item) {
37 - return item !== null && item !== undefined && item !== '';
38 - });
39 - second_second = second_second.filter(function (item) {
40 - return item !== null && item !== undefined && item !== '';
41 - });
42 - third_first = third_first.filter(function (item) {
43 - return item !== null && item !== undefined && item !== '';
44 - });
45 - third_second = third_second.filter(function (item) {
46 - return item !== null && item !== undefined && item !== '';
47 - });
48 - fourth_first = fourth_first.filter(function (item) {
49 - return item !== null && item !== undefined && item !== '';
50 - });
51 - fourth_second = fourth_second.filter(function (item) {
52 - return item !== null && item !== undefined && item !== '';
53 - });
54 - new_list[major]=[first_first,first_second,second_first,second_second,third_first,third_second,fourth_first,fourth_second]
55 - // new_list.push(first_first);
56 - // new_list.push(first_second)
57 - // new_list.push(second_first)
58 - // new_list.push(second_second);
59 - // new_list.push(third_first)
60 - // new_list.push(third_second);
61 - // new_list.push(fourth_first);
62 - // new_list.push(fourth_second);
63 -}
64 -
65 -fs.readdirSync("./GuideLine").forEach(file => {
66 - // console.log(file);
67 - var major=file.split(' ')[0]
68 - console.log(major)
69 - const excelFile = xlsx.readFile(`./GuideLine/${file}`)
70 - const sheetName = excelFile.SheetNames[0];
71 - const firstSheet = excelFile.Sheets[sheetName];
72 - const jsonData = xlsx.utils.sheet_to_json(firstSheet)
73 - jason_to_arry(jsonData)
74 - remove_null(major)
75 - first_first = [];
76 - first_second = [];
77 - second_first = [];
78 - second_second = [];
79 - third_first = [];
80 - third_second = [];
81 - fourth_first = [];
82 - fourth_second = [];
83 -});
84 -console.log(new_list[''])
85 -// const excelFile = xlsx.readFile("./GuideLine/컴퓨터공학과 권장이수 가이드라인.xlsx");
86 -// null 값 제거
87 -
88 -
89 -
90 -const connect = mongoose.connect(config.url,
91 - {
92 - useNewUrlParser: true,
93 - useUnifiedTopology: true,
94 - })
95 - .then(() => console.log("DB : Succesfully Connected"))
96 - .catch((err) => console.log(err.message));
97 -
98 -
99 -var express = require('express');
100 -
101 -var major_list = ["A07337", "A10628", "A07308", "A10627"];
102 -const { Subinfo } = require('./models/model');
103 -var request = require('request');
104 -for (i in major_list) {
105 - var options = {
106 - 'method': 'GET',
107 - 'url': `https://sugang.khu.ac.kr/core?attribute=lectListJson&lang=ko&loginYn=N&menu=1&p_major=${i}&p_year=2022&p_term=10&initYn=Y`,
108 - 'headers': {
109 - 'Cookie': 'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
110 - },
111 - formData: {
112 - 'attribute': 'lectListJson',
113 - 'lang': 'ko',
114 - 'loginYn': 'N',
115 - 'menu': '1',
116 - 'p_major': 'A07308',
117 - 'p_year': '2022',
118 - 'p_term': '10',
119 - 'initYn': 'Y'
120 - }
121 - };
122 - request(options, async function (error, response) {
123 - if (error) throw new Error(error);
124 - var jason = response.body
125 - var json = JSON.parse(jason)
126 -
127 - const data = {}
128 -
129 -
130 - var x = 0, y = 0;
131 - var z = '필수';
132 - for (var i = 0; i < new_list.length; i++) {
133 - if (i % 2 == 0) {
134 - x++;
135 - }
136 - for (var j = 0; j < new_list[i].length; j++) {
137 - if (new_list[i][j] == '선택') {
138 - z = '선택';
139 - continue;
140 - }
141 - if (i % 2 == 0) {
142 - y = 1;
143 - } else {
144 - y = 2;
145 - }
146 - var subinfo = new Subinfo({
147 - campus: "국제",
148 - college: "소프트웨어융합대학",
149 - department: "컴퓨터공학과",
150 - grade: x + "학년" + y + "학기",
151 - name: new_list[i][j],
152 - choice: z
153 - })
154 - subinfo.save((err, result) => {
155 - if (err) {
156 - return err;
157 - } else {
158 - // console.log(result);
159 - }
160 - })
161 - }
162 - }
163 - for (var i in json["rows"]) {
164 - var obj = {};
165 - obj['time'] = json["rows"][i]["timetable"];
166 - obj['prof'] = json["rows"][i]["teach_na"];
167 - obj['credit'] = json["rows"][i]["unit_num"];
168 - obj['name'] = json["rows"][i]["subjt_name"];
169 - await Subinfo.findOne({ name: obj['name'] }).then((sub) => {
170 - if (sub) {
171 - var body = {
172 - prof: obj['prof'],
173 - time: obj['time']
174 - }
175 - sub.credit = obj['credit']
176 - sub.subject.push(body);
177 - sub.save((err, result) => {
178 - if (err) {
179 - console.log(err)
180 - } else if (result) {
181 - console.log(result);
182 - }
183 - })
184 - }
185 - })
186 - }
187 - });
188 -};
...\ No newline at end of file ...\ No newline at end of file
This diff is collapsed. Click to expand it.
1 { 1 {
2 "dependencies": { 2 "dependencies": {
3 + "fs": "^0.0.1-security",
4 + "mongoose": "^6.3.6",
3 "request": "^2.88.2", 5 "request": "^2.88.2",
4 "xlsx": "^0.18.5" 6 "xlsx": "^0.18.5"
5 } 7 }
......
1 -var request = require('request');
2 -var options = {
3 - 'method': 'GET',
4 - 'url': 'https://sugang.khu.ac.kr/core?attribute=lectListJson&lang=ko&loginYn=N&menu=1&p_major=A07337&p_year=2022&p_term=10&initYn=Y',
5 - 'headers': {
6 - 'Cookie': 'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
7 - },
8 - formData: {
9 - 'attribute': 'lectListJson',
10 - 'lang': 'ko',
11 - 'loginYn': 'N',
12 - 'menu': '1',
13 - 'p_major': 'A07337',
14 - 'p_year': '2022',
15 - 'p_term': '10',
16 - 'initYn': 'Y'
17 - }
18 -};
19 -request(options, function (error, response) {
20 - if (error) throw new Error(error);
21 - var jason = response.body
22 - var json = JSON.parse(jason)
23 -
24 - const data = {}
25 -
26 - for (var i in json["rows"]){
27 - var obj = {};
28 - obj['name'] = json["rows"][i]["subjt_name"];
29 - obj['time'] = json["rows"][i]["timetable"];
30 - obj['prof'] = json["rows"][i]["teach_na"];
31 - obj['credit'] = json["rows"][i]["unit_num"];
32 - console.log(obj);
33 - }
34 -});
1 -var request = require('request');
2 -var options = {
3 - 'method': 'GET',
4 - 'url': 'https://sugang.khu.ac.kr/core?attribute=lectListJson&lang=ko&loginYn=N&menu=1&p_major=A10628&p_year=2022&p_term=10&initYn=Y',
5 - 'headers': {
6 - 'Cookie': 'JSESSIONID=0hka3HzdSAOOvWw17F0W3OixVWW5MKzJg31nZrYU3yjMlmIv7GF9vasjvDsYwTAe.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
7 - },
8 - formData: {
9 - 'attribute': 'lectListJson',
10 - 'lang': 'ko',
11 - 'loginYn': 'N',
12 - 'menu': '1',
13 - 'p_major': 'A10628',
14 - 'p_year': '2022',
15 - 'p_term': '10',
16 - 'initYn': 'Y'
17 - }
18 -};
19 -request(options, function (error, response) {
20 - if (error) throw new Error(error);
21 - var jason = response.body
22 - var json = JSON.parse(jason)
23 -
24 - const data = {}
25 -
26 - for (var i in json["rows"]){
27 - var obj = {};
28 - obj['name'] = json["rows"][i]["subjt_name"];
29 - obj['time'] = json["rows"][i]["timetable"];
30 - obj['prof'] = json["rows"][i]["teach_na"];
31 - obj['credit'] = json["rows"][i]["unit_num"];
32 - console.log(obj);
33 - }
34 -});
1 -var request = require('request');
2 -var options = {
3 - 'method': 'GET',
4 - 'url': 'https://sugang.khu.ac.kr/core?attribute=lectListJson&lang=ko&loginYn=N&menu=1&p_major=A07308&p_year=2022&p_term=10&initYn=Y',
5 - 'headers': {
6 - 'Cookie': 'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
7 - },
8 - formData: {
9 - 'attribute': 'lectListJson',
10 - 'lang': 'ko',
11 - 'loginYn': 'N',
12 - 'menu': '1',
13 - 'p_major': 'A07308',
14 - 'p_year': '2022',
15 - 'p_term': '10',
16 - 'initYn': 'Y'
17 - }
18 -};
19 -request(options, function (error, response) {
20 - if (error) throw new Error(error);
21 - var jason = response.body
22 - var json = JSON.parse(jason)
23 -
24 - const data = {}
25 -
26 - for (var i in json["rows"]){
27 - var obj = {};
28 - obj['name'] = json["rows"][i]["subjt_name"];
29 - obj['time'] = json["rows"][i]["timetable"];
30 - obj['prof'] = json["rows"][i]["teach_na"];
31 - obj['credit'] = json["rows"][i]["unit_num"];
32 - console.log(obj);
33 - }
34 -
35 -});
36 -
1 -var request = require('request');
2 -var options = {
3 - 'method': 'GET',
4 - 'url': 'https://sugang.khu.ac.kr/core?attribute=lectListJson&lang=ko&loginYn=N&menu=1&p_major=A10627&p_year=2022&p_term=10&initYn=Y',
5 - 'headers': {
6 - 'Cookie': 'JSESSIONID=0hka3HzdSAOOvWw17F0W3OixVWW5MKzJg31nZrYU3yjMlmIv7GF9vasjvDsYwTAe.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
7 - },
8 - formData: {
9 - 'attribute': 'lectListJson',
10 - 'lang': 'ko',
11 - 'loginYn': 'N',
12 - 'menu': '1',
13 - 'p_major': 'A10627',
14 - 'p_year': '2022',
15 - 'p_term': '10',
16 - 'initYn': 'Y'
17 - }
18 -
19 -};
20 -
21 -request(options, function (error, response) {
22 - if (error) throw new Error(error);
23 - var jason = response.body
24 - var json = JSON.parse(jason)
25 -
26 - for (var i in json["rows"]){
27 - var obj = {};
28 - obj['name'] = json["rows"][i]["subjt_name"];
29 - obj['time'] = json["rows"][i]["timetable"];
30 - obj['prof'] = json["rows"][i]["teach_na"];
31 - obj['credit'] = json["rows"][i]["unit_num"];
32 - console.log(obj);
33 - }
34 -});
...\ No newline at end of file ...\ No newline at end of file