diff --git a/tokimonkeyDownader.js b/tokimonkeyDownader.js index 6160408..215c861 100644 --- a/tokimonkeyDownader.js +++ b/tokimonkeyDownader.js @@ -74,6 +74,7 @@ const QUEUE_KEY = 'sbxh6_q'; const IDX_KEY = 'sbxh6_i'; const SERIES_KEY = 'sbxh6_s'; + const LIST_KEY = 'sbxh6_list'; const getQueue = () => { try { return JSON.parse(sessionStorage.getItem(QUEUE_KEY) || 'null'); } catch (_) { return null; } @@ -85,6 +86,7 @@ sessionStorage.removeItem(QUEUE_KEY); sessionStorage.removeItem(IDX_KEY); sessionStorage.removeItem(SERIES_KEY); + sessionStorage.removeItem(LIST_KEY); }; function generateComicInfo(title, series, writer, number, pageCount, imageCount = 0) { @@ -210,14 +212,14 @@ ${pagesXml ? ` \n${pagesXml} \n` : ''} stuckCount = 0; } prevHeight = maxScroll; - // 현재 위치에서 끝까지 step 단위로 스크롤 - const step = Math.min(500, maxScroll); + // 현재 위치에서 끝까지 step 단위로 스크롤 (느리게) + const step = Math.min(300, maxScroll); for (let s = window.scrollY; s <= maxScroll; s += step) { window.scrollTo(0, Math.min(s, maxScroll)); - await sleep(80); + await sleep(300); } window.scrollTo(0, maxScroll); - await sleep(1000); + await sleep(1500); } // 끝까지 다 내려간 상태에서 여유 대기 await sleep(2000); @@ -333,6 +335,7 @@ ${pagesXml ? ` \n${pagesXml} \n` : ''} sessionStorage.setItem(QUEUE_KEY, JSON.stringify(episodes)); sessionStorage.setItem(SERIES_KEY, seriesName); sessionStorage.setItem(IDX_KEY, '0'); + sessionStorage.setItem(LIST_KEY, window.location.href); window.location.href = episodes[0].url; } @@ -347,7 +350,7 @@ ${pagesXml ? ` \n${pagesXml} \n` : ''} if (idx >= queue.length) { cleanupQueue(); return; } log(`자동 다운로드: ${idx + 1}/${queue.length} - ${queue[idx].title}`); - await sleep(2000); + await sleep(7000); try { const imageUrls = await getImagesWithLazyLoad(); @@ -370,8 +373,14 @@ ${pagesXml ? ` \n${pagesXml} \n` : ''} await sleep(2000); window.location.href = queue[next].url; } else { + const listUrl = sessionStorage.getItem(LIST_KEY); cleanupQueue(); log('모든 에피소드 다운로드 완료!'); + if (listUrl) { + log('목록 페이지로 복귀합니다...'); + await sleep(2000); + window.location.href = listUrl; + } } };