Skip to content

Commit

Permalink
Merge pull request #75 from hanjo8813/2.2.2
Browse files Browse the repository at this point in the history
v2.2.2 배포
  • Loading branch information
hanjo8813 authored May 13, 2022
2 parents 937ed7c + fb2025c commit 245f151
Show file tree
Hide file tree
Showing 14 changed files with 108 additions and 92 deletions.
14 changes: 0 additions & 14 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,7 @@ FROM python:3.9
RUN apt-get update
RUN apt-get -y install cron

# chrome 설치
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
RUN apt-get update
RUN apt-get -y install google-chrome-stable

# chrome driver 설치
RUN apt-get install -yqq unzip curl
RUN wget -O /tmp/chromedriver.zip http://chromedriver.storage.googleapis.com/`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`/chromedriver_linux64.zip
RUN unzip /tmp/chromedriver.zip chromedriver -d /srv/
# 가상 디스플레이 설치
RUN apt-get -y install xvfb

WORKDIR /srv/PleaseGraduate

COPY . /srv/PleaseGraduate/

RUN pip install -r requirements.txt
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Please Graduate

![pg](https://img.shields.io/badge/version-2.2.1-a3374f)
![pg](https://img.shields.io/badge/version-2.2.2-a3374f)

## 관련 링크

Expand Down
2 changes: 1 addition & 1 deletion app/templates/agree.html
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@
<span>.</span>
</div>
<div class="load_info">
10초 이내에 완료됩니다. 창을 이동하지 마세요!
창을 이동하지 마세요!
</div>
</div>
</div>
Expand Down
20 changes: 10 additions & 10 deletions app/templates/head.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,22 +43,23 @@
<span id='dd' class="close" style="font-size:3rem;">&times;</span>
<div class='popup_content'>
<div class='popup_title'>
공지사항 (22.03.04)
공지사항 (22.05.14)
</div>
<div class='popup_box'>
<ul>
<li>현재 회원가입이 가능합니다!</li>
<li>모바일 환경에선 화면이 깨질 수 있으므로 웹 환경을 권장합니다.</li>
<hr style='border: 0.001px solid rgb(230, 230, 230); margin:1rem 0 1rem 0; width:85%'>
<li>
<b>version 2.2.1 업데이트 내용</b>&nbsp;&nbsp;
<b>version 2.2.2 업데이트 내용</b>&nbsp;&nbsp;
<a class="link_site" target="_blank" href="https://github.com/hanjo8813/PleaseGraduate/blob/master/dev_record.md">업데이트 기록 보기</a>
</li>
<li>22-1학기 동일과목 정보가 업데이트 되었습니다.</li>
<li>학생인증 방식이 개선되었습니다.</li>
<li style="margin-left:1.2rem; font-size:1rem;">
이수구분이 변경된 공필(교필), 교선, 기필(기교) 필수과목이 이에 해당됩니다.
기존 크롤링 방식을 http 통신 방식으로 변경했습니다. (10초 -> 2초)
</li>
<li style="margin-left:1.2rem; font-size:1rem;">
재학생 분이 기여해주신 인증 라이브러리를 사용했습니다. <a class="link_site" target="_blank" href="https://github.com/iml1111/sejong-univ-auth">링크</a>
</li>
<li>22-1학기 수강편람 및 강의정보가 업데이트되었습니다.</li>
</ul>
</div>
<div class="popup_check">
Expand Down Expand Up @@ -106,7 +107,7 @@
*/

// 쿠키 여부에 따라 모달창 렌더링
var unlook_cookie = document.cookie.match('(^|;) ?' + 'is_unlook_0305' + '=([^;]*)(;|$)');
var unlook_cookie = document.cookie.match('(^|;) ?' + 'is_unlook_0514' + '=([^;]*)(;|$)');
if (unlook_cookie == null) {
document.getElementById('myModal').style.display = 'block';
}
Expand All @@ -119,9 +120,8 @@
// 체크하고 누르면 쿠키 생성
if (chk.checked) {
var date = new Date();
// 유효기간 1일
date.setTime(date.getTime() + 30 * 24 * 60 * 60 * 1000);
document.cookie = 'is_unlook_0305' + '=' + 'unlook' + ';expires=' + date.toUTCString() + ';path=/';
date.setTime(date.getTime() + 60 * 24 * 60 * 60 * 1000);
document.cookie = 'is_unlook_0514' + '=' + 'unlook' + ';expires=' + date.toUTCString() + ';path=/';
}
}
}
Expand Down
5 changes: 2 additions & 3 deletions app/templates/login.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<i class="fas fa-graduation-cap"></i>
</div>
<div class="big_title">Please Graduate에 오신걸 환영합니다</div>
<div class="small_title">version 2.2.1</div>
<div class="small_title">version 2.2.2</div>
</div>
</div>

Expand Down Expand Up @@ -81,9 +81,8 @@
<div class="sk-chase-dot"></div>
</div>
<div class="loading">
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
Expand Down
2 changes: 1 addition & 1 deletion app/templates/mypage.html
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,7 @@
<span>.</span>
</div>
<div class="load_info">
업데이트 중엔 창을 이동하지 마세요!
창을 이동하지 마세요!
</div>
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion app/views/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def f_user_test(request):
user_id = request.POST['user_id']
request.session['id'] = user_id

update_json(user_id)
# update_json(user_id)

return redirect('/mypage/')

Expand Down
12 changes: 5 additions & 7 deletions app/views/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,13 @@ def f_find_pw(request):
return redirect('/login/')
ui_row = ui_row[0]
# 대휴칼 셀레니움 돌리기(이름, 전공, 고독현황)
temp_user_info = selenium_DHC(user_id, pw)
temp_user_info = get_user_info(user_id, pw)
# 예외처리
if temp_user_info == 'err_auth':
messages.error(request, '⚠️ 세종대학교 포털 ID/PW를 다시 확인하세요! (Caps Lock 확인)')
messages.error(request, '⚠️ 세종대학교 포털 ID/PW를 다시 확인하세요! (Caps Lock 확인) \\n\\n (재외국민전형 입학자는 메일로 문의해주세요.)')
return redirect('/login/')
elif temp_user_info == 'err_enter_mybook':
messages.error(request, '⚠️ 계약학과, 편입생, 재외국민전형 입학자는 회원가입이 불가능합니다.😥 \\n\\n ❓❓ 이에 해당하지 않는다면 세종포털사이트에서의 설정을 확인하세요.\\n https://portal.sejong.ac.kr 로그인 👉 정보수정 👉 개인정보수집동의 모두 동의')
return redirect('/login/')
elif temp_user_info == 'err_all':
messages.error(request, '⛔ 대양휴머니티칼리지 로그인 중 예기치 못한 오류가 발생했습니다. 다시 시도해주세요 😥')
elif temp_user_info == 'err_server':
messages.error(request, '⛔ 대양휴머니티칼리지 로그인 중 예기치 못한 오류가 발생했습니다. 대양휴머니티칼리지 사이트의 서버 문제일 수 있으니 잠시 후 시도해주세요.')
return redirect('/login/')
# 임시 id를 세션에 넣어줌
request.session['temp_user_id'] = user_id
Expand Down
37 changes: 37 additions & 0 deletions app/views/crawler.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,46 @@
from bs4 import BeautifulSoup
from selenium import webdriver
from pyvirtualdisplay import Display
from sejong_univ_auth import auth, ClassicSession
# 모델 참조
from ..models import *


def get_user_info(id, pw):
res = auth(id=id, password=pw, methods=ClassicSession)

# 대휴칼 사이트 오류
if res.status_code != 200:
return "err_server"

# 로그인 오류 (ID/PW 틀림 or 가입불가 재학생)
if not res.is_auth:
return "err_auth"

# 사용자 정보
name = res.body["name"]
major = res.body["major"]

# 고전독서 인증현황
status = res.body["status"]
if status == "대체이수" :
book = "고특통과"
else :
read_certification = res.body["read_certification"]
book = ""
for num in read_certification.values() :
book += num.replace(" 권", "")

context = {
"name" : name,
"major" : major,
"book" : book
}
return context



# deprecated
def selenium_DHC(id, pw):
# 대양휴머니티칼리지 url
url = 'https://classic.sejong.ac.kr/userLoginPage.do'
Expand Down
11 changes: 4 additions & 7 deletions app/views/signup.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,14 @@ def f_certify(request):
return redirect('/agree/')

# 대휴칼 셀레니움 돌리기
temp_user_info = selenium_DHC(id, pw)
temp_user_info = get_user_info(id, pw)

# 예외처리
if temp_user_info == 'err_auth':
messages.error(request, '⚠️ 세종대학교 포털 ID/PW를 다시 확인하세요! (Caps Lock 확인)')
messages.error(request, '⚠️ 세종대학교 포털 ID/PW를 다시 확인하세요! (Caps Lock 확인) \\n\\n (재외국민전형 입학자, 계약학과, 편입생은 학생인증이 불가능합니다.😥)')
return redirect('/agree/')
elif temp_user_info == 'err_enter_mybook':
messages.error(request, '⚠️ 계약학과, 편입생, 재외국민전형 입학자는 회원가입이 불가능합니다.😥 \\n\\n ❓❓ 이에 해당하지 않는다면 세종포털사이트에서의 설정을 확인하세요.\\n https://portal.sejong.ac.kr 로그인 👉 정보수정 👉 개인정보수집동의 모두 동의')
return redirect('/agree/')
elif temp_user_info == 'err_all':
messages.error(request, '⛔ 대양휴머니티칼리지 로그인 중 예기치 못한 오류가 발생했습니다. 학교관련 포털이 다른 창에서 로그인되어 있다면 로그아웃 후 다시 시도하세요.')
elif temp_user_info == 'err_server':
messages.error(request, '⛔ 대양휴머니티칼리지 로그인 중 예기치 못한 오류가 발생했습니다. 대양휴머니티칼리지 사이트의 서버 문제일 수 있으니 잠시 후 시도해주세요.')
return redirect('/agree/')

# ***********************************************************************************
Expand Down
11 changes: 4 additions & 7 deletions app/views/update.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,13 @@ def f_mod_info(request):
user_id = request.session.get('id')
pw = request.POST.get('pw')
# 대휴칼 셀레니움 돌리기(이름, 전공, 고독현황)
temp_user_info = selenium_DHC(user_id, pw)
temp_user_info = get_user_info(user_id, pw)
# 예외처리
if temp_user_info == 'err_auth':
messages.error(request, '⚠️ 세종대학교 포털 ID/PW를 다시 확인하세요! (Caps Lock 확인)')
messages.error(request, '⚠️ 세종대학교 포털 ID/PW를 다시 확인하세요! (Caps Lock 확인) \\n\\n (재외국민전형 입학자는 업데이트가 불가능합니다.)')
return redirect('/mypage/')
elif temp_user_info == 'err_enter_mybook':
messages.error(request, '⚠️ 계약학과, 편입생, 재외국민전형 입학자는 회원가입이 불가능합니다.😥 \\n\\n ❓❓ 이에 해당하지 않는다면 세종포털사이트에서의 설정을 확인하세요.\\n https://portal.sejong.ac.kr 로그인 👉 정보수정 👉 개인정보수집동의 모두 동의')
return redirect('/mypage/')
elif temp_user_info == 'err_all':
messages.error(request, '⛔ 대양휴머니티칼리지 로그인 중 예기치 못한 오류가 발생했습니다. 다시 시도해주세요 😥')
elif temp_user_info == 'err_server':
messages.error(request, '⛔ 대양휴머니티칼리지 로그인 중 예기치 못한 오류가 발생했습니다. 대양휴머니티칼리지 사이트의 서버 문제일 수 있으니 잠시 후 시도해주세요.')
return redirect('/mypage/')
# 기본 정보 -> 변수에 저장
ui_row = NewUserInfo.objects.get(student_id = user_id)
Expand Down
5 changes: 1 addition & 4 deletions dev/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,4 @@ services:
- "8000:8000"
volumes:
- ../:/srv/PleaseGraduate/
command: bash docker_cmd.sh dev

# local -> 항상 root 경로에서 터미널 실행!
# docker-compose -p dev_compose -f dev/docker-compose.yml up -d
command: bash docker_cmd.sh dev
Loading

0 comments on commit 245f151

Please sign in to comment.