연세대학교 YSCEC 공지사항 Fetch Tool

Introduction


우리 학교엔 YSCEC이라는 것이 있다. 정식 명칭은 연세 지식 창조 커뮤니티인데, 그냥 온라인으로 공지사항이나 과제를 확인할 수 있는 곳이다. 나름 사용률이 높아서 대부분의 교수님들이 애용하고 계신다. 여러 유용한 정보들도 많이 올라오기 때문에 하루에 한번씩은 들어가서 확인을 해줘야 한다. 이게 바로 불편함의 발단… 까먹고 못보고 있다가 과제 하나라도 놓치는 날엔, 학기 끝날 때까지 그 억울함을 지울 수 없을거야 아마…

YSCEC이 다 좋은데 학교에서 별도로 서비스하고 있는 모바일 앱이 없다. 대부분의 학생들이 스마트폰은 항상 지니고 있기 때문에 앱이 있다면 그걸 더 많이 사용할 것 같지만, 안타깝게도 없다. 예전에 몇몇 학생이 모여 만든 _연앱_이라는 것이 있긴 있었다. 새로운 공지사항이 뜨면 서버에서 일정한 주기로 페이지를 크롤링해서 푸시 알림을 주는 기능도 있었다. 사실 이 기능 덕분에 대다수의 학생들이 이 앱을 사용했었다. 근데 서버 관리 비용을 부담할 수 없었는 지, 어느 순간부터 서비스가 제대로 되지 않았다. 때마침 얼마 가지 않아 학교에선 YSCEC을 전면 개편했다.

지금 듣고 있는 수업 중에 _응용 프로그래밍_이라는 수업이 있는데, Java, Android, Python, Html… 등등의 언어를 배우는 수업이다. 무려 한 학기 동안. 많기도 하지… 이 수업이 중간고사를 보지 않고 프로젝트로 그걸 대체하는데, 배운 걸 활용해서 Android 앱을 만든다는… 뭐 대충 그런 프로젝트이다. 뭘 만들까 생각하다보니 그냥 예전에 없어진 연앱이 떠올랐다. 사실 웹 페이지를 크롤링해서 필요한 정보들만 앱에 딱딱 띄어주는 것이 그렇게 어려운 것도 아닌데다가, 그것에 비해 유용함은 극에 달하기 때문에 성적과 쓸모 있음 두 가지를 모두 얻을 수 있는 것이라 할 수 있겠다.

근데 지금이 시험 기간이라 나 혼자 프로젝트를 시작할 순 없고, 같이 듣는 형이랑 같이 해야 하는데, 또 코딩은 하고 싶고, 그래서 일단 내가 쓰는 리눅스에서 사용할 Tool을 Python으로 간단하게 만들었다. 아직 기능은 공지사항을 YSCEC에서 싹 긁어와서 뿌려주고 각각에 할당된 인덱스를 입력하면 그 내용과 첨부파일을 보여주는 정도이다. 기능들은 자잘하게 조금씩 업데이트할 예정.

도움의 손길을 구합니다

Python wget 모듈을 사용해서 첨부파일을 한번에 다운로드 받을 수 있는 기능을 구현했는데, 이게 잘 안됩니다. 받아오는 과정에서 데이터가 깨지는 지, 파일이 열리지 않습니다. 이것에 대해서 팁을 가지고 있는 분이 계시면 댓글로 좀 달아주세요... 꼭 wget 모듈이 아니어도 됩니다.


Install


YSCEC-Notice-Fetch-Tool

위의 파일을 다운로드 받아 해당 경로로 가서 아래 명령어로 그냥 설치하면 된다.

$ sudo dpkg -i yscec.deb
$ source ~/.bashrc

아니면 그냥 Files에서 더블 클릭해서 설치해도 된다. 그렇게 설치해도 아래

$ source ~/.bashrc

는 한번 해주자. 변경된 .bashrc을 시스템에 적용하는 명령어인데, 사실 이건 Debian Package안에 postinst에 포함할 수 있다. 그런데 뭐가 문젠지 패키징 과정에서 오류가 발생해서 일단은 빼놨다.


Use


터미널에서

$ yscec

만 입력하면 된다.


Video


You've successfully subscribed to devkoriel
Great! Next, complete checkout to get full access to all premium content.
Error! Could not sign up. invalid link.
Welcome back! You've successfully signed in.
Error! Could not sign in. Please try again.
Success! Your account is fully activated, you now have access to all content.
Error! Stripe checkout failed.
Success! Your billing info is updated.
Error! Billing info update failed.