
모바일로 학교 홈페이지 들어가면 공지사항 맨날 잘린다.

들어가서 일일이 확인하기도 귀찮고, 눈에도 잘 안들어와서 아이폰 단축어로 학교 공지사항을 가져올 수 있도록 만들었다.
단축어 공유
링크를 연결하여 해당 공지사항을 상세히 볼 수 있도록 하였다.
건국대학교 공지사항 단축어
https://www.icloud.com/shortcuts/16998bd521a1492dbcb0c02ba0ab212a

학교 웹사이트 Html을 가져와서 정규표현식으로 파싱해서 만들었다.
단축어 만들기
1. 학교 공지사항 URL 가져오기
학교 공지중에서 크게 의미 있는 공지는 학사공지, 장학공지, 취/창업 공지, 학생공지, 국제공지 정도 였기에 우선적으로 각각 개별 목록으로 만들고 크롬을 통해서 각각의 공지마다 URL을 찾았다.
iframe = document.getElementById("iframe_main");
if(i == 5) {
iframe.src = "https://www.konkuk.ac.kr:443"+"/jsp/Plaza/plaza_01_09_list.jsp";
} else if (i == 1 || i == 2 || i == 3 || i == 6 ) {
iframe.src = "https://www.konkuk.ac.kr:443"+"/do/MessageBoard/ArticleList.do?forum=notice&cat=000030000"+i;
} else if (i == 4) {
iframe.src = "https://www.konkuk.ac.kr:443"+"/do/MessageBoard/ArticleList.do?forum=65659&cat=0010300001";
}else if (i == 7) {
iframe.src = "https://www.konkuk.ac.kr:443"+"/do/MessageBoard/ArticleList.do?forum=11688412";
}else if (i == 8) {
iframe.src = "https://www.konkuk.ac.kr:443"+"/do/MessageBoard/ArticleList.do?forum=11731332";
}else if (i == 9) {
//iframe.src = "http://www.konkuk.ac.kr/do/MessageBoard/ArticleList.do?forum=11771557";
iframe.src = "https://www.konkuk.ac.kr:443"+"/do/MessageBoard/ArticleList.do?forum=11782906";
}
해당 URL을 단순히 가져오는 것이므로 GET메소드를 이용해서 가져오고 이를 기반으로 HTML을 만들었다.

2. 가져온 HTML 파싱하기
정규표현식을 이용해서 일일이 파싱해줘야 하니 생각보다 오래걸렸다.
우선적으로 단축어의 텍스트 훑어보기를 이용해서 가져온 HTML을 확인해보았다.
<td class="subject">
<a href="ArticleRead.do?forum=notice&sort=6&cat=0000300001&id=5b46fc0">
2021-2 힐링바이오공유대학 부전공 수강생 모집 연장 안내(7.21~27.)</a>
</td>
td class="subject" 로 링크와 공지가 연결되어 있었다.

텍스트 일치에서 <td[^<>]class="subject"[^<>]>[\s\S]*?<\/td> 로 Class 내부의 내용을 가져온다. 텍스트 훑어보기를 이용해서 확인하면 다음과 같은 형태로 나타난다.
<td class="subject">
<a href="ArticleRead.do?forum=notice&sort=6&cat=0000300001&id=5b47065">
수강바구니(수강신청) 방법 및 일정 안내</a>
</td>
이중에서 텍스트 대치를 이용해서 글자 앞 부분에 스페이스를 ㅍㅅ변수로 변환하고(아무 변수나 변환해도 상관없다), 텍스트 일치를 이용해서 (?<=[ㅍ][ㅅ]).*(?=[<][/][a][>]) 로 공지글을 가져온다.
+)<와 >는 html을 가져올 때 일부 오류가 나서 추가하였다.
3.목록형태로 변환하고 링크와 연동하기
다음 결과를 notifylist 변수에 추가하고 목록에서 선택을 통해서 선택할 수 있도록 선택창을 띄워준다.
다음 링크를 가져온 html파일에서 링크를 가져와준다. 아까 <td[^<>]class="subject"[^<>]>[\s\S]*?<\/td>가져온 텍스트를 다시 이용한다.
(?<=[A][r][t][i][c][l][e][R][e][a][d][.][d][o][?]).*(?=["][>]) 링크의 뒷자리를 가져와준다. 이 값을 urllist로 저장해준다.
다음 목록에서 선택한 인덱스 값에 1을 더해 인덱스 값을 보정하고, urllist에서 해당 인덱스를 찾아 URL을 연동해준다.
'Others' 카테고리의 다른 글
Stack Overflow 시작하기 (0) | 2021.11.29 |
---|