통합 검색

통합 검색

메크로를 사용하여 솜노트 기록 내용들을 자동으로 txt파일 형태로 저장하게 하였다.
  • 작성자 관리자
  • 조회수 53
2023-11-05 22:55:02


솜노트는 간편하고 모바일, 데스크톱 가리지 않고 사용할 수 있어서 편리하다. 


그러나 외부파일로 저장을 하려면 일일이 한글파일에 복붙을 해야 하는데 


각 필기 내용은 10만자로 제한이 되어있어


파일수도 많아지고 10만자를 한글파일에 붙여 넣으면 렉이 엄청났다.


이번엔 귀찮아서 한참을 미루다 보니 230개의 목록이 있어 


어떻게 할까 고민하다가 


HTML 코드를 뜯어 보니 비동기 방식을 사용해서 


데이터 값만 넣어주는 식이라는 것을 알게 되었다.


그래서 JavaScript로 setTimeout을 걸어서 모든 li에 대해 선택하고 


innerHTML로 해당 데이터를 저장해서 TXT로 내보내는 메크로를 만들어서 해결하였다. 


30초를 걸어 보았는데 속도가 괜찮아서 


5초로 TIME을 조절해서 파일 형태로 전부 내보내는데 성공하였다. 


javascript
// 반복 작업을 수행할 함수 function performTask(index) { // #snb_middle의 ul 요소를 가져옵니다. var ulElement = document.querySelector('#snb_middle ul'); // 모든 li 요소를 선택합니다. var liElements = ulElement.querySelectorAll('li'); // 해당 li를 클릭합니다. liElements[index].click(); // 5초 후에 다음 작업을 실행합니다. setTimeout(function() { // #editor에서 innerHTML을 추출합니다. var editorContent = document.querySelector('#editor').innerHTML; // 텍스트 파일로 저장합니다. 파일 이름은 '솜노트20231105_'와 index로 지정합니다. var blob = new Blob([editorContent], { type: 'text/plain' }); var fileName = '솜노트20231105_' + index + '.txt'; // 다운로드 링크를 생성하고 클릭하여 파일을 다운로드합니다. var a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = fileName; a.style.display = 'none'; document.body.appendChild(a); a.click(); document.body.removeChild(a); // 다음 반복 작업을 위해 index를 증가합니다. index++; // 5초마다 performTask 함수를 다시 호출하여 다음 작업을 예약합니다. setTimeout(function() { performTask(index); }, 5000); }, 5000); } // 초기 반복 작업을 시작합니다. (index 초기값은 0) performTask(0);


댓글 0

답글 보기
  • 답글
답글 쓰기