├── LICENSE ├── README.md ├── fuckEBS.js ├── fuckEBSMid.js └── fuckEBSi.js /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Sangoon_Is_Noob 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Fuck EBS Lecture 2 | ## Script By Sangoon_Is_Noob#1683 3 | ## 이 스크립트는 브라우저 콘솔 (개발자 도구) 에서 사용하는 스크립트입니다. 4 | 5 | ### 사용 전 스크린샷 6 | ![사용 전](https://cdn.discordapp.com/attachments/688667754009591917/688789954779676832/unknown.png) 7 | 8 | ### 사용 후 스크린샷 9 | ![사용 후](https://cdn.discordapp.com/attachments/688667754009591917/688789600990265416/unknown.png) 10 | 11 | 12 | # 사용 방법 13 | 14 | ## 1. EBS 강의 보기 페이지에 접속한다 15 | ![강의 보기 페이지 스크린샷](https://cdn.discordapp.com/attachments/688667754009591917/688791099833319433/unknown.png) 16 | 17 | ## 2. EBS 강의 보기 페이지에서 F12 또는 CTRL + SHIFT + I 를 누른다 18 | ![강의 보기 페이지 개발자도구](https://cdn.discordapp.com/attachments/688667754009591917/688791809853620245/unknown.png) 19 | ### 2-1. 개발자 도구 탭에서 Console 을 클릭한다. 20 | ![콘솔 탭 스크린샷](https://cdn.discordapp.com/attachments/688667754009591917/688793495623958557/unknown.png) 21 | ### 2-2. 콘솔창에 아래의 코드를 복사 붙여넣기 한다 (CTRL C => CTRL V) 22 | ![복붙 스크린샷](https://cdn.discordapp.com/attachments/688667754009591917/688792148258455553/unknown.png) 23 | #### 복사 붙여넣기 할 코드 24 | ```js 25 | function postToEBS (lctreSn) { 26 | const atnlcNo = $('#atnlcNo').val() 27 | const lctreSeCode = $('#lctreSeCode').val() 28 | const stepSn = $('#stepSn').val() 29 | const cntntsTyCode = $('#cntntsTyCode').val() 30 | const revivTime = $('#revivTime').val() 31 | 32 | const postData = {} 33 | postData.atnlcNo = atnlcNo 34 | postData.lctreSn = lctreSn 35 | postData.stepSn = stepSn 36 | postData.lctreSeCode = lctreSeCode 37 | postData.cntntsTyCode = cntntsTyCode 38 | postData.revivTime = revivTime 39 | postData.endButtonYn = 'Y' 40 | postData.lastRevivLc = revivTime 41 | 42 | postData.lrnTime = revivTime 43 | 44 | fncPost('/mypage/userlrn/lctreLrnSave.do', postData, () => { 45 | console.log('Success: ' + lctreSn) 46 | }) 47 | } 48 | 49 | const steps = $('#mainContent > aside > nav > ul').children().length 50 | const lctreSn = Number($('#lctreSn').val()) 51 | console.log(`atnlcNo: ${$('#atnlcNo').val()} 52 | lctreSeCode: ${$('#lctreSeCode').val()} 53 | stepSn: ${$('#stepSn').val()} 54 | cntntsTyCode: ${$('#cntntsTyCode').val()} 55 | revivTime: ${$('#revivTime').val()} 56 | -------------------------------------- 57 | ${steps} Steps 58 | Starting LctreSn (${lctreSn}) 59 | End LctreSn (${lctreSn + (steps - 1)})`) 60 | for (let i = lctreSn; i <= lctreSn + (steps - 1); i++) { 61 | console.log(`Sending Success Code to ${i}`) 62 | postToEBS(i) 63 | } 64 | ``` 65 | ### 2-3. 엔터키를 누른후 오류가 난다면 Issue 에 오류 내용을 첨부해주고, 완료될때 까지 기다린다 (Success 글씨가 더이상 뜨지 않을 때 까지) 66 | ![콘솔스샷](https://cdn.discordapp.com/attachments/688667754009591917/688792449019412542/unknown.png) 67 | ### 2-4. 완료되었다면 새로고침을 한다. 68 | ![새로고침후 사진](https://cdn.discordapp.com/attachments/688667754009591917/688792685892730885/unknown.png) 69 | ![완료사진](https://cdn.discordapp.com/attachments/688667754009591917/688792750157856802/unknown.png) 70 | 71 | ## Thanks For Using :D 72 | -------------------------------------------------------------------------------- /fuckEBS.js: -------------------------------------------------------------------------------- 1 | function postToEBS (lctreSn) { 2 | const atnlcNo = $('#atnlcNo').val() 3 | const lctreSeCode = $('#lctreSeCode').val() 4 | const stepSn = $('#stepSn').val() 5 | const cntntsTyCode = $('#cntntsTyCode').val() 6 | const revivTime = $('#revivTime').val() 7 | 8 | const postData = {} 9 | postData.atnlcNo = atnlcNo 10 | postData.lctreSn = lctreSn 11 | postData.stepSn = stepSn 12 | postData.lctreSeCode = lctreSeCode 13 | postData.cntntsTyCode = cntntsTyCode 14 | postData.revivTime = revivTime 15 | postData.endButtonYn = 'Y' 16 | postData.lastRevivLc = revivTime 17 | 18 | postData.lrnTime = revivTime 19 | 20 | fncPost('/mypage/userlrn/lctreLrnSave.do', postData, () => { 21 | console.log('Success: ' + lctreSn) 22 | }) 23 | } 24 | 25 | const steps = $('#mainContent > aside > nav > ul').children().length 26 | const lctreSn = Number($('#lctreSn').val()) 27 | console.log(`atnlcNo: ${$('#atnlcNo').val()} 28 | lctreSeCode: ${$('#lctreSeCode').val()} 29 | stepSn: ${$('#stepSn').val()} 30 | cntntsTyCode: ${$('#cntntsTyCode').val()} 31 | revivTime: ${$('#revivTime').val()} 32 | -------------------------------------- 33 | ${steps} Steps 34 | Starting LctreSn (${lctreSn}) 35 | End LctreSn (${lctreSn + (steps - 1)})`) 36 | for (let i = lctreSn; i <= lctreSn + (steps - 1); i++) { 37 | console.log(`Sending Success Code to ${i}`) 38 | postToEBS(i) 39 | } 40 | -------------------------------------------------------------------------------- /fuckEBSMid.js: -------------------------------------------------------------------------------- 1 | function getToEBS (lctreSn) { 2 | // by @pmh-only 3 | var saveUrl = '/user/lecture/status/save' 4 | if (IS_SDL) saveUrl = '/user/lecture/status/sdlSave' 5 | 6 | const param = 7 | 'courseId=' + courseID + 8 | '&stepId=' + stepID + 9 | '&lectureId=' + lctreSn + 10 | '&enrollNo=' + enrollNO + 11 | '&encodingTypeCode=' + encType + 12 | '&lastStudyTime=' + 99999 + 13 | '&lastStudyLocation=' + 99999 + 14 | '&partAccumulateStudyTime=' + 0 15 | 16 | console.log(`Sending Success Code to ${lctreSn}`) 17 | makeRequest(saveUrl, param) 18 | } 19 | 20 | const arr = [] 21 | $('.titlez').each((_, e) => arr.push(eval(e.onclick.toString().split(',')[2]))) 22 | arr.forEach(getToEBS) 23 | 24 | -------------------------------------------------------------------------------- /fuckEBSi.js: -------------------------------------------------------------------------------- 1 | function postToEBS (_, lctreSn) { 2 | const lessonId = lctreSn.id 3 | const sbjtapplyId = window.frmStudyPlayer.sbjtapplyId.value 4 | const sbjtId = window.frmStudyPlayer.sbjtId.value 5 | 6 | // 학습 중용 데이터 7 | let value = { lessonId, sbjtapplyId, sbjtId, clntGbnCd: "C", second: "1", lecGbn: "V500", atndGbnCd: "S", ltStdTm: "1", status: "0" } 8 | 9 | // 학습중으로 변경 10 | jQuery.ajax({ 11 | type: 'POST', 12 | async: false, 13 | url: '/ebs/lms/lmsHist/saveLmsLessonHistDtlAjax.ebs', 14 | data: value, 15 | cache: false, 16 | success: function() { 17 | console.log('Success: ' + lessonId) 18 | } 19 | }) 20 | 21 | // 학습 완료용 데이터 22 | value = { lessonId, sbjtapplyId, eventType: "N" } 23 | 24 | // 학습 완료로 변경 25 | jQuery.ajax({ 26 | type: 'POST', 27 | async: false, 28 | url: '/ebs/lms/lmsHist/saveLmsLessonHistCompletedAjax.ebs', 29 | data: value, 30 | cache: false, 31 | success: function() { 32 | console.log('Success: ' + lessonId) 33 | } 34 | }) 35 | } 36 | 37 | jQuery('tbody.lessonList>tr').each(postToEBS) 38 | --------------------------------------------------------------------------------