您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
국회입법예고 의견을 보다 쉽게 입력이 가능합니다
// ==UserScript== // @name 입법예고의견 자동화 // @namespace http://greasyfork.icu/ko/scripts/527618-%EC%9E%85%EB%B2%95%EC%98%88%EA%B3%A0%EC%9D%98%EA%B2%AC-%EC%9E%90%EB%8F%99%ED%99%94 // @version v1.0 // @description 국회입법예고 의견을 보다 쉽게 입력이 가능합니다 // @license MIT // @author nancy // @match https://pal.assembly.go.kr/napal/lgsltpa/* // @match https://vforkorea.com/assem/* // @icon https://vforkorea.com/favicon.ico // @grant none // @require http://code.jquery.com/jquery-latest.js // ==/UserScript== //vforkorea alt+a로 선택영역 링크열기 //제안이유 스킵하기, 스페이스,엔터로 넘기기,3초후 자동넘기기 //제목,내용 자동입력, 보안입력감시, 보안문자입력 후 스페이스,엔터 입력시 확인클릭 //`또는 alt+a 입력시 찬성,반대 토글 //창 비활성화일 때 이미 등록시 3초후 종료 //청원목록 3초 후 자동종료 //*연속링크열기 후 보안문자 최초입력시 마지막링크 문자입력 //*연속링크열기 후 보안문자 최초입력후 alt+s or '\' or '입력'버튼 눌러 보안문자 자동입력 //*ctrl+tab 또는 ctrl+shift+tab를 눌러 탭을 이동하면서 같은 입력으로 연속등록가능 //크롬,엣지설치 확장 개발자모드로 변경,vforkorea 팝업허용 //디시이용자 스크립트 참조함 (function() { 'use strict'; var yes_title = '찬성합니다' //제목 찬성 입력값 var yes_content = '해당 법안을 강력히 찬성합니다' //내용 찬성 입력값(10자이상추천) var no_title = '반대합니다' //제목 반대 입력값 var no_content = '해당 법안을 강력히 반대합니다' //내용 반대 입력값(10자이상추천) var lgsltpaOngoing_skip = true // 제안이유 스킵 true, false var delay1 =3000 //제안이유 클릭 대기시간 밀리초(ms) var delay2 =3000 //의견목록 탭종료 대기시간 밀리초(ms), 오류가능성 높음 var monitor = true // 보안문자 입력 감시하기 예 true, 아니오 false var link_open_delay = 1500 //vkorea 링크 열기 딜레이 //console.log("청원자동화"); if (document.URL.search("lgsltpaOngoing") != -1){ //console.log('제안이유'); if (lgsltpaOngoing_skip)window.location.href = document.URL.replace("lgsltpaOngoing/view","lgsltpaOpn/forInsert") else setTimeout(function (){$(".btn_opnReg")[0].click()},delay1)//3초 후 클릭 }else if (document.URL.search("forInsert") != -1){ //console.log('의견등록'); if ($("#txt_sj").length == 0){ setTimeout(function (){window.close();},3000) //비활성화 이미 등록시 3초 후 종료 }else{ //$("#reLoad")[0].click()//보안문제 리로드 $( "h4:contains('의견 작성')" ).text($(".legislation-heading > h3").text()) $( "h4:contains('보안문자 확인')" ).remove() $("#txt_sj")[0].style.height="30px"//제목 $("#txt_cn")[0].style.height="30px"//내용 $("#txt_sj")[0].value=no_title //제목 $("#txt_cn")[0].value=no_content //내용 var catpcha = $("#catpchaAnswer")[0] catpcha.focus() //보안입력 포커스 if(catpcha.value.length==5) catpcha.value = ''; if (monitor == true) monitor_catpcha() var str = '<a href="#" class="btn_reg" id="btn_opnInput">입력</a>' $("#btn_opnReg")[0].insertAdjacentHTML("beforebegin", str); $("#btn_opnInput").click(function() {$("#catpchaAnswer")[0].value = '11111';sendform()}); } }else if (document.URL.search("forUpdate") != -1){//수정 $( "h4:contains('의견 작성')" ).text($(".legislation-heading > h3").text()) $("#txt_sj")[0].style.height="30px"//제목 $("#txt_cn")[0].style.height="30px"//내용 $("#txt_cn").focus() }else if (document.URL.search(/list.do/i) != -1){ //console.log("의견 목록") setTimeout(function() {window.close();}, delay2);//3초후 종료 } if (document.URL.search(/vforkorea.com/i) != -1) document.addEventListener('keydown', onkeydown, false);//키입력 감시 else document.addEventListener('keydown', onkeydown2, false);//키입력 감시 function monitor_catpcha() {//보안문자 입력 감시 let lastUpdateTime = 0 let cancelTimer //console.log('보안입력 감시') cancelTimer = requestAnimationFrame(animationPerSecond) function animationPerSecond(timestamp) { const actionTime = new Date() let l if (actionTime - lastUpdateTime > 500 ) {//500ms 주기 감시 l = $("#catpchaAnswer")[0].value.length if(l==5){ sendform() cancelAnimationFrame(cancelTimer ) return } lastUpdateTime = actionTime } requestAnimationFrame(animationPerSecond) } } function sendform() { trimAllInputText(); if (!validate()) { return false; } $(".loading_bar").show(); checkWebFilter($("#frm")); } function getSelectedContentLinks2(sel) { var range = sel.getRangeAt(0); var URLtoOpen = []; var selectionContents = range.cloneContents(); var div = document.createElement("div"); div.appendChild(selectionContents); var urllist=div.getElementsByTagName('a'); console.log(urllist); for (var i in urllist) { //console.log(urllist[i].href); if (urllist[i].href != undefined && urllist[i].href.match(/pal.assembly.go.kr.+lgsltpaOngoing/i)) if (URLtoOpen.indexOf(urllist[i].href) == -1) URLtoOpen.push(urllist[i].href); } //console.log(URLtoOpen); return URLtoOpen } function isSelected(sel) { return !sel.isCollapsed; } function onkeydown(event) {//vkorea 선택영역 링크열기 var sel = event.view.getSelection(); if ((event.keyCode == 192) || event.altKey && event.keyCode == 65 ){ /* ` or alt+a*/ if (isSelected(sel)) { let links = getSelectedContentLinks2(sel); if (links.length != 0 ){ //document.title = '[' + links.length + ']개 열기' //console.log(links); for (let j in links){ setTimeout(function (x,y){ document.title = '[' + x+'/'+y + ']개 열기' const vlink = document.createElement("a"); vlink.target = "_blank"; vlink.href = links[j] document.body.appendChild(vlink); vlink.click(); vlink.remove(); },link_open_delay*j,Number(j)+1, links.length)//1.5초 간격열기 } } } } } function onkeydown2(event) { if (event.keyCode == 32 || event.keyCode == 13){ /* space or enter */ if (document.URL.search("lgsltpaOngoing") != -1) $(".btn_opnReg")[0].click() else if (document.URL.search(/orInsert|forUpdate/i) != -1) sendform() else if (document.URL.search(/list.do/) != -1) window.close(); }else if ((event.keyCode == 192) || event.altKey && event.keyCode == 65 ){ /* ` or alt+a*/ if ( $("#txt_sj")[0].value.indexOf("반대") != -1 ){ $("#txt_sj")[0].value=yes_title //제목 $("#txt_cn")[0].value=yes_content //내용 document.title = '찬성합니다.' }else{ $("#txt_sj")[0].value=no_title //제목 $("#txt_cn")[0].value=no_content //내용 document.title = '반대합니다.' } if (document.URL.search("forUpdate") != -1) $("#catpchaAnswer")[0].focus() //보안문제 포커스 }else if(event.altKey && event.keyCode == 83 || event.keyCode == 220){ / '\' or alt+s*/ catpcha = $("#catpchaAnswer")[0] catpcha.value = '11111'; sendform() } } })();