Toggle navigation
Toggle navigation
This project
Loading...
Sign in
이나경
/
time_table
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
송민석
2022-06-06 16:27:59 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
e0a78143b347c6144c835c558d6e3c11ab2eb222
e0a78143
1 parent
2795485f
Collect DB data
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
170 additions
and
5 deletions
index.js
index.js
View file @
e0a7814
const
config
=
require
(
'./config'
)
const
config
=
require
(
'./config'
)
const
mongoose
=
require
(
"mongoose"
);
const
connect
=
mongoose
.
connect
(
config
.
url
,
{
const
{
range
}
=
require
(
"express/lib/request"
);
const
xlsx
=
require
(
"xlsx"
);
const
excelFile
=
xlsx
.
readFile
(
"./GuideLine/컴퓨터공학과 권장이수 가이드라인.xlsx"
);
const
sheetName
=
excelFile
.
SheetNames
[
0
];
const
firstSheet
=
excelFile
.
Sheets
[
sheetName
];
const
jsonData
=
xlsx
.
utils
.
sheet_to_json
(
firstSheet
);
var
first_first
=
[];
var
first_second
=
[];
var
second_first
=
[];
var
second_second
=
[];
var
third_first
=
[];
var
third_second
=
[];
var
fourth_first
=
[];
var
fourth_second
=
[];
var
new_list
=
[];
function
jason_to_arry
()
{
for
(
var
data
in
jsonData
)
{
first_first
.
push
(
jsonData
[
data
][
'1학년 1학기'
]);
first_second
.
push
(
jsonData
[
data
][
'1학년 2학기'
]);
second_first
.
push
(
jsonData
[
data
][
'2학년 1학기'
]);
second_second
.
push
(
jsonData
[
data
][
'2학년 2학기'
]);
third_first
.
push
(
jsonData
[
data
][
'3학년 1학기'
]);
third_second
.
push
(
jsonData
[
data
][
'3학년 2학기'
]);
fourth_first
.
push
(
jsonData
[
data
][
'4학년 1학기'
]);
fourth_second
.
push
(
jsonData
[
data
][
'4학년 2학기'
]);
}
}
// jason -> array로 변경
function
remove_null
()
{
first_first
=
first_first
.
filter
(
function
(
item
)
{
return
item
!==
null
&&
item
!==
undefined
&&
item
!==
''
;
});
first_second
=
first_second
.
filter
(
function
(
item
)
{
return
item
!==
null
&&
item
!==
undefined
&&
item
!==
''
;
});
second_first
=
second_first
.
filter
(
function
(
item
)
{
return
item
!==
null
&&
item
!==
undefined
&&
item
!==
''
;
});
second_second
=
second_second
.
filter
(
function
(
item
)
{
return
item
!==
null
&&
item
!==
undefined
&&
item
!==
''
;
});
third_first
=
third_first
.
filter
(
function
(
item
)
{
return
item
!==
null
&&
item
!==
undefined
&&
item
!==
''
;
});
third_second
=
third_second
.
filter
(
function
(
item
)
{
return
item
!==
null
&&
item
!==
undefined
&&
item
!==
''
;
});
fourth_first
=
fourth_first
.
filter
(
function
(
item
)
{
return
item
!==
null
&&
item
!==
undefined
&&
item
!==
''
;
});
fourth_second
=
fourth_second
.
filter
(
function
(
item
)
{
return
item
!==
null
&&
item
!==
undefined
&&
item
!==
''
;
});
new_list
.
push
(
first_first
);
new_list
.
push
(
first_second
)
new_list
.
push
(
second_first
)
new_list
.
push
(
second_second
);
new_list
.
push
(
third_first
)
new_list
.
push
(
third_second
);
new_list
.
push
(
fourth_first
);
new_list
.
push
(
fourth_second
);
}
// null 값 제거
jason_to_arry
()
remove_null
()
const
connect
=
mongoose
.
connect
(
config
.
url
,
{
useNewUrlParser
:
true
,
useUnifiedTopology
:
true
,
})
.
then
(()
=>
console
.
log
(
"MongoDB Connected ..."
))
.
catch
((
err
)
=>
console
.
log
(
err
));
\ No newline at end of file
.
then
(()
=>
console
.
log
(
"DB : Succesfully Connected"
))
.
catch
((
err
)
=>
console
.
log
(
err
.
message
));
var
express
=
require
(
'express'
);
var
major_list
=
[
"A07337"
,
"A10628"
,
"A07308"
,
"A10627"
];
const
{
Subinfo
}
=
require
(
'./models/model'
);
var
request
=
require
(
'request'
);
for
(
i
in
major_list
)
{
var
options
=
{
'method'
:
'GET'
,
'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`
,
'headers'
:
{
'Cookie'
:
'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
},
formData
:
{
'attribute'
:
'lectListJson'
,
'lang'
:
'ko'
,
'loginYn'
:
'N'
,
'menu'
:
'1'
,
'p_major'
:
'A07308'
,
'p_year'
:
'2022'
,
'p_term'
:
'10'
,
'initYn'
:
'Y'
}
};
request
(
options
,
async
function
(
error
,
response
)
{
if
(
error
)
throw
new
Error
(
error
);
var
jason
=
response
.
body
var
json
=
JSON
.
parse
(
jason
)
const
data
=
{}
var
x
=
0
,
y
=
0
;
var
z
=
'필수'
;
for
(
var
i
=
0
;
i
<
new_list
.
length
;
i
++
)
{
if
(
i
%
2
==
0
)
{
x
++
;
}
for
(
var
j
=
0
;
j
<
new_list
[
i
].
length
;
j
++
)
{
if
(
new_list
[
i
][
j
]
==
'선택'
)
{
z
=
'선택'
;
continue
;
}
if
(
i
%
2
==
0
)
{
y
=
1
;
}
else
{
y
=
2
;
}
var
subinfo
=
new
Subinfo
({
campus
:
"국제"
,
college
:
"소프트웨어융합대학"
,
department
:
"컴퓨터공학과"
,
grade
:
x
+
"학년"
+
y
+
"학기"
,
name
:
new_list
[
i
][
j
],
choice
:
z
})
subinfo
.
save
((
err
,
result
)
=>
{
if
(
err
)
{
return
err
;
}
else
{
// console.log(result);
}
})
}
}
for
(
var
i
in
json
[
"rows"
])
{
var
obj
=
{};
obj
[
'time'
]
=
json
[
"rows"
][
i
][
"timetable"
];
obj
[
'prof'
]
=
json
[
"rows"
][
i
][
"teach_na"
];
obj
[
'credit'
]
=
json
[
"rows"
][
i
][
"unit_num"
];
obj
[
'name'
]
=
json
[
"rows"
][
i
][
"subjt_name"
];
await
Subinfo
.
findOne
({
name
:
obj
[
'name'
]
}).
then
((
sub
)
=>
{
if
(
sub
)
{
var
body
=
{
prof
:
obj
[
'prof'
],
time
:
obj
[
'time'
]
}
sub
.
credit
=
obj
[
'credit'
]
sub
.
subject
.
push
(
body
);
sub
.
save
((
err
,
result
)
=>
{
if
(
err
)
{
console
.
log
(
err
)
}
else
if
(
result
)
{
console
.
log
(
result
);
}
})
}
})
}
});
};
\ No newline at end of file
...
...
Please
register
or
login
to post a comment