UNPKG

5.75 kBJavaScriptView Raw
1#!/usr/bin/env node
2!function(e){var t={};function a(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,a),o.l=!0,o.exports}a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)a.d(n,o,function(t){return e[t]}.bind(null,o));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=15)}([function(e,t){e.exports=require("chalk-pipe")},function(e,t){e.exports={colors:{pastelRed:"#ff8b8d",slightGreen:"#61bfad",slightOrange:"#ff9966"}}},function(e,t){e.exports=require("commander")},function(e,t){e.exports=require("fs")},function(e,t){e.exports=require("puppeteer-extra")},function(e,t){e.exports=require("util")},function(e,t){e.exports=require("pino")},function(e,t){e.exports=require("puppeteer-extra-plugin-stealth")},function(e,t){e.exports=require("dayjs")},function(e,t){e.exports=require("path")},function(e,t){e.exports=require("koa")},function(e,t){e.exports=require("koa-body")},function(e,t){e.exports=require("koa-router")},function(e,t){e.exports=require("await-to-js")},function(e,t){e.exports=require("ramda")},function(e,t,a){"use strict";a.r(t);var n=a(2),o=a.n(n),r=a(0),s=a.n(r),i=a(1),c=a(6),l=a(3),p=a(5),u=a(9),d=a.n(u);const f=process.env.APPDATA||("darwin"===process.platform?`${process.env.HOME}/Library/Preferences`:`${process.env.HOME}/.local/share`),h=d.a.join(f,"/captcha/"),g=d.a.join(f,"/captcha/cookies.json"),m=Object(p.promisify)(l.readFile),y=Object(p.promisify)(l.writeFile),w=c(),v=Object(p.promisify)(l.mkdir);var b=async()=>{try{Object(l.existsSync)(h)||await v(h,{recursive:!0}),console.log(s()(i.colors.slightGreen)("captcha harvester successfully initialized"))}catch(e){w.error(e)}},x=a(4),k=a.n(x),j=a(7),O=a.n(j);var A=async e=>{try{const t=(await e.pages())[0];await t.goto("https://gmail.com"),await t.waitForSelector(".aim",{timeout:0}),await(async e=>{try{const t=await e.target().createCDPSession(),{cookies:a}=await t.send("Network.getAllCookies");y(g,JSON.stringify(a))}catch(e){console.log(e)}})(t),console.log(s()(i.colors.slightGreen)("Successfully saved google account.")),await e.close()}catch(e){console.log(e)}};const q=c();k.a.use(O()());var S=async()=>{try{const e=await k.a.launch({headless:!1,devtools:!1});await A(e)}catch(e){q.err(e)}},C=a(10),P=a.n(C),M=a(11),T=a.n(M),_=a(12),z=a.n(_),H=a(13),R=a.n(H),E=a(8),F=a.n(E),$=a(14);const{sitekey:G}={sitekey:"6LeWwRkUAAAAAOBsau7KpuC9AV-6J8mhw4AjC3Xz"};var I=`\n<!DOCTYPE html>\n<html lang="en">\n<head>\n <title>Captcha Harvester</title>\n <script src="https://www.google.com/recaptcha/api.js" async defer><\/script>\n <style>\n .flex {\n display: flex;\n }\n .justify-center {\n justify-content: center;\n }\n .items-center {\n align-items: center;\n }\n .mt-6 {\n margin-top: 1.5rem;\n }\n </style>\n</head>\n<body>\n <div class="flex justify-center items-center mt-6">\n <div id="captchaFrame" class="g-recaptcha" data-callback="sendCaptcha" data-sitekey=${G} data-theme="dark"></div>\n </div>\n</body>\n</html>\n`;k.a.use(O()());var J=async e=>{const t=480,a=750,n="http://supremenewyork.com/",o="6LeWwRkUAAAAAOBsau7KpuC9AV-6J8mhw4AjC3Xz",r=await k.a.launch({headless:!1,devtools:!1,ignoreHTTPSErrors:!0,args:["--no-sandbox","--ignore-certificate-errors","--enable-features=NetworkService","--allow-running-insecure-content","--disable-web-security",`--window-size=${t},${a}`]}),[c,l]=await R()(r.newPage());if(c)throw new Error("Failed to create new captcha browser");await l.setViewport({width:480,height:750}),await l.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"),await(async e=>{try{const t=await m(g),a=JSON.parse(t);await e.setCookie(...a)}catch(e){console.log(e)}})(l),await l.setRequestInterception(!0);const p=()=>window.grecaptcha.reset();await l.exposeFunction("sendCaptcha",t=>{const a={token:t,timestamp:F()().format(),host:n,sitekey:o};e.push(a),(async()=>{await l.evaluate(p)})()});const u=t=>{const a=F()(),n=F()(t.timestamp);a.diff(n,"second")>90&&(console.log(s()(i.colors.slightOrange)("Removing Expired Captcha Token")),e.splice(0,1))};setInterval(()=>{Object($.map)(u,e)},1e3),l.on("request",e=>{e.url()===n?e.respond({status:200,contentType:"text/html",body:I}):e.continue()}),await l.goto(n)};const N=new P.a,K=new z.a;var L=async()=>{const e=[];console.log("Captcha app listening on port 3001"),await J(e),K.get("/fetch",T()(),t=>{t.request.body=e,t.body=JSON.stringify(t.request.body),e.splice(0,1)}),N.use(K.routes()).use(K.allowedMethods()),N.listen(3001)};process.argv.slice(2).length||o.a.outputHelp(s()(i.colors.pastelRed)),o.a.on("command:*",()=>{console.log(s()(i.colors.pastelRed)(`Invalid command: ${o.a.args.join(" ")}`)),console.log("captcha-harvester --help for a list of available commands.")}),o.a.command("initialize").alias("init").description("Initialize captcha preferences").action(()=>b()),o.a.command("setgoogle").alias("sg").description("Set a Google account").action(()=>S()),o.a.command("harvestcaptcha").alias("hc").description("Harvest captcha tokens").action(()=>L()),o.a.parse(process.argv)}]);
\No newline at end of file