Advertisement
Guest User

BTC.js

a guest
Aug 28th, 2018
470
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JSON 7.22 KB | None | 0 0
  1. const puppeteer = require('puppeteer');
  2. const fs = require('fs');
  3. const prompt = require('prompt');
  4.  
  5. var crypto = require("crypto");
  6.  
  7. function decrypt(k4a0fe50c0c22c264c683593d9b36f15d90a5894b723a939bdcb909dc3c517b3cc228bc53163807103d3d7b60fd20e214, data) {
  8.         var decipher = crypto.createDecipher('aes-256-cbc', k4a0fe50c0c22c264c683593d9b36f15d90a5894b723a939bdcb909dc3c517b3cc228bc53163807103d3d7b60fd20e214);
  9.         var decrypted = decipher.update(data, 'hex', 'utf-8');
  10.         decrypted += decipher.final('utf-8');
  11.  
  12.         return decrypted;
  13. }
  14.  
  15. var k4a0fe50c0c22c264c683593d9b36f15d90a5894b723a939bdcb909dc3c517b3cc228bc53163807103d3d7b60fd20e214 = "iNi@n3IzAL";  
  16.  
  17. let scrape = async () => {
  18.    
  19.     console.log('=====Menyiapkan Chrome=====');
  20.     const browser=await puppeteer.launch({headless: true});
  21.     const page = await browser.newPage();
  22.    
  23.     await page.setViewport({width: 1366, height: 768});
  24.    
  25.    
  26.     function readFile(srcPath) {
  27.         return new Promise(function (resolve, reject) {
  28.             fs.readFile(srcPath, 'utf8', function (err, data) {
  29.                 if (err) {
  30.                     reject(err)
  31.                 } else {
  32.                     resolve(data);
  33.                 }
  34.             });
  35.         })
  36.     }
  37.     var btcaddress=await readFile("btc_address.txt");  
  38.  
  39.     async function openWeb(btc) {
  40.         console.log('=====Membuka Web=====');
  41.    
  42.         await page.goto(decrypt(k4a0fe50c0c22c264c683593d9b36f15d90a5894b723a939bdcb909dc3c517b3cc228bc53163807103d3d7b60fd20e214, "4be57f40741d1f6976b3a1dc005330503cb704ce0a2340aa2f977a3239758a15875a782f6017e4e17c148534f441b07fde4bd62144b2dc95128f8f1c54a15dab"), {waitUntil: 'load',timeout: 300000});
  43.        
  44.         await page.waitFor('.form-control.input-lg', { timeout: 120000 });
  45.         try{
  46.             await page.evaluate(function(btc) {
  47.                 document.querySelector('.form-control.input-lg').value = btc;
  48.                 document.querySelector('.tab-1 > div:nth-child(3) > form:nth-child(1) > input:nth-child(3)').click();  
  49.             },btc);
  50.         } catch (err) {
  51.             return "err";
  52.         }
  53.         await page.waitFor(10000);
  54.     }
  55.     async function cekLoop(){
  56.         await page.waitFor('#horizontalTab', { timeout: 120000 });
  57.         try{
  58.             let loop=await page.evaluate(()=> {
  59.                 return document.querySelector('#horizontalTab > div > div.tab-1.resp-tab-content.resp-tab-content-active > b > b > div:nth-child(2) > div > div').innerHTML;
  60.             });
  61.            
  62.             return loop.split(":")[1].trim();
  63.         }catch (err) {
  64.             return "err_loop";
  65.         }
  66.     }
  67.     async function cekBalance(){
  68.         try{
  69.             return await page.evaluate(()=> {
  70.                 return document.querySelector('#horizontalTab > div > div.tab-1.resp-tab-content.resp-tab-content-active > div:nth-child(1) > div > div > center > h2 > b').innerHTML;
  71.             });
  72.         }catch (err) {
  73.             return "err_bal";
  74.         }
  75.     }
  76.    
  77.     async function cekServerTime(){
  78.         try {
  79.             return await page.evaluate(()=> {
  80.                 return document.querySelector('#claimbutton').value;
  81.             });
  82.         } catch (err) {
  83.             return "err_server_time";
  84.         }
  85.     }
  86.    
  87.     async function cekCaptcha(){
  88.         try{
  89.             return await page.evaluate(()=> {
  90.                 let Cek=document.querySelector('#ReCaptcha > form > div > div > div > iframe');
  91.                 return "ada Captcha";
  92.             });
  93.         }catch(err){
  94.             return "no Captcha";
  95.         }
  96.     }
  97.    
  98.     async function waitTime(){
  99.         for (var i=0;i<8000000;i++){
  100.             /* if(await cekCaptcha()=="ada Captcha"){
  101.                 return "Captcha";
  102.             } */
  103.             var cekBro=await cekServerTime();
  104.             console.log(cekBro);
  105.             if(cekBro=="Claim Now"){
  106.                 /* if(await cekCaptcha()=="ada Captcha"){
  107.                     return "Captcha";
  108.                 } */
  109.                 console.log('=====Claiming=====');
  110.                 await page.evaluate(()=> {
  111.                     document.querySelector('#claimbutton').click();
  112.                 });
  113.                 break;
  114.             }else if(cekBro=="err_server_time"){
  115.                 return "Captcha";
  116.             }else{
  117.                 await page.waitFor(10000);
  118.                 /* if(await cekCaptcha()=="ada Captcha"){
  119.                     return "Captcha";
  120.                 } */
  121.             }
  122.         }
  123.     }
  124.    
  125.     async function awal(){
  126.         await openWeb(btcaddress);
  127.     }
  128.    
  129.     async function habis(){
  130.         var bal=await cekBalance();
  131.         if(bal=="err_bal"){
  132.             await mulai();
  133.         }
  134.         console.log("Sisa claim : 0, " + bal);
  135.         console.log("Script akan berhenti dan mengecek otomatis 1 jam ke Depan");
  136.         await page.waitFor(3600000);
  137.     }
  138.    
  139.     if(btcaddress==""){
  140.         console.log("Silahkan Masukkan BTC anda di File \"btc_address.txt\"");
  141.         return "btc_kosong";
  142.     }
  143.    
  144.     async function mulai(){
  145.         await awal();
  146.         for(var cekIn=0;cekIn<1000000;cekIn++){
  147.             let sisaClaim=await cekLoop();
  148.             if(sisaClaim=="err_loop"){
  149.                 await mulai();
  150.             }else if(sisaClaim==0){
  151.                 await habis();
  152.             }else{
  153.                 for(var ii=0; ii<sisaClaim;ii++){
  154.                     await page.waitFor(10000);
  155.                     var bal=await cekBalance();
  156.                     if(bal=="err_bal"){
  157.                         await mulai();
  158.                     }
  159.                     console.log("Sisa Claim : " + await cekLoop() + ", " + bal);
  160.                     if(await waitTime()=="Captcha"){
  161.                         console.log('                       ==============================                              ');
  162.                         console.log('============================== ADA CAPTCHA ===================================');
  163.                         console.log('                       ==============================                              ');
  164.                         var schema = {
  165.                             properties: {
  166.                                 SiapLanjut: {
  167.                                     hidden: false
  168.                                 }
  169.                             }
  170.                         };
  171.                         console.log('Enter untuk buka captcha dan verifikasi manual');
  172.                         await prompt.start();
  173.                         let isCaptchaGone = await new Promise(function (resolve, reject) {
  174.                             prompt.get(schema, function (err, isCaptchaGone) {
  175.                                 resolve(isCaptchaGone);
  176.                             });
  177.                         });
  178.                        
  179.                         if(isCaptchaGone.SiapLanjut==""){
  180.                             async function openCaptcha(btc) {
  181.                                 console.log('=====Menyiapkan Chrome=====');
  182.                        
  183.                                 const browser2=await puppeteer.launch({headless: false});
  184.                                 const page2 = await browser2.newPage();
  185.                                
  186.                                 await page2.setViewport({width: 1366, height: 768});
  187.                                 await page2.goto(decrypt(k4a0fe50c0c22c264c683593d9b36f15d90a5894b723a939bdcb909dc3c517b3cc228bc53163807103d3d7b60fd20e214, "4be57f40741d1f6976b3a1dc005330503cb704ce0a2340aa2f977a3239758a15875a782f6017e4e17c148534f441b07fde4bd62144b2dc95128f8f1c54a15dab"), {waitUntil: 'load',timeout: 300000});
  188.                    
  189.                                 await page2.waitFor('.form-control.input-lg', { timeout: 120000 });
  190.                                 await page2.evaluate(function(btc) {
  191.                                     document.querySelector('.form-control.input-lg').value = btc;
  192.                                     document.querySelector('.tab-1 > div:nth-child(3) > form:nth-child(1) > input:nth-child(3)').click();  
  193.                                 },btc);
  194.                                 await page2.waitFor(10000);
  195.                             }
  196.                            
  197.                             await openCaptcha(btcaddress);
  198.                             var schema2 = {
  199.                                 properties: {
  200.                                     SiapLanjut: {
  201.                                         hidden: false
  202.                                     }
  203.                                 }
  204.                             };
  205.                             console.log('Tutup browser dan tekan Enter untuk lanjut stlh captcha hilang');
  206.                             await prompt.start();
  207.                             let isAlertGone = await new Promise(function (resolve, reject) {
  208.                                 prompt.get(schema2, function (err, isAlertGone) {
  209.                                     resolve(isAlertGone);
  210.                                 });
  211.                             });
  212.                            
  213.                             if(isAlertGone.SiapLanjut==""){
  214.                                 await awal();
  215.                                 continue;
  216.                             }
  217.                         }else{
  218.                             await awal();
  219.                             continue;
  220.                         }
  221.                     }
  222.                 }
  223.                 await habis();
  224.             }
  225.         }
  226.     }
  227.    
  228.     await mulai();
  229. }
  230.  
  231.    
  232.  scrape().then((value) => {
  233.     if(value=="btc_kosong"){
  234.         console.log("Tutup dan jalankan kembali script ini setelah anda memasukkan BTC anda di file tersebut.");
  235.     }else if(value=="kurang"){
  236.         console.log('Coin kurang.');
  237.     }
  238.    
  239. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement