From ec2d31ed793ac0b14d8a6265ec68e0e80abc5854 Mon Sep 17 00:00:00 2001 From: Ralf Vogler Date: Tue, 14 Feb 2023 10:49:06 +0100 Subject: [PATCH] remove unused NopeCHA extension --- epic-games.js | 8 +- nopecha/background.js | 1 - nopecha/hcaptcha.js | 1 - nopecha/hcaptcha_fast.js | 1 - nopecha/hcaptcha_language.js | 1 - nopecha/icon/128.png | Bin 9225 -> 0 bytes nopecha/icon/16.png | Bin 1103 -> 0 bytes nopecha/icon/32.png | Bin 1928 -> 0 bytes nopecha/icon/48.png | Bin 2828 -> 0 bytes nopecha/manifest.json | 1 - nopecha/popup.css | 289 ----------------------------------- nopecha/popup.html | 149 ------------------ nopecha/popup.js | 1 - nopecha/recaptcha.js | 1 - nopecha/recaptcha_fast.js | 1 - nopecha/recaptcha_voice.js | 1 - nopecha/setup.js | 1 - nopecha/utils.js | 1 - 18 files changed, 5 insertions(+), 452 deletions(-) delete mode 100644 nopecha/background.js delete mode 100644 nopecha/hcaptcha.js delete mode 100644 nopecha/hcaptcha_fast.js delete mode 100644 nopecha/hcaptcha_language.js delete mode 100644 nopecha/icon/128.png delete mode 100644 nopecha/icon/16.png delete mode 100644 nopecha/icon/32.png delete mode 100644 nopecha/icon/48.png delete mode 100644 nopecha/manifest.json delete mode 100644 nopecha/popup.css delete mode 100644 nopecha/popup.html delete mode 100644 nopecha/popup.js delete mode 100644 nopecha/recaptcha.js delete mode 100644 nopecha/recaptcha_fast.js delete mode 100644 nopecha/recaptcha_voice.js delete mode 100644 nopecha/setup.js delete mode 100644 nopecha/utils.js diff --git a/epic-games.js b/epic-games.js index 735b101..70a379d 100644 --- a/epic-games.js +++ b/epic-games.js @@ -14,7 +14,7 @@ const db = await jsonDb('epic-games.json'); db.data ||= {}; // https://www.nopecha.com extension source from https://github.com/NopeCHA/NopeCHA/releases/tag/0.1.16 -const ext = path.resolve('nopecha'); // used in Chromium, currently not needed in Firefox +// const ext = path.resolve('nopecha'); // used in Chromium, currently not needed in Firefox // https://playwright.dev/docs/auth#multi-factor-authentication const context = await firefox.launchPersistentContext(dirs.browser, { @@ -153,7 +153,8 @@ try { const captcha = iframe.locator('#h_captcha_challenge_checkout_free_prod iframe'); captcha.waitFor().then(async () => { // don't await, since element may not be shown - console.info(' Got hcaptcha challenge! NopeCHA extension will likely solve it.') + // console.info(' Got hcaptcha challenge! NopeCHA extension will likely solve it.') + console.error(' Got hcaptcha challenge! Lost trust due to too many login attempts? You can solve the captcha in the browser or get a new IP address.') // await page.waitForTimeout(2000); // const p = path.resolve(dirs.screenshots, 'epic-games', 'captcha', `${filenamify(datetime())}.png`); // await captcha.screenshot({ path: p }); @@ -167,7 +168,8 @@ try { context.setDefaultTimeout(cfg.timeout); } catch (e) { console.log(e); - console.error(' Failed to claim! Try again if NopeCHA timed out. Click the extension to see if you ran out of credits (refill after 24h). To avoid captchas try to get a new IP or set a cookie from https://www.hcaptcha.com/accessibility'); + // console.error(' Failed to claim! Try again if NopeCHA timed out. Click the extension to see if you ran out of credits (refill after 24h). To avoid captchas try to get a new IP or set a cookie from https://www.hcaptcha.com/accessibility'); + console.error(' Failed to claim! To avoid captchas try to get a new IP address.'); const p = path.resolve(dirs.screenshots, 'epic-games', 'failed', `${game_id}_${filenamify(datetime())}.png`); await page.screenshot({ path: p, fullPage: true }); db.data[user][game_id].status = 'failed'; diff --git a/nopecha/background.js b/nopecha/background.js deleted file mode 100644 index df00fce..0000000 --- a/nopecha/background.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{function a(t){return JSON.parse(JSON.stringify(t))}class s{static cache={};static async set({tab_id:t,data:{name:a,value:e,tab_specific:c}}){return c&&(a=t+"_"+a),s.cache[a]=e,s.cache[a]}static async get({tab_id:t,data:{name:a,tab_specific:e}}){return e&&(a=t+"_"+a),s.cache[a]}static async remove({tab_id:t,data:{name:a,tab_specific:e}}){e&&(a=t+"_"+a);e=s.cache[a];return delete s.cache[a],e}static async append({tab_id:t,data:{name:a,value:e,tab_specific:c}}){return(a=c?t+"_"+a:a)in s.cache||(s.cache[a]=[]),s.cache[a].push(e),s.cache[a]}static async empty({tab_id:t,data:{name:a,tab_specific:e}}){e&&(a=t+"_"+a);e=s.cache[a];return s.cache[a]=[],e}static async inc({tab_id:t,data:{name:a,tab_specific:e}}){return(a=e?t+"_"+a:a)in s.cache||(s.cache[a]=0),s.cache[a]++,s.cache[a]}static async dec({tab_id:t,data:{name:a,tab_specific:e}}){return(a=e?t+"_"+a:a)in s.cache||(s.cache[a]=0),s.cache[a]--,s.cache[a]}static async zero({tab_id:t,data:{name:a,tab_specific:e}}){return e&&(a=t+"_"+a),s.cache[a]=0,s.cache[a]}}class n{static reloads={};static _reload({tab_id:a}){return new Promise(t=>chrome.tabs.reload(a,{bypassCache:!0},t))}static async reload({tab_id:t,data:{delay:a,overwrite:e}={delay:0,overwrite:!0}}){a=parseInt(a);let c=n.reloads[t]?.delay-(Date.now()-n.reloads[t]?.start);return c=isNaN(c)||c<0?0:c,!!(e||0==c||a<=c)&&(clearTimeout(n.reloads[t]?.timer),n.reloads[t]={delay:a,start:Date.now(),timer:setTimeout(()=>n._reload({tab_id:t}),a)},!0)}static close({tab_id:a}){return new Promise(t=>chrome.tabs.remove(a,t))}static async open({data:{url:t}}){chrome.tabs.create({url:t})}static info({tab_id:t}){return new Promise(a=>{try{chrome.tabs.get(t,t=>a(t))}catch(t){a(!1)}})}}class e{static DEFAULT={version:2,hcaptcha_auto_solve:!0,hcaptcha_solve_delay:3e3,hcaptcha_auto_open:!0,hcaptcha_open_delay:1e3,recaptcha_auto_solve:!0,recaptcha_solve_delay:1e3,recaptcha_auto_open:!0,recaptcha_open_delay:1e3,recaptcha_solve_method:"image",debug:!1};static data={};static _save(){return new Promise(t=>chrome.storage.sync.set({settings:e.data},t))}static load(){return new Promise(a=>{chrome.storage.sync.get(["settings"],async({settings:t})=>{t?(e.data=t,e.data.version!==e.DEFAULT.version&&await e.reset()):await e.reset(),a()})})}static async get(){return e.data}static async set({data:{id:t,value:a}}){e.data[t]=a,await e._save()}static async reset(){e.data=a(e.DEFAULT);var t=chrome.runtime.getManifest();t.key&&(e.data.key=t.key),await e._save()}}class r{static inject({tab_id:t,data:{func:a,args:e}}){const c={target:{tabId:t,allFrames:!0},world:"MAIN",injectImmediately:!0,func:a,args:e};return new Promise(t=>chrome.scripting.executeScript(c,t))}}class t{static async reset({tab_id:t}){return await r.inject({tab_id:t,data:{func:function(){try{window.grecaptcha?.reset()}catch{}},args:[]}}),!0}static fetch({tab_id:t}){return new Promise(async a=>{const e="recaptcha_response",c=(await r.inject({tab_id:t,data:{func:function(t){window.grecaptcha&&window.postMessage({method:"set_cache",data:{name:t,value:window.grecaptcha.getResponse()}})},args:[e]}}),setInterval(async()=>{var t=await s.get({data:{name:e}});if(t)return clearInterval(c),await s.remove({data:{name:e}}),a(t)},1e3))})}}class i{static STATUS_URL="https://api.nopecha.com/status?v="+chrome.runtime.getManifest().version;static STATUS_CHECK_INTERVAL=1e4;static status="Online";static checking_status=!1;static async run_status_check(){return setInterval(()=>{i.check_status()},i.STATUS_CHECK_INTERVAL),!0}static async check_status(){if(i.checking_status)return!1;i.checking_status=!0;let t="Offline";try{const a=await fetch(i.STATUS_URL);t=await a.text()}catch{}return await i.set_status({data:{status:t}}),i.checking_status=!1,t}static async set_status({data:{status:c}}){if(i.status!==c){let t,a=[0,0,0,0],e="";if("Online"===(i.status=c))t={16:"icon/16.png",32:"icon/32.png",48:"icon/48.png",128:"icon/128.png"};else if("Offline"===c)t={16:"icon/16.png",32:"icon/32.png",48:"icon/48.png",128:"icon/128.png"},e="Off",a="#a44";else if("Slow"===c)t={16:"icon/16.png",32:"icon/32.png",48:"icon/48.png",128:"icon/128.png"},e="Slow",a="#f8d66d";else{if("Update Required"!==c)return!1;t={16:"icon/16.png",32:"icon/32.png",48:"icon/48.png",128:"icon/128.png"},e="Update",a="#f8d66d"}return chrome.action.setIcon({path:t}),chrome.action.setBadgeText({text:e}),chrome.action.setBadgeBackgroundColor({color:a}),!0}}static async get_status(){return await i.check_status(),i.status}static async check_plan({data:{key:t}}){if(i.checking_plan)return!1;i.checking_plan=!0;let a={plan:"free",credit:0};try{"undefined"===t&&(t="");const e=await fetch(i.STATUS_URL+"&k="+t);a=JSON.parse(await e.text())}catch{}return i.checking_plan=!1,a}static async get_plan({data:{key:t}}){return await i.check_plan({data:{key:t}})}}const o={set_cache:s.set,get_cache:s.get,remove_cache:s.remove,append_cache:s.append,empty_cache:s.empty,inc_cache:s.inc,dec_cache:s.dec,zero_cache:s.zero,fetch:class{static async fetch({data:{url:t,options:a}}){try{const e=await fetch(t,a);return await e.text()}catch{return null}}}.fetch,reload_tab:n.reload,close_tab:n.close,open_tab:n.open,info_tab:n.info,get_settings:e.get,set_settings:e.set,reset_settings:e.reset,reset_recaptcha:t.reset,fetch_recaptcha:t.fetch,translate:class d{static base_url="https://translate.googleapis.com/translate_a/single";static async translate({data:{from:t,to:a,text:e}}){let c=await fetch(d.base_url+`?client=gtx&sl=${t}&tl=${a}&dt=t&q=`+encodeURI(e)).then(t=>t.json());return c=c&&c[0]&&c[0][0]&&c[0].map(t=>t[0]).join("")}}.translate,get_server_plan:i.get_plan};(async()=>{chrome.declarativeNetRequest.updateDynamicRules({addRules:[{id:1,priority:1,action:{type:"redirect",redirect:{transform:{queryTransform:{addOrReplaceParams:[{key:"hl",value:"en-US"}]}}}},condition:{regexFilter:"^https://[^\\.]*\\.(google|recaptcha)\\.(com|net)/recaptcha",resourceTypes:["sub_frame","script"]}}],removeRuleIds:[1]}),await e.load(),chrome.runtime.onMessage.addListener((t,a,e)=>{const c=!["get_settings","set_settings","set_cache"].includes(t.method);return c,o[t.method]({tab_id:a?.tab?.id,data:t.data}).then(t=>{c;try{e(t)}catch(t){}}),!0})})()})(); \ No newline at end of file diff --git a/nopecha/hcaptcha.js b/nopecha/hcaptcha.js deleted file mode 100644 index e35f1f2..0000000 --- a/nopecha/hcaptcha.js +++ /dev/null @@ -1 +0,0 @@ -(async()=>{class d{static time(){return Date.now||(Date.now=()=>(new Date).getTime()),Date.now()}static sleep(t=1e3){return new Promise(e=>setTimeout(e,t))}static async random_sleep(e,t){t=Math.floor(Math.random()*(t-e)+e);return d.sleep(t)}static pad(e){var t=2-String(e).length+1;return 0{try{chrome.runtime.sendMessage({method:e,data:a},t)}catch(e){t()}})}}class h{static async fetch(e,t){return p.exec("fetch",{url:e,options:t})}}class g{static INFERENCE_URL="https://api.nopecha.com";static MAX_WAIT_POST=60;static MAX_WAIT_GET=60;static ERRORS={UNKNOWN:9,INVALID_REQUEST:10,RATE_LIIMTED:11,BANNED_USER:12,NO_JOB:13,INCOMPLETE_JOB:14,INVALID_KEY:15,NO_CREDIT:16,UPDATE_REQUIRED:17};static async post({captcha_type:e,task:t,image_urls:a,grid:r,key:n}){for(var i=Date.now(),c=await p.exec("info_tab");!(Date.now()-i>1e3*g.MAX_WAIT_POST);){const u={type:e,task:t,image_urls:a,v:chrome.runtime.getManifest().version,key:n,url:c.url};r&&(u.grid=r);var o=await h.fetch(g.INFERENCE_URL,{method:"POST",body:JSON.stringify(u),headers:{"Content-Type":"application/json"}});try{var s=JSON.parse(o);if("error"in s){if(s.error===g.ERRORS.RATE_LIMITED){await d.sleep(2e3);continue}if(s.error===g.ERRORS.INVALID_KEY)break;if(s.error===g.ERRORS.NO_CREDIT)break;break}var l="id"in s?s.id:s.data;return await g.get({job_id:l,key:n})}catch(e){break}}return{job_id:null,clicks:null}}static async get({key:e,job_id:t}){for(var a=Date.now();!(Date.now()-a>1e3*g.MAX_WAIT_GET);){await d.sleep(500);var r=await h.fetch(g.INFERENCE_URL+`?id=${t}&key=`+e);try{var n=JSON.parse(r);if("error"in n){if(n.error!==g.ERRORS.INCOMPLETE_JOB)return{job_id:t,clicks:null};continue}return{job_id:t,clicks:n.data}}catch(e){break}}return{job_id:t,clicks:null}}}function u(e){const t=e?.style.background?.trim()?.match(/(?!^)".*?"/g);return t&&0!==t.length?t[0].replaceAll('"',""):null}async function y(){let e=document.querySelector("h2.prompt-text")?.innerText?.replace(/\s+/g," ")?.trim();if(!e)return null;var t={"0430":"a","0441":"c","0501":"d","0435":"e","04bb":"h","0456":"i","0458":"j","04cf":"l","03bf":"o","043e":"o","0440":"p","0455":"s","0445":"x","0443":"y","0065":"e","0069":"i","30fc":"一","571f":"士"};const a=[];for(const i of e){var r=function(e,t,a){for(;(""+e).length{let s=!1;const l=setInterval(async()=>{if(!s){s=!0;var e=await y();if(e){var t=document.querySelector(".challenge-example > .image > .image"),t=u(t);if(t&&""!==t){var a=document.querySelectorAll(".task-image");if(9!==a.length)s=!1;else{const n=[],i=[];for(const c of a){var r=c.querySelector("div.image");if(!r)return void(s=!1);r=u(r);if(!r||""===r)return void(s=!1);n.push(c),i.push(r)}a=JSON.stringify(i);if(f!==a)return f=a,clearInterval(l),s=!1,o({task:e,task_url:t,cells:n,urls:i});s=!1}}else s=!1}else s=!1}},n)});var n,i=d.time(),c=(await g.post({captcha_type:"hcaptcha",task:t,image_urls:r,key:e.key}))["clicks"];if(c){e=e.hcaptcha_solve_delay-(d.time()-i);0{let a=null,t=!1,r=!1;function n(e,t,r=!1){e&&(r||a!==e)&&(!0===t&&"false"===e.getAttribute("aria-pressed")||!1===t&&"true"===e.getAttribute("aria-pressed"))&&e.click()}document.addEventListener("mousedown",e=>{"false"===e?.target?.parentNode?.getAttribute("aria-pressed")?(t=!0,r=!0):"true"===e?.target?.parentNode?.getAttribute("aria-pressed")&&(t=!0,r=!1),a=e?.target?.parentNode}),document.addEventListener("mouseup",e=>{t=!1,a=null}),document.addEventListener("mousemove",e=>{t&&(a!==e?.target?.parentNode&&null!==a&&n(a,r,!0),n(e?.target?.parentNode,r))})})(); \ No newline at end of file diff --git a/nopecha/hcaptcha_language.js b/nopecha/hcaptcha_language.js deleted file mode 100644 index a757835..0000000 --- a/nopecha/hcaptcha_language.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{let e;function t(){var e=navigator.language.split("-")[0];for(const t of document.querySelectorAll('script[src*=".hcaptcha.com/1/api.js"]')){const r=new URL(t.src);"en"!==(r.searchParams.get("hl")||e)&&(r.searchParams.set("hl","en"),t.src=r.toString())}}e=new MutationObserver(t),setTimeout(()=>{t(),e.observe(document.head,{childList:!0})},0)})(); \ No newline at end of file diff --git a/nopecha/icon/128.png b/nopecha/icon/128.png deleted file mode 100644 index b002b52806d63c724f1b3c62b1042ceab0168278..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9225 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¬f<0Z)?QoyS+&{tqZ zdpA#QYG+$te%$>APAUML-cZlm7N5=HX<6DVES%AbF~bd(54~fy?dqgIKMDY8c8Ecl zJEMkNCOqf}I_meH-a&SE4JApPX*(G&g7uEJmMqPU^@lFa)g%LSs1(y~2SzHKRU{ch zJ#|$fGp02jAk&Nv&pF9!@W91wmN#8Elb5#^dEnXSY4002^#O44tTx{N`tw+13ZO9= zO$sfHDqj4dA&~AgF9%m3l783^Mrlu{QC~~y6NejB!EimSU^JPBa)^11l(;9^$D<`n z(il3u@cCfxB8(){Bv6|>)T8UOhB%dFVZd3+`D@qF01ZO#1NwHI)% z4C0A!M5y>Q+eZ;i8YYc=(3B~H@iNjwcL=GGSl~Gw$iK;TI1wv+8DN!$8b79txZv7uIc4nSDiskU{5^&+fXs_ydUG89BClHr2oewc$`>f*Bh$C@YDgo zX}K&lVVDSNnSelul&zojag6Ycg@4kEFllaC6HZi{xJhyY10z&22ad!LOye4&$JE{Q zgp~lh3q|sk?4ehe2LfIcXM}tdv$s$@bpX&?irCR#B$fc1wp>xs1IoU}vvZ6;+0GMW z)SD+ENzs6e7q;h1^p#4d4gd`B!j@hJ!+>I#r)Vu<8CwyFo`kgnI`%Ir;B1M3(DKyg z?&Id4AGbKbk~N#yJOH^^2wj@WsO5{yoa{D+s1U@$ra|G+Uv4;V&pmDc=q?rc!Sao4 zmzh|U*ci&2Q-0DzfL+qccbBgtA0NM($Kx7}S-NE_Rk?t7E}qMDiYRf~omNq7Qr|X4 zOd3Wy=m`fo>KV42efk%Fcp#*~M`i!kwaFMFiXPUHPj6J&Pk3-_U z;ISA=L}J*h0rx-iB2TvOJg%@i?%}v4Yc|o*H^4hCJ(shaYRUN_0JTj3pIS+u4+JoF((U>++PA}@EX9rnHOvZB4jvzyv^ zZfhq_{baCW@-l*A?^&^R7b~{zD+3of_JC12%CQeOh8}^naYSS2iBnN`LY>IyI2WcI zi>hV#nUg6VQOOE^jZ*~x6#!J|WTr_i4z1ASlOLz|a70Gn2Y-ukVl-?pW@|8wpA{qqOoQCGRAsnq)-Vigcf772nMzTi@!E@PQd zEh}5I)gNAb+2SWY^|}^4CIGzQt3UbFi@SS2+UMNZpR4Tp6BY^yZxXdo7leBC+$r}h zoIUk@pSfYtLC;?gnSXrKSAP8N=R5lTcECAvL=Uad2}1ieW=U0c_6=QVip9M_>NS_dNJ)%Mk-$!`h8EZ5kM= zISNyuLX*1bU;Q@Ijs3-%?K}6}bi@F#$lJ#5>dFp3nWckMk6Qb-BL=|wz9BjBJM>oQ zXiS1l0|Roz0MH{j_NvfHgaE-GqSol305BDaf69TNzbHozfC{~Kr~-i3UU=Z}0H~<` zQ_mAPRIKix0I05X06pa>bBN154*J!W+U$PrK!r|j@vqEotUYo7)Q7rCq+%YNGKQWQ zS~7ms5d)y1s_MRJRk=JB5S$7I0BzZ@zp0x0j>_J9`+ZN}xTB-%cf%mKz2H5SaPY~- zb_lFts95@8U3K+mm;S-c&mNP(|Hlu%Z2O{U?JPs#K^# f6{=8$4nqGQ-IY)^404Gh00000NkvXXu0mjfq9Nm) diff --git a/nopecha/icon/16.png b/nopecha/icon/16.png deleted file mode 100644 index 1dd1d1e68238bad31e98328ebbf5d0701ffe5774..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1103 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 eEBzY(FZLgCZ@LL@c(k|x0000"], "js": ["recaptcha.js", "recaptcha_voice.js"], "all_frames": true, "run_at": "document_end"}, {"matches": [""], "js": ["hcaptcha_language.js"], "all_frames": true, "run_at": "document_end"}, {"matches": ["*://*.google.com/recaptcha/*", "*://*.recaptcha.net/recaptcha/*", "*://recaptcha.net/recaptcha/*"], "js": ["recaptcha_fast.js"], "all_frames": true, "run_at": "document_start"}, {"matches": ["*://nopecha.com/setup"], "js": ["setup.js"], "all_frames": true, "run_at": "document_end"}], "host_permissions": [""], "icons": {"16": "icon/16.png", "32": "icon/32.png", "48": "icon/48.png", "128": "icon/128.png"}} \ No newline at end of file diff --git a/nopecha/popup.css b/nopecha/popup.css deleted file mode 100644 index e3f2991..0000000 --- a/nopecha/popup.css +++ /dev/null @@ -1,289 +0,0 @@ -:root { - --input_scale_x: 1; - --input_scale_y: 0.8; -} - -html * { - font-family: monospace, monospaSFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - font-size: 12px; -} - -html, body { - margin: 0; - padding: 0; - - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.hidden { - display: none !important; - opacity: 0; -} - -.light { - font-size: 0.9em; - opacity: 0.5; -} -.green { - /* color: #8cd47e; */ - color: #1a73e8; -} -.red { - color: #ff6961; -} -.yellow { - color: #ca1; -} -.clickable { - cursor: pointer; - transition: 250ms all; -} -.clickable:hover { - opacity: 0.8; -} - -#main { - padding: 8px 16px; -} - -#footer { - margin-top: 8px; - width: 100%; - text-align: center; - color: #999; - height: 20px; -} - -#manage { - width: 100%; - text-align: center; - background-color: #1a73e8; - color: #fff; - height: 20px; - line-height: 20px; - border-radius: 4px; - border: 1px solid #1a73e8; - padding: 8px; - font-size: 1.2em; - transition: 200ms all; -} -#manage:hover { - color: #1a73e8; - background-color: transparent; -} - -.vspace { - min-height: 8px; -} - -.settings_group { - width: 280px; - display: flex; - flex-direction: row; - flex-wrap: nowrap; - padding: 6px 4px; -} -.settings_group.vertical { - flex-direction: column; -} -.settings_group > .label { - flex-grow: 1; - font-size: 1.2em; - line-height: calc(34px * var(--input_scale_y)); - padding-right: 16px; -} -.settings_group > .value { - font-size: 1.2em; - line-height: calc(34px * var(--input_scale_y)); -} -.settings_group > input { - border-radius: 0; -} -.settings_group > input[type="text"], -.settings_group > input[type="button"], -.settings_group > select { - font-size: 0.9em; - outline: none; - border: 1px solid #999; - width: calc(60px * var(--input_scale_x)); - height: calc(34px * var(--input_scale_y)); -} -.settings_group > input[type="button"] { - background-color: #f0f0f0; - cursor: pointer; - transition: 200ms all; -} -.settings_group > input[type="button"]:hover { - background-color: #fff; -} - -.switch { - position: relative; - display: inline-block; - width: calc(60px * var(--input_scale_x)); - height: calc(34px * var(--input_scale_y)); -} -.switch input { - opacity: 0; - width: 0; - height: 0; -} -.slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #ccc; - -webkit-transition: .4s; - transition: .4s; -} -.slider:before { - position: absolute; - content: ""; - height: calc(26px * var(--input_scale_y)); - width: calc(26px * var(--input_scale_x)); - left: calc(4px * var(--input_scale_x)); - bottom: calc(4px * var(--input_scale_y)); - background-color: white; - -webkit-transition: .4s; - transition: .4s; -} -input:checked + .slider { - background-color: #2196F3; -} -input:focus + .slider { - box-shadow: 0 0 1px #2196F3; -} -input:checked + .slider:before { - -webkit-transform: translateX(calc(26px * var(--input_scale_x))); - -ms-transform: translateX(calc(26px * var(--input_scale_x))); - transform: translateX(calc(26px * var(--input_scale_x))); -} - -#key { - padding: 4px; - border-radius: 2px; -} - -.loading { - display: inline-block; - position: relative; - width: 40px; - height: 100%; -} -.loading div { - position: absolute; - top: 8px; - width: 6px; - height: 6px; - border-radius: 50%; - background: #777; - animation-timing-function: cubic-bezier(0, 1, 1, 0); -} -.loading div:nth-child(1) { - left: 4px; - animation: loading1 0.6s infinite; -} -.loading div:nth-child(2) { - left: 4px; - animation: loading2 0.6s infinite; -} -.loading div:nth-child(3) { - left: 16px; - animation: loading2 0.6s infinite; -} -.loading div:nth-child(4) { - left: 28px; - animation: loading3 0.6s infinite; -} -@keyframes loading1 { - 0% { - transform: scale(0); - } - 100% { - transform: scale(1); - } -} -@keyframes loading3 { - 0% { - transform: scale(1); - } - 100% { - transform: scale(0); - } -} -@keyframes loading2 { - 0% { - transform: translate(0, 0); - } - 100% { - transform: translate(12px, 0); - } -} - -.tab_btn_row { - background-color: #efefef; - display: flex; - flex-direction: row; - flex-wrap: nowrap; -} -.tab_btn_row .tab_btn { - flex-grow: 1; - padding: 4px 8px; - border-top: 1px solid transparent; - border-left: 1px solid transparent; - border-right: 1px solid transparent; - border-bottom: 1px solid #ccc; - border-radius: 4px 4px 0 0; - text-align: center; - font-size: 1.2em; - transition: 200ms all; -} -.tab_btn:not(.active):hover { - background-color: #fafafa; -} -.tab_btn.active { - background-color: #fff; - border-top: 1px solid #ccc; - border-left: 1px solid #ccc; - border-right: 1px solid #ccc; - border-bottom: 1px solid transparent; -} - -.content { - margin: 6px 0; - padding: 4px 8px 0 8px; - border-top: 1px solid #ccc; - border-left: 1px solid #ccc; - border-right: 1px solid #ccc; - border-bottom: 1px solid #ccc; -} -.tab_content.bordered { - padding: 16px 8px 8px 8px; - border-top: 1px solid transparent; - border-left: 1px solid #ccc; - border-right: 1px solid #ccc; - border-bottom: 1px solid #ccc; - border-radius: 0 0 4px 4px; -} - -.footer_group { - width: 296px; -} - -.warning_box { - border-color: #FCD62E; - border-radius: 0.25rem; - border-width: 0.125rem; - padding: 0 0.5rem; - margin: 0 4px; - background-color: #FEF9C3; - border-style: solid; -} diff --git a/nopecha/popup.html b/nopecha/popup.html deleted file mode 100644 index 5957b1c..0000000 --- a/nopecha/popup.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - -
- - -
-
-
Manage Subscription
-
- -
- - -
- - - -
-
Subscription
-
-
-
-
- -
-
Credits
-
-
-
-
- -
-
Refills
-
-
-
-
-
- -
- -
-
hCaptcha
-
reCAPTCHA
-
- -
- -
-
-
Auto Solve
- -
- -
-
Solve Delay (ms)
- -
- -
-
Auto Open
- -
- -
-
Open Delay (ms)
- -
-
- - - -
- - - - -
- - - \ No newline at end of file diff --git a/nopecha/popup.js b/nopecha/popup.js deleted file mode 100644 index 5688306..0000000 --- a/nopecha/popup.js +++ /dev/null @@ -1 +0,0 @@ -Date.now||(Date.now=function(){return(new Date).getTime()});class BG{static exec(t,n){return new Promise(e=>{try{chrome.runtime.sendMessage({method:t,data:n},e)}catch{e()}})}}class Util{static sleep(t){return new Promise(e=>setTimeout(e,t))}static pad_left(e,t,n){for(;(""+e).lengtht(s.id,s.checked));for(const c of document.querySelectorAll('.settings_group input[type="text"]'))c.addEventListener("input",()=>n(c.id,c.value));for(const l of document.querySelectorAll(".settings_group select"))l.addEventListener("change",()=>a(l.id,l.value));document.querySelector("#manage").addEventListener("click",async()=>{await BG.exec("open_tab",{url:"https://nopecha.com/manage"})}),document.querySelector("#footer").addEventListener("click",async()=>{await BG.exec("open_tab",{url:"https://nopecha.com/discord"})});let i=null;document.querySelector("#key").addEventListener("input",()=>{clearTimeout(i),i=setTimeout(check_plan,500)});for(const d of document.querySelectorAll(".tab_btn")){d.dataset.target;d.addEventListener("click",()=>{for(const e of document.querySelectorAll(".tab"))e.classList.add("hidden");for(const t of document.querySelectorAll(".tab_btn"))t.classList.remove("active");d.classList.add("active"),document.querySelector(d.dataset.target).classList.remove("hidden")})}}async function render_plan(){var t=await BG.exec("get_settings");if(t&&plan&&!rendering_server_plan){rendering_server_plan=!0;const a=document.querySelector("#plan"),i=document.querySelector("#credit"),r=document.querySelector("#refills"),s=document.querySelector("#incorrect_key"),c=document.querySelector("#ipbanned_warning");var n=Date.now()/1e3;let e=null;plan.lastreset&&plan.duration&&(e=Math.floor(Math.max(0,plan.duration-(n-plan.lastreset)))),a.innerHTML=plan.plan,"free"===plan.plan?(""!==t.key?s.classList.remove("hidden"):s.classList.add("hidden"),a.classList.remove("green"),a.classList.add("red")):(s.classList.add("hidden"),a.classList.remove("red"),a.classList.add("green")),plan.plan.includes("Banned")?c.classList.remove("hidden"):c.classList.add("hidden"),0===e?(i.classList.remove("green"),i.classList.remove("red"),i.innerHTML='
'):(i.innerHTML=plan.credit+" / "+plan.quota,0===plan.credit?(i.classList.remove("green"),i.classList.add("red")):(i.classList.remove("red"),i.classList.add("green"))),e?(n=Util.time_to_hms(e),r.innerHTML=""+n):r.innerHTML='
',0!==plan.duration&&0===e&&await check_plan(),rendering_server_plan=!1}}async function main(){await initialize_ui(),await check_plan(),await render_plan(),setInterval(render_plan,250)}document.addEventListener("DOMContentLoaded",main); \ No newline at end of file diff --git a/nopecha/recaptcha.js b/nopecha/recaptcha.js deleted file mode 100644 index 26c7ce1..0000000 --- a/nopecha/recaptcha.js +++ /dev/null @@ -1 +0,0 @@ -(async()=>{class _{static time(){return Date.now||(Date.now=()=>(new Date).getTime()),Date.now()}static sleep(t=1e3){return new Promise(e=>setTimeout(e,t))}static async random_sleep(e,t){t=Math.floor(Math.random()*(t-e)+e);return _.sleep(t)}static pad(e){var t=2-String(e).length+1;return 0{try{chrome.runtime.sendMessage({method:e,data:a},t)}catch(e){t()}})}}class d{static async fetch(e,t){return g.exec("fetch",{url:e,options:t})}}class m{static INFERENCE_URL="https://api.nopecha.com";static MAX_WAIT_POST=60;static MAX_WAIT_GET=60;static ERRORS={UNKNOWN:9,INVALID_REQUEST:10,RATE_LIIMTED:11,BANNED_USER:12,NO_JOB:13,INCOMPLETE_JOB:14,INVALID_KEY:15,NO_CREDIT:16,UPDATE_REQUIRED:17};static async post({captcha_type:e,task:t,image_urls:a,grid:r,key:c}){for(var i=Date.now(),n=await g.exec("info_tab");!(Date.now()-i>1e3*m.MAX_WAIT_POST);){const u={type:e,task:t,image_urls:a,v:chrome.runtime.getManifest().version,key:c,url:n.url};r&&(u.grid=r);var l=await d.fetch(m.INFERENCE_URL,{method:"POST",body:JSON.stringify(u),headers:{"Content-Type":"application/json"}});try{var s=JSON.parse(l);if("error"in s){if(s.error===m.ERRORS.RATE_LIMITED){await _.sleep(2e3);continue}if(s.error===m.ERRORS.INVALID_KEY)break;if(s.error===m.ERRORS.NO_CREDIT)break;break}var o="id"in s?s.id:s.data;return await m.get({job_id:o,key:c})}catch(e){break}}return{job_id:null,clicks:null}}static async get({key:e,job_id:t}){for(var a=Date.now();!(Date.now()-a>1e3*m.MAX_WAIT_GET);){await _.sleep(500);var r=await d.fetch(m.INFERENCE_URL+`?id=${t}&key=`+e);try{var c=JSON.parse(r);if("error"in c){if(c.error!==m.ERRORS.INCOMPLETE_JOB)return{job_id:t,clicks:null};continue}return{job_id:t,clicks:c.data}}catch(e){break}}return{job_id:t,clicks:null}}}function a(){var e="true"===document.querySelector(".recaptcha-checkbox")?.getAttribute("aria-checked"),t=document.querySelector("#recaptcha-verify-button")?.disabled;return e||t}function y(c=15e3){return new Promise(async e=>{for(var t=_.time();;){var a=document.querySelectorAll(".rc-imageselect-tile"),r=document.querySelectorAll(".rc-imageselect-dynamic-selected");if(0c)return e(!1);await _.sleep(100)}})}async function w(e){let t=null;if(!(t=1{let f=!1;const h=setInterval(async()=>{if(!f){f=!0;var r=document.querySelector(".rc-imageselect-instructions")?.innerText?.split("\n"),c=await w(r);if(c){var r=3===r.length,i=document.querySelectorAll("table tr td");if(9!==i.length&&16!==i.length)f=!1;else{const s=[],o=Array(i.length).fill(null);let e=null,t=!1,a=0;for(const u of i){var n=u?.querySelector("img");if(!n)return void(f=!1);var l=n?.src?.trim();if(!l||""===l)return void(f=!1);300<=n.naturalWidth?e=l:100==n.naturalWidth&&(o[a]=l,t=!0),s.push(u),a++}t&&(e=null);i=JSON.stringify([e,o]);if(v!==i)return v=i,clearInterval(h),f=!1,d({task:c,is_hard:r,cells:s,background_url:e,urls:o});f=!1}}else f=!1}},t)}),o=9==n.length?3:4;const h=[];let e,a=[];if(null===l){e="1x1";for(let e=0;e{let i=null,n=!1,s=!1;function a(e){let t=e;for(;t&&!t.classList?.contains("rc-imageselect-tile");)t=t.parentNode;return t}function t(e,t,n=!1){!e||!n&&i===e||(!0===t&&e.classList.contains("rc-imageselect-tileselected")||!1===t&&!e.classList.contains("rc-imageselect-tileselected"))&&e.click()}document.addEventListener("mousedown",e=>{const t=a(e?.target);t&&(s=t.classList.contains("rc-imageselect-tileselected")?n=!0:!(n=!0),i=t)}),document.addEventListener("mouseup",e=>{n=!1,i=null}),document.addEventListener("mousemove",e=>{e=a(e?.target);n&&(i!==e&&null!==i&&t(i,s,!0),t(e,s))});window.addEventListener("load",function(e){const t=document.body.appendChild(document.createElement("style")).sheet;t.insertRule(".rc-imageselect-table-33, .rc-imageselect-table-42, .rc-imageselect-table-44 {transition-duration: 0.5s !important}",0),t.insertRule(".rc-imageselect-tile {transition-duration: 2s !important}",1),t.insertRule(".rc-imageselect-dynamic-selected {transition-duration: 1s !important}",2),t.insertRule(".rc-imageselect-progress {transition-duration: 0.5s !important}",3),t.insertRule(".rc-image-tile-overlay {transition-duration: 0.5s !important}",4),t.insertRule("#rc-imageselect img {pointer-events: none !important}",5)})})(); \ No newline at end of file diff --git a/nopecha/recaptcha_voice.js b/nopecha/recaptcha_voice.js deleted file mode 100644 index 8f3f9b8..0000000 --- a/nopecha/recaptcha_voice.js +++ /dev/null @@ -1 +0,0 @@ -(async()=>{class r{static time(){return Date.now||(Date.now=()=>(new Date).getTime()),Date.now()}static sleep(t=1e3){return new Promise(e=>setTimeout(e,t))}static async random_sleep(e,t){t=Math.floor(Math.random()*(t-e)+e);return r.sleep(t)}static pad(e){var t=2-String(e).length+1;return 0{try{chrome.runtime.sendMessage({method:e,data:a},t)}catch(e){t()}})}}class o{static async fetch(e,t){return n.exec("fetch",{url:e,options:t})}}function i(){var e,t;if(!l())return e="true"===document.querySelector(".recaptcha-checkbox")?.getAttribute("aria-checked"),t=document.querySelector("#recaptcha-verify-button")?.disabled,e||t}function l(){return"Try again later"===document.querySelector(".rc-doscaptcha-header")?.innerText}async function e(e){i()||(await r.sleep(e.recaptcha_open_delay),document.querySelector("#recaptcha-anchor")?.click())}async function t(t){var a=await n.exec("get_cache",{name:"recaptcha_visible",tab_specific:!0});if(!0===a&&!i())if(l())await n.exec("reset_recaptcha");else{a=document.querySelector(".rc-audiochallenge-tdownload-link")?.href,a=(fetch(a),document.querySelector("#audio-source")?.src?.replace("recaptcha.net","google.com"));let e=document.querySelector("html")?.getAttribute("lang")?.trim();e&&0!==e.length||(e="en");var c=r.time(),a=await o.fetch("https://engageub.pythonanywhere.com",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:"input="+encodeURIComponent(a)+"&lang="+e}),a=(document.querySelector("#audio-response").value=a,t.recaptcha_solve_delay-(r.time()-c));0{try{chrome.runtime.sendMessage({method:e,data:n},t)}catch(e){t()}})}}document.location.hash?(document.body.innerText="Loading...",BG.exec("set_settings",{id:"key",value:document.location.hash.substring(1)}).then(()=>document.body.innerText="Key set!")):document.body.innerText="Missing key. Please set the hash and reload the page.\nExample: https://nopecha.com/setup#sub_testkey1234"; \ No newline at end of file diff --git a/nopecha/utils.js b/nopecha/utils.js deleted file mode 100644 index 1590e0e..0000000 --- a/nopecha/utils.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";class Type{static _string_constructor="string".constructor;static _array_constructor=[].constructor;static _object_constructor={}.constructor;static of(e){return null===e?"null":void 0===e?"undefined":e.constructor===Type._string_constructor?"string":e.constructor===Type._array_constructor?"array":e.constructor===Type._object_constructor?"object":""}}class Logger{static debug=!0;static log(e=0){const t=new Array(...arguments).map(e=>["array","object"].includes(Type.of(e))?JSON.stringify(e,null,4):""+e);t.join(" ")}}class Time{static time(){return Date.now||(Date.now=()=>(new Date).getTime()),Date.now()}static sleep(t=1e3){return new Promise(e=>setTimeout(e,t))}static async random_sleep(e,t){t=Math.floor(Math.random()*(t-e)+e);return Time.sleep(t)}static pad(e){var t=2-String(e).length+1;return 0{try{chrome.runtime.sendMessage({method:e,data:r},t)}catch(e){t()}})}}class Net{static async fetch(e,t){return BG.exec("fetch",{url:e,options:t})}}class Image{static encode(t){return new Promise(r=>{if(null===t)return r(null);const e=new XMLHttpRequest;e.onload=()=>{const t=new FileReader;t.onloadend=()=>{let e=t.result;if(e.startsWith("data:text/html;base64,"))return r(null);e=e.replace("data:image/jpeg;base64,",""),r(e)},t.readAsDataURL(e.response)},e.onerror=()=>{r(null)},e.onreadystatechange=()=>{4==this.readyState&&200!=this.status&&r(null)},e.open("GET",t),e.responseType="blob",e.send()})}}class NopeCHA{static INFERENCE_URL="https://api.nopecha.com";static MAX_WAIT_POST=60;static MAX_WAIT_GET=60;static ERRORS={UNKNOWN:9,INVALID_REQUEST:10,RATE_LIIMTED:11,BANNED_USER:12,NO_JOB:13,INCOMPLETE_JOB:14,INVALID_KEY:15,NO_CREDIT:16,UPDATE_REQUIRED:17};static async post({captcha_type:e,task:t,image_urls:r,grid:a,key:n}){for(var o=Date.now(),s=await BG.exec("info_tab");!(Date.now()-o>1e3*NopeCHA.MAX_WAIT_POST);){const u={type:e,task:t,image_urls:r,v:chrome.runtime.getManifest().version,key:n,url:s.url};a&&(u.grid=a);var i=await Net.fetch(NopeCHA.INFERENCE_URL,{method:"POST",body:JSON.stringify(u),headers:{"Content-Type":"application/json"}});try{var c=JSON.parse(i);if("error"in c){if(c.error===NopeCHA.ERRORS.RATE_LIMITED){await Time.sleep(2e3);continue}if(c.error===NopeCHA.ERRORS.INVALID_KEY)break;if(c.error===NopeCHA.ERRORS.NO_CREDIT)break;break}var l="id"in c?c.id:c.data;return await NopeCHA.get({job_id:l,key:n})}catch(e){break}}return{job_id:null,clicks:null}}static async get({key:e,job_id:t}){for(var r=Date.now();!(Date.now()-r>1e3*NopeCHA.MAX_WAIT_GET);){await Time.sleep(500);var a=await Net.fetch(NopeCHA.INFERENCE_URL+`?id=${t}&key=`+e);try{var n=JSON.parse(a);if("error"in n){if(n.error!==NopeCHA.ERRORS.INCOMPLETE_JOB)return{job_id:t,clicks:null};continue}return{job_id:t,clicks:n.data}}catch(e){break}}return{job_id:t,clicks:null}}}function oep(a,n=1,e=100){return new Promise(t=>{const r=setInterval(()=>{var e=document.querySelectorAll(a);if(e.length===n)return clearInterval(r),t(1===n?e[0]:e)},e)})}export{Type,Logger,Time,BG,Net,Image,NopeCHA,oep}; \ No newline at end of file