Skip to content

Instantly share code, notes, and snippets.

@gnujoow
Forked from junhoyeo/hunet-hack.js
Created December 10, 2024 08:30
Show Gist options
  • Save gnujoow/109f4675898e7b7d10d14be27968f564 to your computer and use it in GitHub Desktop.
Save gnujoow/109f4675898e7b7d10d14be27968f564 to your computer and use it in GitHub Desktop.

방법

  1. 비디오 열고 나서 마우스 우클릭
  2. ‘검사’ 선택, 그러면 개발자도구 열릴 것
  3. 개발자도구의 ‘콘솔’에 위의 코드 삽입. 단, chapterNo 값을 차시에 따라 0101 ~ 0104 로 바꿔서 넣어주세요
  4. 그다음 열린 비디오 창 새로고침하면 끗

작동원리

  • 웹앱은 클라이언트 사이드에서, 1초마다 fn_saveProgress 를 호출해 jwplayer 의 상태, heartbeat 등등을 검증한 뒤에 진행도 값 studySec 을 구합니다.
  • markList라는 변수에 세이브포인트(?) 목록이 있는데, 여기서 하나씩 완료할 때마다 진행도를 백엔드에 저장하는 Ajax 콜(ProgressSave.aspx)을 보내고 있습니다. 여기에는 chapterNo (어떤 회차의 강의인지) 와 currentPosition (얼만큼 진행했는지) 가 포함됩니다.
  • 👉 currentPosition 을 적절히 큰 값(13245) 으로 넣어서 저장하는 콜을 수동으로 때려버리면 진행도가 동영상의 끝으로 저장되게 됩니다. 새로고침하면 - 변경된 값이 저장되면서, 완료로 잘 들어가는 것!!

트러블슈팅

  • 다른 위치에서 로그인 되었습니다 라는 알림만 뜨면, 님 컴이 takeCourseSeq 값이 달라서 그래요. 개발자도구 열고 요소(Elements) 탭에서 takeCourseSeq 로 검색하면, 님의 고유값을 찾을 수 있어요. 이거 넣고 다시 실행해보심 됩니다.
var param = "chapterNo=0101&current_frame_count=1&currentPosition="+ 13245+'&courseCd=HLSC60332&takeCourseSeq=40116154&_'+$.now();
$.get('ProgressSave.aspx',param,function(data){
if(data=="N"){
alert('다른 위치에서 로그인 되었습니다. 학습이 종료되며 로그아웃됩니다.');
top.close();
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment