\s*)*]{0,}[ㄱ-ㅣ가-힣0-9A-Za-z\s~`!^\_+@\#$%&=]{0,}(ㄱㄹ){1,1}[ㄱ-ㅣ가-힣0-9A-Za-z\s~`!^\_+@\#$%&=]{0,}[(\s*
)*]{0,}/); setTimeout(aaa, 100); } function waitForKoneContent() { let attempts = 0; const maxAttempts = 20; const checkInterval = setInterval(async () => { attempts++; await handleBlockingModals(host); const atc = getKoneGGContentElement(); const titleEl = [...document.querySelectorAll('h1.flex, h1.text-xl')].find(el => el.textContent?.match(/RJ[0-9]{6,10}|VJ[0-9]{6,10}/i) ); const hasBase64 = atc && /aHR0c|YUhSMG|WVVoU|V1ZWb/.test(atc.textContent || ''); if (atc && (titleEl || hasBase64) && (atc.textContent || '').length > 10) { clearInterval(checkInterval); FindPW(); setTimeout(() => { doDec(); }, 200); } else if (attempts >= maxAttempts) { clearInterval(checkInterval); } else { } }, 200); } async function aaa() { const saved = await GM.getValue('npw'); if (Array.isArray(saved)) { npw = [...new Set([...npw, ...saved])]; } else { } } (async () => { await chkPW(); await handleBlockingModals(host); if (host === 'arca.live') { FindPW(); setTimeout(doDec, 200); } else if (host === 'kone.gg') { waitForKoneContent(); } if(host=='kio.ac'){ await aaa(); chkp[0]='.overflow-auto.max-w-full.max-h-full.flex-grow.p-1 input:nth-of-type(1)'; chkp[1]='.flex.flex-col-reverse button:nth-of-type(1)'; chkp[2]='.p-2.align-middle .flex.align-middle button:nth-of-type(1)'; isT[2]=true; PageLoading[1]=3500; setTimeout(inputPW, (PageLoading[0] || 1000) + 2000); } if(host=='mega.nz'){ await aaa(); chkp[0]='#password-decrypt-input'; chkp[1]='.mega-button.positive.fm-dialog-new-folder-button.decrypt-link-button'; chkp[2]='.mega-button.positive.js-default-download.js-standard-download'; PageLoading[1]=4000; isT[2]=false; setTimeout(inputPW, (PageLoading[0] || 1000) + 1800); } if(host=='kiosk.ac'){ await aaa(); chkp[0]='.input.shadow-xl.flex-grow'; chkp[1]='.btn.btn-ghost.w-full.mt-2.rounded-md'; if(Down_Option==2) chkp[2]='.flex.justify-between.w-full .flex.gap-2 .btn.btn-ghost'; else chkp[2]='#vexplorer-body .hover\\:bg-neutral .dropdown button, #vexplorer-body > div > div > div.flex.justify-between.w-full > div.flex.gap-2 > button:not(.btn-disabled)'; if(Down_Option==0) isT[2]=true; else isT[2]=false; PageLoading[1]=3000; setTimeout(inputPW, (PageLoading[0] || 1000)); } if(host=='workupload.com'){ await aaa(); chkp[0]='#passwordprotected_file_password'; chkp[1]='#passwordprotected_file_submit'; chkp[2]='a.btn.btn-prio[href*="/file/"]'; if(Down_Option==0) isT[2]=true; else isT[2]=false; PageLoading[1]=2000; setTimeout(inputPW, (PageLoading[0] || 1000)); } if(host=='drive.google.com'){ await aaa(); if(document.URL.includes('/file/d/')){ const fileId = document.URL.split('/d/')[1].split('/')[0]; if (fileId) { window.location.href=`https://drive.usercontent.google.com/download?id=${fileId}&export=download&authuser=0`; } } if(document.URL.includes('/drive/folders/')){ setTimeout(()=> { if(isT[0]==true) { const downloadAllButton = document.querySelector('div[aria-label="모두 다운로드"], div[data-tooltip="모두 다운로드"]'); if (downloadAllButton) { downloadAllButton.click(); } else { const firstItemDownloadButton = document.querySelector('div[role="gridcell"][data-is-shared="false"] div[aria-label*="다운로드"]'); if(firstItemDownloadButton) { firstItemDownloadButton.click(); } } } }, (PageLoading[0] || 1000) + 1500); chkp[2]='.h-De-Vb.h-De-Y'; PageLoading[1]=1; isT[2]=true; setTimeout(()=> { if(isT[0]==true) setTimeout(DBtn, 3500);}, (PageLoading[0] || 1000)); } } if(host=='drive.usercontent.google.com'){ await aaa(); chkp[2]='form[method="POST"] button[type="submit"], input[type="submit"][value="다운로드"], button.jfk-button-action'; isT[2]=true; setTimeout(()=> { if(isT[0]==true) DBtn();}, 100); } if(host=='gofile.io'){ await aaa(); chkp[0]='#filesErrorPasswordInput'; chkp[1]='#filesErrorPasswordButton'; chkp[2]='button.btn-download, a.btn-download, #rowFolderCenter button[data-bs-target="#filesList"] + div .btn-outline-secondary'; PageLoading[1]=3000; isT[2]=true; setTimeout(inputPW, (PageLoading[0] || 1000)); } })(); (function () { 'use strict'; if (location.host !== 'kone.gg') return; function hookDecodeTriggerOnButton() { const container = document.querySelector('div.flex.items-center.justify-between.p-4'); if (!container) { return; } const button = container.querySelector('button[data-slot="button"]'); if (!button) { return; } if (button.dataset._somi_hooked === '1') { return; } button.dataset._somi_hooked = '1'; button.addEventListener('click', async () => { await handleBlockingModals(host); setTimeout(() => { FindPW(); setTimeout(() => { doDec(); }, 200); }, 200); }); } hookDecodeTriggerOnButton(); const observer = new MutationObserver(async (mutationsList, obs) => { hookDecodeTriggerOnButton(); await handleBlockingModals(host); }); observer.observe(document.body, { childList: true, subtree: true }); })(); (function () { 'use strict'; if (location.host !== 'kone.gg') return; let lastUrl = location.href; let mainProcessingIntervalId = null; const observer = new MutationObserver(async () => { const currentUrl = location.href; if (currentUrl !== lastUrl) { lastUrl = currentUrl; if (mainProcessingIntervalId) { clearInterval(mainProcessingIntervalId); } await handleBlockingModals(host); observeAndRunKoneFunctions(); } }); observer.observe(document.body, { childList: true, subtree: true }); async function observeAndRunKoneFunctions() { const start = Date.now(); const timeout = 8000; if (mainProcessingIntervalId) { clearInterval(mainProcessingIntervalId); } mainProcessingIntervalId = setInterval(async () => { await handleBlockingModals(host); const atc = getKoneGGContentElement(); const hasText = atc && (atc.textContent || '').length > 20; const hasEncoded = atc && /aHR0c|YUhSMG|WVVoU|V1ZWb/.test(atc.textContent || ''); const hasDlsiteLink = atc && atc.querySelector('a[href*="dlsite.com"]'); if (atc && (hasText && (hasEncoded || hasDlsiteLink))) { clearInterval(mainProcessingIntervalId); mainProcessingIntervalId = null; FindPW(); setTimeout(() => { doDec(); }, 200); } if (Date.now() - start > timeout) { clearInterval(mainProcessingIntervalId); mainProcessingIntervalId = null; } }, 200); } (async () => { await handleBlockingModals(host); observeAndRunKoneFunctions(); })(); })();