├── README.md ├── database ├── antilinkgc.json ├── antitoxic.json ├── antivirus.json ├── autosticker.json ├── database.json ├── owner.json ├── premium.json ├── toxic.json └── user.json ├── index.js ├── jadibot.js ├── lib ├── TelegraPH.js ├── color.js ├── converter.js ├── exif.js ├── loader.js ├── menfess.js ├── myfunc.js ├── scraper.js ├── scraperW.js ├── spinner.js └── spotify.js ├── media ├── clara.jpg ├── database │ ├── image.json │ ├── sticker.json │ ├── video.json │ └── vn.json ├── font │ ├── font-gue.ttf │ └── nulis.ttf └── fotonya.jpg ├── module.js ├── package-lock.json ├── package.json ├── scrape ├── binary.js ├── dafont.js ├── ffstalk.js ├── githubstalk.js ├── mlstalk.js ├── npmstalk.js ├── photooxy.js ├── remini.js ├── savefrom.js ├── scraper.js ├── scraperr.js ├── scraperrr.js ├── textpro.js ├── tiktok.js ├── upload.js └── uploader.js ├── settings.js └── xyroinee.js /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

Clara - MD

5 | 6 | 7 | ## Baca Sebelum Pakai!! 8 | - Ubah Semua Informasi Owner Di Settings.js 9 | - Jika Kamu Mengalami Masalah, Bisa Buat Issues Di Page Ini 10 | - Sc Ini Belum Selesai Sepenuhnya, Pastikan Selalu Pantau :v 11 | - Untuk Node_Module Kalian Bisa Download Dibawah Ini 12 | - https://www.mediafire.com/file/f52nygbxa8kb580/node_modules.zip/file 13 | 14 | ### Sedikit Tentang Bot 15 | - ✔️ | **Simple** 16 | - ✔️ | **No Button** 17 | - ✔️ | **Multi Device** 18 | --------- 19 | ### Fitur Yang Dimiliki 20 | - ✔️ | Anime 21 | - ✔️ | Tools 22 | - ✔️ | Remini 23 | - ✔️ | Quotes 24 | - ✔️ | Confess 25 | - ✔️ | Chat Gpt 26 | - ✔️ | To Anime 27 | - ✔️ | And Others 28 | --------- 29 | 30 | 31 | ## 32 | [![Owner](https://img.shields.io/badge/Owner%20BOT-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://wa.me/6285760451683) 33 | [![Bot](https://img.shields.io/badge/Bot%20Whatsapp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://wa.me/62857604516837) 34 | 35 | 36 | ## Thanks To 37 | ```bash 38 | 𝐀𝐮𝐭𝐡𝐨𝐫 : Xyroinee 39 | Supported By Vynaa Chan 40 | Thanks To : 41 | - Adiwajshing (Author Baileys) 42 | - DikaArdnt (Base Script) 43 | - KizakixD 44 | - DGXeon 45 | - KirBotz 46 | - Ekuzika 47 | - Dan Semua Yang Berkontribusi Dalam Pengambangan Script Ini 48 | -------------------------------------------------------------------------------- /database/antilinkgc.json: -------------------------------------------------------------------------------- 1 | ["916909137213-1632759248@g.us","120363047626537933@g.us","120363070068961143@g.us"] -------------------------------------------------------------------------------- /database/antitoxic.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /database/antivirus.json: -------------------------------------------------------------------------------- 1 | ["916909137213-1632759248@g.us","120363047626537933@g.us","120363070068961143@g.us","120363050412211019@g.us"] -------------------------------------------------------------------------------- /database/autosticker.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /database/database.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /database/owner.json: -------------------------------------------------------------------------------- 1 | ["6285760451683"] -------------------------------------------------------------------------------- /database/premium.json: -------------------------------------------------------------------------------- 1 | ["6285760451683@s.whatsapp.net"] -------------------------------------------------------------------------------- /database/toxic.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /database/user.json: -------------------------------------------------------------------------------- 1 | [ 2 | "916909137213@s.whatsapp.net", 3 | "919402104403@s.whatsapp.net", 4 | "918798308154@s.whatsapp.net", 5 | "2349065807853@s.whatsapp.net", 6 | "62878363318210@s.whatsapp.net", 7 | "6283890422366@s.whatsapp.net", 8 | "6288223812738@s.whatsapp.net", 9 | "6283198652908@s.whatsapp.net", 10 | "62895365047080@s.whatsapp.net", 11 | "6283869262488@s.whatsapp.net", 12 | "6285878483089@s.whatsapp.net", 13 | "6285559064038@s.whatsapp.net", 14 | "6285760451683@s.whatsapp.net", 15 | "6285796875458@s.whatsapp.net", 16 | "62857604516837@s.whatsapp.net", 17 | "6281350310547@s.whatsapp.net", 18 | "6283824930391@s.whatsapp.net", 19 | "6285711031024@s.whatsapp.net", 20 | "6281413595467@s.whatsapp.net", 21 | "6283818717862@s.whatsapp.net", 22 | "6281543218199@s.whatsapp.net" 23 | ] -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | function _0x4920(_0x46aab0,_0x424763){const _0x14a815=_0x14a8();return _0x4920=function(_0x4920a0,_0x1b604b){_0x4920a0=_0x4920a0-0x14f;let _0x1372d6=_0x14a815[_0x4920a0];return _0x1372d6;},_0x4920(_0x46aab0,_0x424763);}function _0x5c1615(_0x332ca5,_0x475161){return _0x4920(_0x332ca5- -0x261,_0x475161);}(function(_0x15fc98,_0x5d6173){const _0x9990ff=_0x15fc98();function _0x55921c(_0x223c75,_0x4582c5){return _0x4920(_0x4582c5-0x2eb,_0x223c75);}while(!![]){try{const _0x20114c=parseInt(_0x55921c(0x512,0x4f4))/0x1*(parseInt(_0x55921c(0x4dc,0x4da))/0x2)+-parseInt(_0x55921c(0x46c,0x445))/0x3+parseInt(_0x55921c(0x4b2,0x4ad))/0x4+parseInt(_0x55921c(0x4ef,0x4a3))/0x5*(-parseInt(_0x55921c(0x4e5,0x4ea))/0x6)+parseInt(_0x55921c(0x440,0x479))/0x7+parseInt(_0x55921c(0x495,0x4ec))/0x8+parseInt(_0x55921c(0x45c,0x477))/0x9*(-parseInt(_0x55921c(0x477,0x47a))/0xa);if(_0x20114c===_0x5d6173)break;else _0x9990ff['push'](_0x9990ff['shift']());}catch(_0x4c6fd1){_0x9990ff['push'](_0x9990ff['shift']());}}}(_0x14a8,0x9ee44));function _0x14a8(){const _0x70c7a4=['remove','desc','downloadMediaMessage','./media/welcome.jpg','sendContact','sendMessage','silent','mimetype','messages.upsert','isBuffer','sendImage','DD/MM/YYYY','close','Caught\x20exception:\x20','remoteJid','packname','matchAll','format','viewOnceMessage','@adiwajshing/baileys','cyan','open','./database/owner.json','getFile','Connection\x20Lost\x20from\x20Server,\x20reconnecting...','4PMdVcw','\x0aitem3.X-ABLabel:GitHub\x0aitem4.ADR:;;','\x20Selamat\x20@','child','copyNForward','VOTE\x20LAH\x20SEMUA','\x0aFN:','Connected...','length','c.us','server','announce','utf-8','keys','「\x20Pengaturan\x20Grup\x20」\x0a\x0aGrup\x20Telah\x20Di\x20Tutup\x20Oleh\x20Admin,\x20Sekarang\x20Hanya\x20Admin\x20Yang\x20Dapat\x20Mengirim\x20Pesan\x20!','parse','12yabEdG','KATANYA\x20WA\x20KEBAL','5577336hPnyOa','international','action','session','store','BERANI\x20VOTE\x20GA','string','white','643387LsxtOX','\x0aitem2.X-ABLabel:YouTube\x0aitem3.URL:','contextInfo','fromMe','connectionReplaced',',\x20Bukan\x20Admin\x20Lagi','.bin','readFileSync','\x0aitem1.TEL;waid=','getName','unlink','from','viewOnce','promises','fromBuffer','bind','1109079QWbpFs','SALAM\x20DARI\x20Rainchy\x20BOT','@s.whatsapp.net','query','sendText','*Bot\x20Aktif!*\x0a\x0a\x0a_Jangan\x20Lupa\x20Support,\x20Kak\x20:)_\x0a\x0a\x20•\x20YouTube:\x20https://youtube.com/@Xyroinee\x0a\x0a\x20•\x20GitHub:\x20https://github.com/Xyroinee\x0a\x0a\x20•\x20Instsgram:\x20https://instagram.com/danilelistz02\x0a\x0a\x0a_*Thanks\x20to*_\x0a_*My\x20God*_\x0a_*Myself*_\x0a_*Family*_\x0a_*Dan\x20Semua\x20Yang\x20Berkontribusi\x20Dalam\x20Pengembangan\x20Script\x20Ini*_','contacts','textSync','clear','\x0a│❐\x20Member:\x20','https://i.ibb.co/RBx5SQC/avatar-group-large-v2.png?q=60','BAE5','author','document','PHOTO','status@broadcast','replace','asDocument','blocklist','categories','./lib/myfunc','message','parseMention','loggedOut','<\x20==========================\x20>','./lib','./lib/color','「\x20Pengaturan\x20Grup\x20」\x0a\x0aGrup\x20Telah\x20Di\x20Buka\x20Oleh\x20Admin,\x20Sekarang\x20Semua\x20Peserta\x20Dapat\x20Mengirim\x20Pesan\x20!','messages','image','./lib/loader','promote','existsSync','relayMessage','connectionLost','HH:mm:ss','user','readViewOnce','default','green','./lib/exif','profilePictureUrl','logout','\x20」\x0a│❐\x20Welcome:\x20@','./module','./xyroinee.js','push','ext','connectionClosed','creds.update','246573ZkkZTI','botname','6574169OjItyh','710egjXAM','key','nomorown','Standard','getNumber','uncaughtException','unlinkSync','ephemeralMessage','toString','mtype','end',',\x20Telah\x20Menjadi\x20Admin','concat','yellow','\x20」\x0a│❐\x20Goodbye:\x20@','\x0aitem1.X-ABLabel:Click\x20here\x20to\x20chat\x0aitem2.EMAIL;type=INTERNET:','@g.us','groupMetadata','Th\x0a│❐\x20Date:\x20','sendTextWithMentions','\x0aMenunggu\x20Pesan\x20Baru....','\x20Contact','restrict','verifiedName','json','Connection\x20Replaced,\x20Another\x20New\x20Session\x20Opened,\x20Please\x20Close\x20Current\x20Session\x20First','Asia/Jakarta','writeFileSync','split','magenta','「\x20Pengaturan\x20Grup\x20」\x0a\x0aInfo\x20Grup\x20Di\x20Tutup,\x20Sekarang\x20Hanya\x20Admin\x20Yang\x20Dapat\x20Mengubah\x20Info\x20Grup\x20!','timedOut','fatal','./index.js','1.0.0','setStatus','subject','name','output','base64','\x0a╭─❖「\x20','797095qfmFrC','writeFile','notify','0@s.whatsapp.net','Safari','「\x20Pengaturan\x20Grup\x20」\x0a\x0a*Deskripsi\x20Grup\x20Di\x20Ubah\x20Ke*\x0a\x0a','ignore','test','downloadAndSaveMediaMessage','statusCode','1445720AIIbmP','startsWith','KATANYA\x20KEBAL','Connection\x20closed,\x20reconnecting....','msg','Powered\x20by\x20Xyroinee','add','decodeJid','bold','log','./lib/spinner','public','Yah...\x20@','Unknown\x20DisconnectReason:\x20','participants','alloc','image/webp','audio','status','group-participants.update'];_0x14a8=function(){return _0x70c7a4;};return _0x14a8();}const {modul}=require(_0x5c1615(-0xdb,-0xe0)),{baileys,boom,chalk,fs,moment,figlet,FileType,path,pino,process,PhoneNumber}=modul,{Boom}=boom,{default:ClaraConnect,useSingleFileAuthState,fetchLatestBaileysVersion,generateForwardMessageContent,prepareWAMessageMedia,generateWAMessageFromContent,generateMessageID,downloadContentFromMessage,jidDecode,proto}=require(_0x5c1615(-0x78,-0xc2)),{default:makeWASocket,BufferJSON,initInMemoryKeyStore,DisconnectReason,AnyMessageContent,makeInMemoryStore,useMultiFileAuthState,delay}=require(_0x5c1615(-0x78,-0x4a)),{color,bgcolor}=require(_0x5c1615(-0xed,-0xaa)),colors=require('colors'),{uncache,nocache}=require(_0x5c1615(-0xe9,-0xef)),{start}=require(_0x5c1615(-0x95,-0x62)),{imageToWebp,videoToWebp,writeExifImg,writeExifVid}=require(_0x5c1615(-0xdf,-0xaf)),{smsg,isUrl,generateMessageTag,getBuffer,getSizeMedia,fetchJson,await,sleep,reSize}=require(_0x5c1615(-0xf3,-0x9a)),owner=JSON[_0x5c1615(-0x63,-0x74)](fs[_0x5c1615(-0x110,-0x135)](_0x5c1615(-0x75,-0x2a))),store=makeInMemoryStore({'logger':pino()[_0x5c1615(-0x6f,-0x5f)]({'level':_0x5c1615(-0x85,-0xd3),'stream':_0x5c1615(-0x5c,-0xb0)})}),me=require(_0x5c1615(-0xda,-0xad));require(_0x5c1615(-0xb1,-0xc7));function title(){console[_0x12b5cd(0x40f,0x3c9)]();function _0x12b5cd(_0x34861b,_0x2c5b6e){return _0x5c1615(_0x2c5b6e-0x4c8,_0x34861b);}console['log'](chalk['yellow'](chalk[_0x12b5cd(0x41c,0x431)][_0x12b5cd(0x432,0x403)]('[\x20'+botname+'\x20]')+'\x0a\x0a')),console[_0x12b5cd(0x427,0x432)](color(_0x12b5cd(0x40c,0x3d9),_0x12b5cd(0x436,0x451))),console[_0x12b5cd(0x420,0x432)](color('\x0aClara-MD',_0x12b5cd(0x3f4,0x413)));}async function ClaraBot(){const {state:_0x1b0bcb,saveCreds:_0x3bbfb4}=await useMultiFileAuthState(_0x259beb(0x183,0x12d)),_0x546677=ClaraConnect({'printQRInTerminal':!![],'logger':pino({'level':_0x259beb(0x12e,0x17a)}),'auth':_0x1b0bcb,'browser':[''+botname,_0x259beb(0x13b,0x156),_0x259beb(0x130,0x159)],'getMessage':async _0x1e75dc=>{return{};}});store[_0x259beb(0xd8,0x97)](_0x546677['ev']),console[_0x259beb(0x14a,0x123)](color(figlet[_0x259beb(0xe0,0xbc)]('Xyroinee-ID',{'font':_0x259beb(0x111,0xee),'horizontalLayout':_0x259beb(0xff,0x108),'vertivalLayout':_0x259beb(0xff,0xf2),'whitespaceBreak':![]}),_0x259beb(0x100,0xd3))),_0x546677['ws']['on']('CB:Blocklist',_0x257096=>{if(blocked[_0x42cabf(0xb1,0xf6)]>0x2)return;function _0x42cabf(_0x169642,_0x169be1){return _0x259beb(_0x169be1- -0x80,_0x169642);}for(let _0x727507 of _0x257096[0x1][_0x42cabf(0xba,0x6b)]){blocked['push'](_0x727507[_0x42cabf(0x58,0x69)](_0x42cabf(0xc5,0xf7),'s.whatsapp.net'));}}),_0x546677['ev']['on'](_0x259beb(0x15d,0x132),async _0xd8d83=>{function _0x2f4d3b(_0x5f7c61,_0x7240ca){return _0x259beb(_0x5f7c61-0x39b,_0x7240ca);}try{kay=_0xd8d83[_0x2f4d3b(0x490,0x46a)][0x0];if(!kay[_0x2f4d3b(0x489,0x4c7)])return;kay[_0x2f4d3b(0x489,0x47c)]=Object[_0x2f4d3b(0x516,0x512)](kay['message'])[0x0]===_0x2f4d3b(0x4b0,0x471)?kay[_0x2f4d3b(0x489,0x46f)]['ephemeralMessage'][_0x2f4d3b(0x489,0x4d8)]:kay[_0x2f4d3b(0x489,0x43b)];if(kay[_0x2f4d3b(0x4aa,0x4d5)]&&kay[_0x2f4d3b(0x4aa,0x452)][_0x2f4d3b(0x4fe,0x53c)]==='status@broadcast')return;if(!_0x546677[_0x2f4d3b(0x4e7,0x4a4)]&&!kay[_0x2f4d3b(0x4aa,0x47f)][_0x2f4d3b(0x526,0x530)]&&_0xd8d83['type']===_0x2f4d3b(0x4d4,0x493))return;if(kay['key']['id'][_0x2f4d3b(0x4dd,0x492)](_0x2f4d3b(0x47f,0x43d))&&kay['key']['id']['length']===0x10)return;m=smsg(_0x546677,kay,store),require('./xyroinee')(_0x546677,m,_0xd8d83,store);}catch(_0x4676ac){console[_0x2f4d3b(0x4e5,0x4f6)](_0x4676ac);}}),_0x546677['ev']['on']('groups.update',async _0x459572=>{try{ppgroup=await _0x546677[_0x7594e2(0x271,0x259)](anu['id'],_0x7594e2(0x265,0x248));}catch(_0x372b73){ppgroup=_0x7594e2(0x252,0x297);}console[_0x7594e2(0x2b9,0x26a)](_0x459572);const _0x27c7ac=_0x459572[0x0];function _0x7594e2(_0x540178,_0x1b2ac5){return _0x259beb(_0x540178-0x16f,_0x1b2ac5);}if(_0x27c7ac[_0x7594e2(0x2e8,0x2d9)]==!![])await sleep(0x7d0),_0x546677[_0x7594e2(0x2c9,0x2dc)](_0x27c7ac['id'],{'text':_0x7594e2(0x2eb,0x2cd)});else{if(_0x27c7ac[_0x7594e2(0x2e8,0x340)]==![])await sleep(0x7d0),_0x546677['sendMessage'](_0x27c7ac['id'],{'text':_0x7594e2(0x263,0x228)});else{if(_0x27c7ac[_0x7594e2(0x293,0x292)]==!![])await sleep(0x7d0),_0x546677['sendMessage'](_0x27c7ac['id'],{'text':_0x7594e2(0x29b,0x2c7)});else{if(_0x27c7ac[_0x7594e2(0x293,0x286)]==![])await sleep(0x7d0),_0x546677[_0x7594e2(0x2c9,0x327)](_0x27c7ac['id'],{'text':'「\x20Pengaturan\x20Grup\x20」\x0a\x0aInfo\x20Grup\x20Di\x20Buka,\x20Sekarang\x20Peserta\x20Dapat\x20Mengubah\x20Info\x20Grup\x20!'});else!_0x27c7ac[_0x7594e2(0x2c5,0x31a)]==''?(await sleep(0x7d0),_0x546677[_0x7594e2(0x2c9,0x288)](_0x27c7ac['id'],{'text':_0x7594e2(0x2ab,0x29b)+_0x27c7ac[_0x7594e2(0x2c5,0x31a)]})):(await sleep(0x7d0),_0x546677[_0x7594e2(0x2c9,0x2b2)](_0x27c7ac['id'],{'text':'「\x20Pengaturan\x20Grup\x20」\x0a\x0a*Nama\x20Grup\x20Di\x20Ubah\x20Ke*\x0a\x0a*'+_0x27c7ac[_0x7594e2(0x2a1,0x264)]+'*'}));}}}}),_0x546677['ev']['on'](_0x259beb(0x154,0x116),async _0x12b45c=>{console[_0x37b66d(-0x208,-0x253)](_0x12b45c);function _0x37b66d(_0x4961e7,_0x361954){return _0x259beb(_0x4961e7- -0x352,_0x361954);}try{let _0x2ba56=await _0x546677['groupMetadata'](_0x12b45c['id']),_0x50f305=_0x12b45c[_0x37b66d(-0x203,-0x1b0)];for(let _0x2ec2c5 of _0x50f305){try{ppuser=await _0x546677['profilePictureUrl'](_0x2ec2c5,_0x37b66d(-0x25c,-0x268));}catch(_0x2820f5){ppuser='https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png?q=60';}try{ppgroup=await _0x546677[_0x37b66d(-0x250,-0x211)](_0x12b45c['id'],'image');}catch(_0x269e7b){ppgroup=_0x37b66d(-0x26f,-0x24f);}if(_0x12b45c[_0x37b66d(-0x1d0,-0x204)]==_0x37b66d(-0x20b,-0x1fe)){let _0x2e8958=fs[_0x37b66d(-0x282,-0x2a8)](_0x37b66d(-0x1fa,-0x230));const _0x537f0b=moment['tz'](_0x37b66d(-0x22a,-0x244))[_0x37b66d(-0x1ec,-0x1e6)](_0x37b66d(-0x256,-0x26b)),_0x1677de=moment['tz'](_0x37b66d(-0x22a,-0x211))[_0x37b66d(-0x1ec,-0x232)](_0x37b66d(-0x1f2,-0x1bd)),_0x431a33=_0x2ba56[_0x37b66d(-0x203,-0x1b8)][_0x37b66d(-0x1dc,-0x18d)];ucapan=_0x37b66d(-0x21c,-0x215)+_0x2ba56[_0x37b66d(-0x220,-0x1c1)]+_0x37b66d(-0x24e,-0x218)+_0x2ec2c5[_0x37b66d(-0x228,-0x244)]('@')[0x0]+_0x37b66d(-0x270,-0x27d)+_0x431a33+_0x37b66d(-0x232,-0x21b)+_0x1677de+'\x0a╰───────────────┈\x20⳹',_0x546677[_0x37b66d(-0x1f8,-0x256)](_0x12b45c['id'],{'image':_0x2e8958,'caption':ucapan},{'quoted':{'key':{'fromMe':![],'participant':_0x37b66d(-0x218,-0x26b),...{'remoteJid':'status@broadcast'}},'message':{'pollCreationMessage':{'name':_0x37b66d(-0x20c,-0x237),'options':[{'optionName':_0x37b66d(-0x1d3,-0x21f)},{'optionName':_0x37b66d(-0x1cd,-0x1c9)},{'optionName':_0x37b66d(-0x1df,-0x1ef)},{'optionName':_0x37b66d(-0x20f,-0x1fc)},{'optionName':_0x37b66d(-0x278,-0x27d)}],'selectableOptionsCount':0x5}}}});}else{if(_0x12b45c[_0x37b66d(-0x1d0,-0x1e8)]==_0x37b66d(-0x1fd,-0x1e7)){let _0x32d2fb=fs[_0x37b66d(-0x282,-0x26b)]('./media/goodbye.jpg');const _0x2412f4=moment['tz'](_0x37b66d(-0x22a,-0x1e7))['format'](_0x37b66d(-0x256,-0x269)),_0x2e48ec=moment['tz'](_0x37b66d(-0x22a,-0x288))[_0x37b66d(-0x1ec,-0x1c6)](_0x37b66d(-0x1f2,-0x208)),_0x3897d8=_0x2ba56[_0x37b66d(-0x203,-0x1bc)][_0x37b66d(-0x1dc,-0x1bc)];sayonara=_0x37b66d(-0x21c,-0x1eb)+_0x2ba56['subject']+_0x37b66d(-0x236,-0x1f6)+_0x2ec2c5['split']('@')[0x0]+_0x37b66d(-0x270,-0x282)+_0x3897d8+_0x37b66d(-0x232,-0x271)+_0x2e48ec+'\x0a╰───────────────┈\x20⳹',_0x546677['sendMessage'](_0x12b45c['id'],{'image':_0x32d2fb,'caption':sayonara},{'quoted':{'key':{'fromMe':![],'participant':_0x37b66d(-0x218,-0x23c),...{'remoteJid':_0x37b66d(-0x26a,-0x273)}},'message':{'pollCreationMessage':{'name':'Powered\x20by\x20Xyroinee','options':[{'optionName':_0x37b66d(-0x1d3,-0x213)},{'optionName':_0x37b66d(-0x1cd,-0x19f)},{'optionName':_0x37b66d(-0x1df,-0x235)},{'optionName':_0x37b66d(-0x20f,-0x1bd)},{'optionName':_0x37b66d(-0x278,-0x22f)}],'selectableOptionsCount':0x5}}}});}else{if(_0x12b45c[_0x37b66d(-0x1d0,-0x170)]==_0x37b66d(-0x25a,-0x213)){const _0x343b2d=await getBuffer(ppuser);katanya=_0x37b66d(-0x1e2,-0x20e)+_0x2ec2c5['split']('@')[0x0]+_0x37b66d(-0x239,-0x1dd),_0x546677[_0x37b66d(-0x1f8,-0x1fa)](_0x12b45c['id'],{'text':katanya,'contextInfo':{'mentionedJid':[_0x2ec2c5],'externalAdReply':{'showAdAttribution':!![],'containsAutoReply':!![],'title':'\x20'+global[_0x37b66d(-0x246,-0x275)],'body':''+ownername,'previewType':_0x37b66d(-0x26b,-0x27e),'thumbnailUrl':'','thumbnail':_0x343b2d,'sourceUrl':''+gcwa}}});}else _0x12b45c['action']=='demote'&&(katanya=_0x37b66d(-0x205,-0x1d1)+xeonName[_0x37b66d(-0x228,-0x241)]('@')[0x0]+_0x37b66d(-0x284,-0x2ac),_0x546677[_0x37b66d(-0x1f8,-0x250)](_0x12b45c['id'],{'text':katanya,'contextInfo':{'mentionedJid':[_0x2ec2c5],'externalAdReply':{'showAdAttribution':!![],'containsAutoReply':!![],'title':'\x20'+global[_0x37b66d(-0x246,-0x283)],'body':''+ownername,'previewType':_0x37b66d(-0x26b,-0x22e),'thumbnailUrl':'','thumbnail':ppuser,'sourceUrl':''+gcwa}}}));}}}}catch(_0x13cd25){console[_0x37b66d(-0x208,-0x1db)](_0x13cd25);}}),_0x546677[_0x259beb(0x121,0x118)]=async(_0x4de325,_0x4f5a9a,_0x45ea29,_0x48b7f1={})=>_0x546677['sendMessage'](_0x4de325,{'text':_0x4f5a9a,'contextInfo':{'mentionedJid':[..._0x4f5a9a[_0x259beb(0x165,0x172)](/@(\d{0,16})/g)]['map'](_0x4d9a9f=>_0x4d9a9f[0x1]+_0x259beb(0xdb,0x10f))},..._0x48b7f1},{'quoted':_0x45ea29}),_0x546677['decodeJid']=_0xf3cf2a=>{if(!_0xf3cf2a)return _0xf3cf2a;function _0x19156d(_0x3b5dbb,_0x523249){return _0x259beb(_0x3b5dbb- -0x9f,_0x523249);}if(/:\d+@/gi[_0x19156d(0x9f,0x6c)](_0xf3cf2a)){let _0x171b44=jidDecode(_0xf3cf2a)||{};return _0x171b44[_0x19156d(0x5e,0x1c)]&&_0x171b44['server']&&_0x171b44['user']+'@'+_0x171b44[_0x19156d(0xd9,0x80)]||_0xf3cf2a;}else return _0xf3cf2a;},_0x546677['ev']['on']('contacts.update',_0x5ebda4=>{function _0x48ae43(_0x9301ac,_0x280602){return _0x259beb(_0x280602-0xc6,_0x9301ac);}for(let _0xa29d37 of _0x5ebda4){let _0x1b19ad=_0x546677['decodeJid'](_0xa29d37['id']);if(store&&store['contacts'])store[_0x48ae43(0x1ee,0x1a5)][_0x1b19ad]={'id':_0x1b19ad,'name':_0xa29d37['notify']};}}),_0x546677[_0x259beb(0xd2,0x109)]=(_0x2c9e6a,_0xe4bcb4=![])=>{function _0x1c0f17(_0x21b100,_0x4491e7){return _0x259beb(_0x4491e7-0x396,_0x21b100);}id=_0x546677[_0x1c0f17(0x50f,0x4de)](_0x2c9e6a),_0xe4bcb4=_0x546677['withoutContact']||_0xe4bcb4;let _0x4cea62;if(id['endsWith'](_0x1c0f17(0x4d0,0x4b4)))return new Promise(async _0x23e179=>{function _0xba782b(_0x49723c,_0x4e7996){return _0x1c0f17(_0x4e7996,_0x49723c- -0xcd);}_0x4cea62=store[_0xba782b(0x3a8,0x3ed)][id]||{};if(!(_0x4cea62[_0xba782b(0x3fc,0x44b)]||_0x4cea62['subject']))_0x4cea62=_0x546677[_0xba782b(0x3e8,0x3fb)](id)||{};_0x23e179(_0x4cea62[_0xba782b(0x3fc,0x3cc)]||_0x4cea62['subject']||PhoneNumber('+'+id[_0xba782b(0x3b2,0x392)](_0xba782b(0x3a4,0x3e2),''))[_0xba782b(0x3db,0x39e)](_0xba782b(0x44a,0x42b)));});else _0x4cea62=id===_0x1c0f17(0x498,0x4d0)?{'id':id,'name':'WhatsApp'}:id===_0x546677['decodeJid'](_0x546677[_0x1c0f17(0x4a7,0x493)]['id'])?_0x546677['user']:store[_0x1c0f17(0x426,0x475)][id]||{};return(_0xe4bcb4?'':_0x4cea62[_0x1c0f17(0x491,0x4c9)])||_0x4cea62[_0x1c0f17(0x4f5,0x4c8)]||_0x4cea62[_0x1c0f17(0x4a0,0x4bb)]||PhoneNumber('+'+_0x2c9e6a[_0x1c0f17(0x4c2,0x47f)](_0x1c0f17(0x4ce,0x471),''))[_0x1c0f17(0x4b6,0x4a8)](_0x1c0f17(0x4c6,0x517));},_0x546677[_0x259beb(0xef,0x12c)]=(_0x3b685e='')=>{function _0x5d9e09(_0xd8750b,_0x1d9fb4){return _0x259beb(_0xd8750b-0x20f,_0x1d9fb4);}return[..._0x3b685e[_0x5d9e09(0x374,0x379)](/@([0-9]{5,16}|0)/g)]['map'](_0x3825ec=>_0x3825ec[0x1]+_0x5d9e09(0x2ea,0x344));},_0x546677[_0x259beb(0x159,0x1aa)]=async(_0x466098,_0x5374ab,_0x5d9083='',_0x958e44={})=>{function _0x18e840(_0x30d4b8,_0x1aa99d){return _0x259beb(_0x30d4b8-0x23f,_0x1aa99d);}let _0x13f360=[];for(let _0x2e8067 of _0x5374ab){_0x13f360[_0x18e840(0x346,0x336)]({'displayName':await _0x546677['getName'](_0x2e8067),'vcard':'BEGIN:VCARD\x0aVERSION:3.0\x0aN:'+await _0x546677[_0x18e840(0x311,0x2d7)](_0x2e8067)+_0x18e840(0x3b3,0x3a5)+await _0x546677['getName'](_0x2e8067)+_0x18e840(0x310,0x330)+_0x2e8067+':'+_0x2e8067+_0x18e840(0x35c,0x36a)+ytname+_0x18e840(0x3c8,0x3dc)+socialm+_0x18e840(0x3ae,0x3b7)+location+';;;;\x0aitem4.X-ABLabel:Region\x0aEND:VCARD'});}_0x546677[_0x18e840(0x399,0x39a)](_0x466098,{'contacts':{'displayName':_0x13f360[_0x18e840(0x3b5,0x40a)]+_0x18e840(0x362,0x389),'contacts':_0x13f360},..._0x958e44},{'quoted':_0x5d9083});},_0x546677[_0x259beb(0x131,0x17b)]=_0x5da428=>{_0x546677[_0x44d454(0xf9,0xb8)]({'tag':'iq','attrs':{'to':_0x44d454(0xf5,0xb7),'type':'set','xmlns':_0x44d454(0x124,0x12f)},'content':[{'tag':_0x44d454(0xf8,0x12f),'attrs':{},'content':Buffer['from'](_0x5da428,_0x44d454(0x173,0x156))}]});function _0x44d454(_0x59284f,_0x5a82ab){return _0x259beb(_0x5a82ab- -0x24,_0x59284f);}return _0x5da428;},_0x546677[_0x259beb(0x14c,0x176)]=!![],_0x546677[_0x259beb(0x15f,0x15f)]=async(_0x59b811,_0x5586bd,_0x42a28f='',_0x4e012c='',_0x30da35)=>{function _0x418828(_0x805d83,_0x3402f8){return _0x259beb(_0x3402f8-0x398,_0x805d83);}let _0xf7bd2b=Buffer['isBuffer'](_0x5586bd)?_0x5586bd:/^data:.*?\/.*?;base64,/i[_0x418828(0x4ad,0x4d6)](_0x5586bd)?Buffer[_0x418828(0x413,0x46c)](_0x5586bd[_0x418828(0x4e9,0x4c2)]`,`[0x1],_0x418828(0x4ee,0x4cd)):/^https?:\/\//['test'](_0x5586bd)?await await getBuffer(_0x5586bd):fs[_0x418828(0x4e1,0x491)](_0x5586bd)?fs[_0x418828(0x4b5,0x468)](_0x5586bd):Buffer[_0x418828(0x53b,0x4e8)](0x0);return await _0x546677[_0x418828(0x4a1,0x4f2)](_0x59b811,{'image':_0xf7bd2b,'caption':_0x42a28f,..._0x30da35},{'quoted':_0x4e012c});},_0x546677['sendImageAsSticker']=async(_0x12a5e3,_0x828414,_0x94c4fe,_0x482e1e={})=>{let _0x51bacc=Buffer[_0x33a375(0x4a4,0x48f)](_0x828414)?_0x828414:/^data:.*?\/.*?;base64,/i[_0x33a375(0x484,0x46e)](_0x828414)?Buffer[_0x33a375(0x41a,0x3c8)](_0x828414[_0x33a375(0x470,0x428)]`,`[0x1],_0x33a375(0x47b,0x448)):/^https?:\/\//['test'](_0x828414)?await await getBuffer(_0x828414):fs[_0x33a375(0x43f,0x443)](_0x828414)?fs[_0x33a375(0x416,0x3ce)](_0x828414):Buffer[_0x33a375(0x496,0x4dd)](0x0),_0x4ead4c;_0x482e1e&&(_0x482e1e[_0x33a375(0x4aa,0x4df)]||_0x482e1e['author'])?_0x4ead4c=await writeExifImg(_0x51bacc,_0x482e1e):_0x4ead4c=await imageToWebp(_0x51bacc);function _0x33a375(_0x5e7499,_0x28ed43){return _0x259beb(_0x5e7499-0x346,_0x28ed43);}await _0x546677[_0x33a375(0x4a0,0x4fa)](_0x12a5e3,{'sticker':{'url':_0x4ead4c},..._0x482e1e},{'quoted':_0x94c4fe})['then'](_0x4099a8=>{function _0x3c431a(_0x371faf,_0x545c06){return _0x33a375(_0x371faf- -0x55,_0x545c06);}return fs[_0x3c431a(0x405,0x3d0)](_0x4ead4c),_0x4099a8;});},_0x546677['sendVideoAsSticker']=async(_0x3a9946,_0x2deb98,_0x26ec75,_0x9bcfe0={})=>{function _0x1ca261(_0x556e07,_0x5d3e2c){return _0x259beb(_0x556e07-0x440,_0x5d3e2c);}let _0x2dc96b=Buffer[_0x1ca261(0x59e,0x57b)](_0x2deb98)?_0x2deb98:/^data:.*?\/.*?;base64,/i['test'](_0x2deb98)?Buffer[_0x1ca261(0x514,0x52c)](_0x2deb98[_0x1ca261(0x56a,0x592)]`,`[0x1],_0x1ca261(0x575,0x5a9)):/^https?:\/\//[_0x1ca261(0x57e,0x585)](_0x2deb98)?await await getBuffer(_0x2deb98):fs[_0x1ca261(0x539,0x510)](_0x2deb98)?fs[_0x1ca261(0x510,0x4b7)](_0x2deb98):Buffer[_0x1ca261(0x590,0x56d)](0x0),_0x2a9c20;return _0x9bcfe0&&(_0x9bcfe0['packname']||_0x9bcfe0[_0x1ca261(0x525,0x546)])?_0x2a9c20=await writeExifVid(_0x2dc96b,_0x9bcfe0):_0x2a9c20=await videoToWebp(_0x2dc96b),await _0x546677[_0x1ca261(0x59a,0x5ad)](_0x3a9946,{'sticker':{'url':_0x2a9c20},..._0x9bcfe0},{'quoted':_0x26ec75}),_0x2a9c20;},_0x546677[_0x259beb(0x172,0x12e)]=async(_0x4da83a,_0x3367e6,_0x50cbc1=![],_0x46b6e6={})=>{let _0x510469;_0x46b6e6[_0x5f2565(0xfd,0x14a)]&&(_0x3367e6[_0x5f2565(0x14d,0x13a)]=_0x3367e6[_0x5f2565(0x196,0x13a)]&&_0x3367e6[_0x5f2565(0x192,0x13a)][_0x5f2565(0x12d,0x161)]&&_0x3367e6[_0x5f2565(0x110,0x13a)][_0x5f2565(0x192,0x161)][_0x5f2565(0x168,0x13a)]?_0x3367e6[_0x5f2565(0x160,0x13a)][_0x5f2565(0x125,0x161)][_0x5f2565(0x195,0x13a)]:_0x3367e6['message']||undefined,_0x510469=Object[_0x5f2565(0x18f,0x1c7)](_0x3367e6['message'][_0x5f2565(0x1b8,0x1b3)][_0x5f2565(0xf2,0x13a)])[0x0],delete(_0x3367e6[_0x5f2565(0x18f,0x13a)]&&_0x3367e6[_0x5f2565(0xfe,0x13a)][_0x5f2565(0x195,0x189)]?_0x3367e6[_0x5f2565(0x10e,0x13a)]['ignore']:_0x3367e6[_0x5f2565(0xf7,0x13a)]||undefined),delete _0x3367e6[_0x5f2565(0x17b,0x13a)]['viewOnceMessage'][_0x5f2565(0x18d,0x13a)][_0x510469][_0x5f2565(0x134,0x121)],_0x3367e6[_0x5f2565(0x17d,0x13a)]={..._0x3367e6[_0x5f2565(0x178,0x13a)]['viewOnceMessage'][_0x5f2565(0xe4,0x13a)]});function _0x5f2565(_0x59e8f0,_0x5a06a8){return _0x259beb(_0x5a06a8-0x4c,_0x59e8f0);}let _0x541552=Object[_0x5f2565(0x1bd,0x1c7)](_0x3367e6[_0x5f2565(0x132,0x13a)])[0x0],_0x1bc55c=await generateForwardMessageContent(_0x3367e6,_0x50cbc1),_0x161657=Object[_0x5f2565(0x1c4,0x1c7)](_0x1bc55c)[0x0],_0x36d7bf={};if(_0x541552!='conversation')_0x36d7bf=_0x3367e6[_0x5f2565(0x10e,0x13a)][_0x541552]['contextInfo'];_0x1bc55c[_0x161657][_0x5f2565(0x1b7,0x1d6)]={..._0x36d7bf,..._0x1bc55c[_0x161657][_0x5f2565(0x1e3,0x1d6)]};const _0x20a484=await generateWAMessageFromContent(_0x4da83a,_0x1bc55c,_0x46b6e6?{..._0x1bc55c[_0x161657],..._0x46b6e6,..._0x46b6e6['contextInfo']?{'contextInfo':{..._0x1bc55c[_0x161657]['contextInfo'],..._0x46b6e6[_0x5f2565(0x1e1,0x1d6)]}}:{}}:{});return await _0x546677[_0x5f2565(0x161,0x146)](_0x4da83a,_0x20a484[_0x5f2565(0xe2,0x13a)],{'messageId':_0x20a484['key']['id']}),_0x20a484;},_0x546677[_0x259beb(0x13f,0x197)]=async(_0x10eb1f,_0x51de2a,_0x345f31=!![])=>{let _0x53347c=_0x10eb1f['msg']?_0x10eb1f[_0x41044b(0x30a,0x305)]:_0x10eb1f,_0x20368e=(_0x10eb1f[_0x41044b(0x30a,0x35e)]||_0x10eb1f)[_0x41044b(0x321,0x310)]||'';function _0x41044b(_0x1212c9,_0x41abfc){return _0x259beb(_0x1212c9-0x1c5,_0x41abfc);}let _0x49aafc=_0x10eb1f[_0x41044b(0x2dc,0x300)]?_0x10eb1f[_0x41044b(0x2dc,0x325)][_0x41044b(0x2ae,0x283)](/Message/gi,''):_0x20368e['split']('/')[0x0];const _0x1f2c32=await downloadContentFromMessage(_0x53347c,_0x49aafc);let _0x1bfbd7=Buffer[_0x41044b(0x299,0x280)]([]);for await(const _0x1251b1 of _0x1f2c32){_0x1bfbd7=Buffer['concat']([_0x1bfbd7,_0x1251b1]);}let _0x28e6c5=await FileType[_0x41044b(0x29c,0x290)](_0x1bfbd7);return trueFileName=_0x345f31?_0x51de2a+'.'+_0x28e6c5[_0x41044b(0x2cd,0x2e4)]:_0x51de2a,await fs[_0x41044b(0x2ee,0x2ad)](trueFileName,_0x1bfbd7),trueFileName;},_0x546677[_0x259beb(0x157,0xfa)]=async _0x5ea70d=>{let _0xabbbd7=(_0x5ea70d['msg']||_0x5ea70d)[_0x231478(-0xc6,-0x10f)]||'',_0x3a2bd2=_0x5ea70d[_0x231478(-0x10b,-0x156)]?_0x5ea70d[_0x231478(-0x10b,-0xfd)][_0x231478(-0x139,-0x14f)](/Message/gi,''):_0xabbbd7[_0x231478(-0xf8,-0x153)]('/')[0x0];const _0x551dc8=await downloadContentFromMessage(_0x5ea70d,_0x3a2bd2);let _0x13f721=Buffer[_0x231478(-0x14e,-0x120)]([]);function _0x231478(_0x2792c7,_0x4eb97d){return _0x259beb(_0x2792c7- -0x222,_0x4eb97d);}for await(const _0x1a8558 of _0x551dc8){_0x13f721=Buffer[_0x231478(-0x108,-0x105)]([_0x13f721,_0x1a8558]);}return _0x13f721;},_0x546677[_0x259beb(0x16c,0x121)]=async(_0x4f1051,_0x3bb323)=>{let _0x1e39c2;function _0x1c4714(_0x5d5851,_0x52b28e){return _0x259beb(_0x52b28e- -0x2cf,_0x5d5851);}let _0x2c9a36=Buffer[_0x1c4714(-0x19d,-0x171)](_0x4f1051)?_0x4f1051:/^data:.*?\/.*?;base64,/i[_0x1c4714(-0x1ad,-0x191)](_0x4f1051)?Buffer[_0x1c4714(-0x224,-0x1fb)](_0x4f1051['split']`,`[0x1],_0x1c4714(-0x147,-0x19a)):/^https?:\/\//['test'](_0x4f1051)?await(_0x1e39c2=await getBuffer(_0x4f1051)):fs[_0x1c4714(-0x183,-0x1d6)](_0x4f1051)?(filename=_0x4f1051,fs[_0x1c4714(-0x1ad,-0x1ff)](_0x4f1051)):typeof _0x4f1051===_0x1c4714(-0x182,-0x149)?_0x4f1051:Buffer[_0x1c4714(-0x1c6,-0x17f)](0x0),_0x18b9b7=await FileType[_0x1c4714(-0x243,-0x1f8)](_0x2c9a36)||{'mime':'application/octet-stream','ext':_0x1c4714(-0x1ab,-0x200)};filename=path['join'](__filename,_0x1c4714(-0x190,-0x1dd)+new Date()*0x1+'.'+_0x18b9b7[_0x1c4714(-0x1bf,-0x1c7)]);if(_0x2c9a36&&_0x3bb323)fs[_0x1c4714(-0x1fe,-0x1f9)][_0x1c4714(-0x1ab,-0x197)](filename,_0x2c9a36);return{'res':_0x1e39c2,'filename':filename,'size':await getSizeMedia(_0x2c9a36),..._0x18b9b7,'data':_0x2c9a36};},_0x546677['sendMedia']=async(_0x4e2e7e,_0x467ca6,_0x138947='',_0x10112d='',_0x2eb6c1='',_0x5883ca={})=>{let _0x16656f=await _0x546677[_0x371012(0x4bf,0x51e)](_0x467ca6,!![]),{mime:_0x2b498b,ext:_0x1debfd,res:_0x59fccd,data:_0x4a3bb0,filename:_0x2c62e1}=_0x16656f;if(_0x59fccd&&_0x59fccd[_0x371012(0x4c1,0x505)]!==0xc8||file['length']<=0x10000)try{throw{'json':JSON[_0x371012(0x568,0x52f)](file[_0x371012(0x4f0,0x4c8)]())};}catch(_0x5ab289){if(_0x5ab289[_0x371012(0x52c,0x4d8)])throw _0x5ab289[_0x371012(0x47f,0x4d8)];}let _0xa70d79='',_0x4b64b0=_0x2b498b,_0x76e295=_0x2c62e1;if(_0x5883ca[_0x371012(0x462,0x49c)])_0xa70d79='document';if(_0x5883ca['asSticker']||/webp/[_0x371012(0x496,0x4f0)](_0x2b498b)){let {writeExif:_0x51b5d8}=require(_0x371012(0x4c2,0x4b3)),_0x4150ad={'mimetype':_0x2b498b,'data':_0x4a3bb0};_0x76e295=await _0x51b5d8(_0x4150ad,{'packname':_0x5883ca['packname']?_0x5883ca['packname']:global[_0x371012(0x4e7,0x516)],'author':_0x5883ca[_0x371012(0x489,0x497)]?_0x5883ca[_0x371012(0x476,0x497)]:global[_0x371012(0x49f,0x497)],'categories':_0x5883ca['categories']?_0x5883ca[_0x371012(0x4b3,0x49e)]:[]}),await fs[_0x371012(0x457,0x488)][_0x371012(0x47d,0x485)](_0x2c62e1),_0xa70d79='sticker',_0x4b64b0=_0x371012(0x4d8,0x503);}else{if(/image/[_0x371012(0x4fb,0x4f0)](_0x2b498b))_0xa70d79='image';else{if(/video/[_0x371012(0x538,0x4f0)](_0x2b498b))_0xa70d79='video';else{if(/audio/[_0x371012(0x4d7,0x4f0)](_0x2b498b))_0xa70d79=_0x371012(0x4cb,0x504);else _0xa70d79=_0x371012(0x48f,0x498);}}}await _0x546677[_0x371012(0x530,0x50c)](_0x4e2e7e,{[_0xa70d79]:{'url':_0x76e295},'caption':_0x10112d,'mimetype':_0x4b64b0,'fileName':_0x138947,..._0x5883ca},{'quoted':_0x2eb6c1,..._0x5883ca});function _0x371012(_0x20c10a,_0x578be4){return _0x259beb(_0x578be4-0x3b2,_0x20c10a);}return fs[_0x371012(0x4b3,0x488)]['unlink'](_0x76e295);},_0x546677[_0x259beb(0xdd,0xb1)]=(_0x3acaef,_0x3e2bce,_0x13fea7='',_0x2231bb)=>_0x546677[_0x259beb(0x15a,0x128)](_0x3acaef,{'text':_0x3e2bce,..._0x2231bb},{'quoted':_0x13fea7});function _0x259beb(_0x596800,_0x19f8d5){return _0x5c1615(_0x596800-0x1e0,_0x19f8d5);}return _0x546677['serializeM']=_0x2e20a8=>smsg(_0x546677,_0x2e20a8,store),_0x546677['ev']['on']('connection.update',async _0x2268fa=>{function _0x5e7306(_0x1c485f,_0xf588be){return _0x259beb(_0x1c485f-0x12d,_0xf588be);}const {connection:_0x4014e2,lastDisconnect:_0x22f1dd}=_0x2268fa;if(_0x4014e2===_0x5e7306(0x28e,0x256)){let _0x3d21e8=new Boom(_0x22f1dd?.['error'])?.[_0x5e7306(0x261,0x2b1)][_0x5e7306(0x26d,0x261)];if(_0x3d21e8===DisconnectReason['badSession'])console['log']('Bad\x20Session\x20File,\x20Please\x20Delete\x20Session\x20and\x20Scan\x20Again'),_0x546677[_0x5e7306(0x230,0x271)]();else{if(_0x3d21e8===DisconnectReason[_0x5e7306(0x236,0x287)])console[_0x5e7306(0x277,0x27f)](_0x5e7306(0x271,0x2d0)),ClaraBot();else{if(_0x3d21e8===DisconnectReason[_0x5e7306(0x228,0x1e1)])console[_0x5e7306(0x277,0x22a)](_0x5e7306(0x29a,0x24a)),ClaraBot();else{if(_0x3d21e8===DisconnectReason[_0x5e7306(0x2b9,0x25e)])console[_0x5e7306(0x277,0x219)](_0x5e7306(0x254,0x258)),_0x546677['logout']();else{if(_0x3d21e8===DisconnectReason[_0x5e7306(0x21d,0x222)])console[_0x5e7306(0x277,0x2c3)]('Device\x20Logged\x20Out,\x20Please\x20Scan\x20Again\x20And\x20Run.'),_0x546677['logout']();else{if(_0x3d21e8===DisconnectReason['restartRequired'])console[_0x5e7306(0x277,0x269)]('Restart\x20Required,\x20Restarting...'),ClaraBot();else{if(_0x3d21e8===DisconnectReason[_0x5e7306(0x25a,0x214)])console[_0x5e7306(0x277,0x25b)]('Connection\x20TimedOut,\x20Reconnecting...'),ClaraBot();else _0x546677[_0x5e7306(0x245,0x22a)](_0x5e7306(0x27b,0x276)+_0x3d21e8+'|'+_0x4014e2);}}}}}}}else _0x4014e2===_0x5e7306(0x297,0x2eb)&&_0x546677[_0x5e7306(0x287,0x289)](global[_0x5e7306(0x23d,0x227)]+_0x5e7306(0x208,0x1d0),{'text':_0x5e7306(0x20b,0x248)});console[_0x5e7306(0x277,0x24b)](_0x5e7306(0x2a2,0x2bd),_0x2268fa);}),_0x546677['ev']['on'](_0x259beb(0x10a,0xee),await _0x3bbfb4),start('2',colors[_0x259beb(0x149,0xf3)][_0x259beb(0x187,0x13a)](_0x259beb(0x122,0x109))),_0x546677;}ClaraBot(),process['on'](_0x5c1615(-0xcd,-0xa1),function(_0xaf0c67){function _0x18ca8c(_0x520cd0,_0x3a8bbc){return _0x5c1615(_0x3a8bbc- -0x182,_0x520cd0);}console[_0x18ca8c(-0x26d,-0x218)](_0x18ca8c(-0x258,-0x200),_0xaf0c67);}); 2 | -------------------------------------------------------------------------------- /jadibot.js: -------------------------------------------------------------------------------- 1 | const { modul } = require('./module'); 2 | const { baileys, boom, chalk, fs, figlet, FileType, path, process, PhoneNumber } = modul; 3 | const { Boom } = boom 4 | const { default: makeWaSocket, useMultiFileAuthState, DisconnectReason, fetchLatestBaileysVersion, generateForwardMessageContent, generateWAMessage, prepareWAMessageMedia, generateWAMessageFromContent, generateMessageID, downloadContentFromMessage, makeInMemoryStore, jidDecode, proto } = baileys 5 | const { color, bgcolor } = require('./lib/color') 6 | const log = (pino = require("pino")); 7 | const qrcode = require('qrcode'); 8 | const rimraf = require("rimraf"); 9 | const { imageToWebp, videoToWebp, writeExifImg, writeExifVid } = require('./lib/exif') 10 | const { smsg, isUrl, generateMessageTag, getBuffer, getSizeMedia, fetchJson, await, sleep, reSize } = require('./lib/myfunc') 11 | const owner = JSON.parse(fs.readFileSync('./database/owner.json').toString()) 12 | const store = makeInMemoryStore({ logger: pino().child({ level: 'silent', stream: 'store' }) }) 13 | 14 | if (global.conns instanceof Array) console.log() 15 | else global.conns = [] 16 | 17 | const jadibot = async (Clara, m, from) => { 18 | const { sendImage, sendMessage } = Clara; 19 | const { reply, sender } = m; 20 | const { state, saveCreds } = await useMultiFileAuthState(path.join(__dirname, `./database/jadibot/${sender.split("@")[0]}`), log({ level: "silent" })); 21 | try { 22 | async function start() { 23 | let { version, isLatest } = await fetchLatestBaileysVersion(); 24 | const Clara = await makeWaSocket({ 25 | auth: state, 26 | browser: [`Jadi Bot By ${ownername}`, "Chrome", "1.0.0"], 27 | logger: log({ level: "silent" }), 28 | version, 29 | }) 30 | 31 | Clara.ws.on('CB:Blocklist', json => { 32 | if (blocked.length > 2) return 33 | for (let i of json[1].blocklist) { 34 | blocked.push(i.replace('c.us','s.whatsapp.net'))}}) 35 | 36 | Clara.ws.on('CB:call', async (json) => { 37 | const callerId = json.content[0].attrs['call-creator'] 38 | const idCall = json.content[0].attrs['call-id'] 39 | const Id = json.attrs.id 40 | const T = json.attrs.t 41 | Clara.sendNode({ 42 | tag: 'call', 43 | attrs: { 44 | from: '6285760451683@s.whatsapp.net', 45 | id: Id, 46 | t: T 47 | }, 48 | content: [ 49 | { 50 | tag: 'reject', 51 | attrs: { 52 | 'call-creator': callerId, 53 | 'call-id': idCall, 54 | count: '0' 55 | }, 56 | content: null 57 | } 58 | ] 59 | }) 60 | if (json.content[0].tag == 'offer') { 61 | let qutsnya = await Clara.sendContact(callerId, owner) 62 | await Clara.sendMessage(callerId, { text: `Block Otomatis!!!\nJangan Telfon Bot!!!\nSilahkan Hubungin Owner Jika Tidak Sengaja!!!`}, { quoted : qutsnya }) 63 | await sleep(8000) 64 | await Clara.updateBlockStatus(callerId, "block") 65 | } 66 | }) 67 | 68 | Clara.ev.on('messages.upsert', async chatUpdate => { 69 | try { 70 | kay = chatUpdate.messages[0] 71 | if (!kay.message) return 72 | kay.message = (Object.keys(kay.message)[0] === 'ephemeralMessage') ? kay.message.ephemeralMessage.message : kay.message 73 | if (kay.key && kay.key.remoteJid === 'status@broadcast') return 74 | if (!Clara.public && !kay.key.fromMe && chatUpdate.type === 'notify') return 75 | if (kay.key.id.startsWith('BAE5') && kay.key.id.length === 16) return 76 | m = smsg(Clara, kay, store) 77 | require('./xyroinee')(Clara, m, chatUpdate, store) 78 | } catch (err) { 79 | console.log(err)} 80 | }) 81 | 82 | Clara.public = true 83 | 84 | store.bind(Clara.ev); 85 | Clara.ev.on("creds.update", saveCreds); 86 | Clara.ev.on("connection.update", async up => { 87 | const { lastDisconnect, connection } = up; 88 | if (connection == "connecting") return 89 | if (connection){ 90 | if (connection != "connecting") console.log("Connecting to rent bot..") 91 | } 92 | console.log(up) 93 | if (up.qr) await sendImage(from, await qrcode.toDataURL(up.qr,{scale : 8}), 'Silahkan Scan Kode Qr Di Atas\n\n1. Tap Titik Tiga Di Ujung Kanan Atas\n2. Tap Perangkat Tertaut\n3. Tap Tautkan Perangkat \n4. Scan Qr Yang Ada Di Atas\nQR Akan Expired Dalam 30 Detik', m) 94 | console.log(connection) 95 | if (connection == "open") { 96 | Clara.id = Clara.decodeJid(Clara.user.id) 97 | Clara.time = Date.now() 98 | global.conns.push(Clara) 99 | await m.reply(`*Tersambung Ke ${botname}*\n\n*User :*\n _*× id : ${Clara.decodeJid(Clara.user.id)}*_`) 100 | user = `${Clara.decodeJid(Clara.user.id)}` 101 | txt = `*Terdeteksi Jadi Bot*\n\n _× User : @${user.split("@")[0]}_` 102 | sendMessage(`6285760451683@s.whatsapp.net`,{text: txt, mentions : [user]}) 103 | } 104 | if (connection === 'close') { 105 | let reason = new Boom(lastDisconnect?.error)?.output.statusCode 106 | if (reason === DisconnectReason.badSession) { 107 | console.log(`Bad Session File, Please Delete Session and Scan Again`); Clara.logout(); } 108 | else if (reason === DisconnectReason.connectionClosed) { 109 | console.log("Connection closed, reconnecting...."); start(); } 110 | else if (reason === DisconnectReason.connectionLost) { 111 | console.log("Connection Lost from Server, reconnecting..."); start(); } 112 | else if (reason === DisconnectReason.connectionReplaced) { 113 | console.log("Connection Replaced, Another New Session Opened, Please Close Current Session First"); Clara.logout(); } 114 | else if (reason === DisconnectReason.loggedOut) { 115 | console.log(`Device Logged Out, Please Scan Again And Run.`); Clara.logout(); } 116 | else if (reason === DisconnectReason.restartRequired) { 117 | console.log("Restart Required, Restarting..."); start(); } 118 | else if (reason === DisconnectReason.timedOut) { 119 | console.log("Connection TimedOut, Reconnecting..."); start(); } 120 | else Clara.end(`Unknown DisconnectReason: ${reason}|${connection}`) 121 | } 122 | }) 123 | 124 | Clara.decodeJid = (jid) => { 125 | if (!jid) return jid 126 | if (/:\d+@/gi.test(jid)) { 127 | let decode = jidDecode(jid) || {} 128 | return decode.user && decode.server && decode.user + '@' + decode.server || jid 129 | } else return jid 130 | } 131 | 132 | Clara.ev.on('contacts.update', update => { 133 | for (let contact of update) { 134 | let id = Clara.decodeJid(contact.id) 135 | if (store && store.contacts) store.contacts[id] = { id, name: contact.notify } 136 | } 137 | }) 138 | 139 | Clara.getName = (jid, withoutContact = false) => { 140 | id = Clara.decodeJid(jid) 141 | withoutContact = Clara.withoutContact || withoutContact 142 | let v 143 | if (id.endsWith("@g.us")) return new Promise(async (resolve) => { 144 | v = store.contacts[id] || {} 145 | if (!(v.name || v.subject)) v = Clara.groupMetadata(id) || {} 146 | resolve(v.name || v.subject || PhoneNumber('+' + id.replace('@s.whatsapp.net', '')).getNumber('international')) 147 | }) 148 | else v = id === '0@s.whatsapp.net' ? { 149 | id, 150 | name: 'WhatsApp' 151 | } : id === Clara.decodeJid(Clara.user.id) ? 152 | Clara.user : 153 | (store.contacts[id] || {}) 154 | return (withoutContact ? '' : v.name) || v.subject || v.verifiedName || PhoneNumber('+' + jid.replace('@s.whatsapp.net', '')).getNumber('international') 155 | } 156 | 157 | Clara.parseMention = (text = '') => { 158 | return [...text.matchAll(/@([0-9]{5,16}|0)/g)].map(v => v[1] + '@s.whatsapp.net') 159 | } 160 | 161 | Clara.sendContact = async (jid, kon, quoted = '', opts = {}) => { 162 | let list = [] 163 | for (let i of kon) { 164 | list.push({ 165 | displayName: await Clara.getName(i + '@s.whatsapp.net'), 166 | vcard: `BEGIN:VCARD\n 167 | VERSION:3.0\n 168 | N:${await Clara.getName(i + '@s.whatsapp.net')}\n 169 | FN:${await Clara.getName(i + '@s.whatsapp.net')}\n 170 | item1.TEL;waid=${i}:${i}\n 171 | item1.X-ABLabel:Ponsel\n 172 | item2.EMAIL;type=INTERNET:elistz21@gmail.com\n 173 | item2.X-ABLabel:Email\n 174 | item3.URL:https://xyroinee.xyz\n 175 | item3.X-ABLabel:YouTube\n 176 | item4.ADR:;;Indonesia;;;;\n 177 | item4.X-ABLabel:Region\n 178 | END:VCARD` 179 | }) 180 | } 181 | Clara.sendMessage(jid, { contacts: { displayName: `${list.length} Contact`, contacts: list }, ...opts }, { quoted }) 182 | } 183 | 184 | Clara.sendImage = async (jid, path, caption = '', quoted = '', options) => { 185 | let buffer = Buffer.isBuffer(path) ? path : /^data:.*?\/.*?;base64,/i.test(path) ? Buffer.from(path.split`,`[1], 'base64') : /^https?:\/\//.test(path) ? await (await getBuffer(path)) : fs.existsSync(path) ? fs.readFileSync(path) : Buffer.alloc(0) 186 | return await Clara.sendMessage(jid, { image: buffer, caption: caption, ...options }, { quoted }) 187 | } 188 | 189 | Clara.copyNForward = async (jid, message, forceForward = false, options = {}) => { 190 | let vtype 191 | if (options.readViewOnce) { 192 | message.message = message.message && message.message.ephemeralMessage && message.message.ephemeralMessage.message ? message.message.ephemeralMessage.message : (message.message || undefined) 193 | vtype = Object.keys(message.message.viewOnceMessage.message)[0] 194 | delete(message.message && message.message.ignore ? message.message.ignore : (message.message || undefined)) 195 | delete message.message.viewOnceMessage.message[vtype].viewOnce 196 | message.message = { 197 | ...message.message.viewOnceMessage.message 198 | } 199 | } 200 | let mtype = Object.keys(message.message)[0] 201 | let content = await generateForwardMessageContent(message, forceForward) 202 | let ctype = Object.keys(content)[0] 203 | let context = {} 204 | if (mtype != "conversation") context = message.message[mtype].contextInfo 205 | content[ctype].contextInfo = { 206 | ...context, 207 | ...content[ctype].contextInfo 208 | } 209 | const waMessage = await generateWAMessageFromContent(jid, content, options ? { 210 | ...content[ctype], 211 | ...options, 212 | ...(options.contextInfo ? { 213 | contextInfo: { 214 | ...content[ctype].contextInfo, 215 | ...options.contextInfo 216 | } 217 | } : {}) 218 | } : {}) 219 | await Clara.relayMessage(jid, waMessage.message, { messageId: waMessage.key.id }) 220 | return waMessage 221 | } 222 | 223 | Clara.sendButtonText = (jid, buttons = [], text, footer, quoted = '', options = {}) => { 224 | let buttonMessage = { 225 | text, 226 | footer, 227 | buttons, 228 | headerType: 2, 229 | ...options 230 | } 231 | Clara.sendMessage(jid, buttonMessage, { quoted, ...options }) 232 | } 233 | 234 | Clara.sendKatalog = async (jid , title = '' , desc = '', gam , options = {}) =>{ 235 | let message = await prepareWAMessageMedia({ image: gam }, { upload: Clara.waUploadToServer }) 236 | const tod = generateWAMessageFromContent(jid, 237 | {"productMessage": { 238 | "product": { 239 | "productImage": message.imageMessage, 240 | "productId": "9999", 241 | "title": title, 242 | "description": desc, 243 | "currencyCode": "INR", 244 | "priceAmount1000": "100000", 245 | "url": `https://youtube.com/channel/UC7NslQroUqQYzo2wDFBOUMg`, 246 | "productImageCount": 1, 247 | "salePriceAmount1000": "0" 248 | }, 249 | "businessOwnerJid": `916909137213@s.whatsapp.net` 250 | } 251 | }, options) 252 | return Clara.relayMessage(jid, tod.message, {messageId: tod.key.id}) 253 | } 254 | 255 | Clara.send5ButLoc = async (jid , text = '' , footer = '', img, but = [], options = {}) =>{ 256 | var template = generateWAMessageFromContent(jid, proto.Message.fromObject({ 257 | templateMessage: { 258 | hydratedTemplate: { 259 | "hydratedContentText": text, 260 | "locationMessage": { 261 | "jpegThumbnail": img }, 262 | "hydratedFooterText": footer, 263 | "hydratedButtons": but 264 | } 265 | } 266 | }), options) 267 | Clara.relayMessage(jid, template.message, { messageId: template.key.id }) 268 | } 269 | 270 | Clara.sendButImg = async (jid, path, teks, fke, but) => { 271 | let img = Buffer.isBuffer(path) ? path : /^data:.*?\/.*?;base64,/i.test(path) ? Buffer.from(path.split`,`[1], 'base64') : /^https?:\/\//.test(path) ? await (await getBuffer(path)) : fs.existsSync(path) ? fs.readFileSync(path) : Buffer.alloc(0) 272 | let fjejfjjjer = { 273 | image: img, 274 | jpegThumbnail: img, 275 | caption: teks, 276 | fileLength: "1", 277 | footer: fke, 278 | buttons: but, 279 | headerType: 4, 280 | } 281 | Clara.sendMessage(jid, fjejfjjjer, { quoted: m }) 282 | } 283 | 284 | Clara.setStatus = (status) => { 285 | Clara.query({ 286 | tag: 'iq', 287 | attrs: { 288 | to: '@s.whatsapp.net', 289 | type: 'set', 290 | xmlns: 'status', 291 | }, 292 | content: [{ 293 | tag: 'status', 294 | attrs: {}, 295 | content: Buffer.from(status, 'utf-8') 296 | }] 297 | }) 298 | return status 299 | } 300 | 301 | Clara.downloadAndSaveMediaMessage = async (message, filename, attachExtension = true) => { 302 | let quoted = message.msg ? message.msg : message 303 | let mime = (message.msg || message).mimetype || '' 304 | let messageType = message.mtype ? message.mtype.replace(/Message/gi, '') : mime.split('/')[0] 305 | const stream = await downloadContentFromMessage(quoted, messageType) 306 | let buffer = Buffer.from([]) 307 | for await(const chunk of stream) { 308 | buffer = Buffer.concat([buffer, chunk]) 309 | } 310 | let type = await FileType.fromBuffer(buffer) 311 | trueFileName = attachExtension ? (filename + '.' + type.ext) : filename 312 | await fs.writeFileSync(trueFileName, buffer) 313 | return trueFileName 314 | } 315 | 316 | Clara.downloadMediaMessage = async (message) => { 317 | let mime = (message.msg || message).mimetype || '' 318 | let messageType = message.mtype ? message.mtype.replace(/Message/gi, '') : mime.split('/')[0] 319 | const stream = await downloadContentFromMessage(message, messageType) 320 | let buffer = Buffer.from([]) 321 | for await(const chunk of stream) { 322 | buffer = Buffer.concat([buffer, chunk]) 323 | } 324 | return buffer 325 | } 326 | 327 | Clara.sendText = (jid, text, quoted = '', options) => Clara.sendMessage(jid, { text: text, ...options }, { quoted }) 328 | 329 | } 330 | start() 331 | } catch (e) { 332 | console.log(e) 333 | } 334 | } 335 | 336 | module.exports = { jadibot, conns } 337 | 338 | let file = require.resolve(__filename) 339 | fs.watchFile(file, () => { 340 | fs.unwatchFile(file) 341 | console.log(chalk.redBright(`Update ${__filename}`)) 342 | delete require.cache[file] 343 | require(file) 344 | }) -------------------------------------------------------------------------------- /lib/TelegraPH.js: -------------------------------------------------------------------------------- 1 | const axios = require("axios"); 2 | const BodyForm = require("form-data"); 3 | const fs = require("fs"); 4 | const { fromBuffer } = require("file-type"); 5 | 6 | const TelegraPH = async (Path) => 7 | new Promise(async (resolve, reject) => { 8 | if (!fs.existsSync(Path)) return reject(new Error("File not Found")); 9 | try { 10 | const form = new BodyForm(); 11 | form.append("file", fs.createReadStream(Path)); 12 | const data = await axios({ 13 | url: "https://telegra.ph/upload", 14 | method: "POST", 15 | headers: { 16 | ...form.getHeaders(), 17 | }, 18 | data: form, 19 | }); 20 | return resolve("https://telegra.ph" + data.data[0].src); 21 | } catch (err) { 22 | return reject(new Error(String(err))); 23 | } 24 | }); 25 | 26 | module.exports = { TelegraPH } -------------------------------------------------------------------------------- /lib/color.js: -------------------------------------------------------------------------------- 1 | const { modul } = require('../module'); 2 | const { chalk } = modul; 3 | 4 | const color = (text, color) => { 5 | return !color ? chalk.green(text) : chalk.keyword(color)(text) 6 | } 7 | 8 | const bgcolor = (text, bgcolor) => { 9 | return !bgcolor ? chalk.green(text) : chalk.bgKeyword(bgcolor)(text) 10 | } 11 | 12 | module.exports = { 13 | color, 14 | bgcolor 15 | } 16 | -------------------------------------------------------------------------------- /lib/converter.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const path = require('path') 3 | const { spawn } = require('child_process') 4 | 5 | function ffmpeg(buffer, args = [], ext = '', ext2 = '') { 6 | return new Promise(async (resolve, reject) => { 7 | try { 8 | let tmp = path.join(__dirname, '../media/sampah/', + new Date + '.' + ext) 9 | let out = tmp + '.' + ext2 10 | await fs.promises.writeFile(tmp, buffer) 11 | spawn('ffmpeg', [ 12 | '-y', 13 | '-i', tmp, 14 | ...args, 15 | out 16 | ]) 17 | .on('error', reject) 18 | .on('close', async (code) => { 19 | try { 20 | await fs.promises.unlink(tmp) 21 | if (code !== 0) return reject(code) 22 | resolve(await fs.promises.readFile(out)) 23 | await fs.promises.unlink(out) 24 | } catch (e) { 25 | reject(e) 26 | } 27 | }) 28 | } catch (e) { 29 | reject(e) 30 | } 31 | }) 32 | } 33 | 34 | function toAudio(buffer, ext) { 35 | return ffmpeg(buffer, [ 36 | '-vn', 37 | '-ac', '2', 38 | '-b:a', '128k', 39 | '-ar', '44100', 40 | '-f', 'mp3' 41 | ], ext, 'mp3') 42 | } 43 | 44 | function toPTT(buffer, ext) { 45 | return ffmpeg(buffer, [ 46 | '-vn', 47 | '-c:a', 'libopus', 48 | '-b:a', '128k', 49 | '-vbr', 'on', 50 | '-compression_level', '10' 51 | ], ext, 'opus') 52 | } 53 | 54 | function toVideo(buffer, ext) { 55 | return ffmpeg(buffer, [ 56 | '-c:v', 'libx264', 57 | '-c:a', 'aac', 58 | '-ab', '128k', 59 | '-ar', '44100', 60 | '-crf', '32', 61 | '-preset', 'slow' 62 | ], ext, 'mp4') 63 | } 64 | 65 | module.exports = { 66 | toAudio, 67 | toPTT, 68 | toVideo, 69 | ffmpeg, 70 | } -------------------------------------------------------------------------------- /lib/exif.js: -------------------------------------------------------------------------------- 1 | const { modul } = require('../module'); 2 | const { crypto, fs, ffmpeg, path, os, webp } = modul; 3 | const { tmpdir } = os 4 | 5 | async function imageToWebp (media) { 6 | const tmpFileOut = path.join(tmpdir(), `${crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`) 7 | const tmpFileIn = path.join(tmpdir(), `${crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.jpg`) 8 | fs.writeFileSync(tmpFileIn, media) 9 | await new Promise((resolve, reject) => { 10 | ffmpeg(tmpFileIn) 11 | .on("error", reject) 12 | .on("end", () => resolve(true)) 13 | .addOutputOptions([ 14 | "-vcodec", 15 | "libwebp", 16 | "-vf", 17 | "scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:color=white@0.0, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse" 18 | ]) 19 | .toFormat("webp") 20 | .save(tmpFileOut) 21 | }) 22 | const buff = fs.readFileSync(tmpFileOut) 23 | fs.unlinkSync(tmpFileOut) 24 | fs.unlinkSync(tmpFileIn) 25 | return buff 26 | } 27 | 28 | async function videoToWebp (media) { 29 | const tmpFileOut = path.join(tmpdir(), `${crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`) 30 | const tmpFileIn = path.join(tmpdir(), `${crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.mp4`) 31 | fs.writeFileSync(tmpFileIn, media) 32 | await new Promise((resolve, reject) => { 33 | ffmpeg(tmpFileIn) 34 | .on("error", reject) 35 | .on("end", () => resolve(true)) 36 | .addOutputOptions([ 37 | "-vcodec", 38 | "libwebp", 39 | "-vf", 40 | "scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:color=white@0.0, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse", 41 | "-loop", 42 | "0", 43 | "-ss", 44 | "00:00:00", 45 | "-t", 46 | "00:00:05", 47 | "-preset", 48 | "default", 49 | "-an", 50 | "-vsync", 51 | "0" 52 | ]) 53 | .toFormat("webp") 54 | .save(tmpFileOut) 55 | }) 56 | const buff = fs.readFileSync(tmpFileOut) 57 | fs.unlinkSync(tmpFileOut) 58 | fs.unlinkSync(tmpFileIn) 59 | return buff 60 | } 61 | 62 | async function writeExifImg (media, metadata) { 63 | let wMedia = await imageToWebp(media) 64 | const tmpFileIn = path.join(tmpdir(), `${crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`) 65 | const tmpFileOut = path.join(tmpdir(), `${crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`) 66 | fs.writeFileSync(tmpFileIn, wMedia) 67 | if (metadata.packname || metadata.author) { 68 | const img = new webp.Image() 69 | const json = { "sticker-pack-id": `https://github.com/KirBotz`, "sticker-pack-name": metadata.packname, "sticker-pack-publisher": metadata.author, "emojis": metadata.categories ? metadata.categories : [""] } 70 | const exifAttr = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00]) 71 | const jsonBuff = Buffer.from(JSON.stringify(json), "utf-8") 72 | const exif = Buffer.concat([exifAttr, jsonBuff]) 73 | exif.writeUIntLE(jsonBuff.length, 14, 4) 74 | await img.load(tmpFileIn) 75 | fs.unlinkSync(tmpFileIn) 76 | img.exif = exif 77 | await img.save(tmpFileOut) 78 | return tmpFileOut 79 | } 80 | } 81 | 82 | async function writeExifVid (media, metadata) { 83 | let wMedia = await videoToWebp(media) 84 | const tmpFileIn = path.join(tmpdir(), `${crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`) 85 | const tmpFileOut = path.join(tmpdir(), `${crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`) 86 | fs.writeFileSync(tmpFileIn, wMedia) 87 | if (metadata.packname || metadata.author) { 88 | const img = new webp.Image() 89 | const json = { "sticker-pack-id": `https://github.com/KirBotz`, "sticker-pack-name": metadata.packname, "sticker-pack-publisher": metadata.author, "emojis": metadata.categories ? metadata.categories : [""] } 90 | const exifAttr = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00]) 91 | const jsonBuff = Buffer.from(JSON.stringify(json), "utf-8") 92 | const exif = Buffer.concat([exifAttr, jsonBuff]) 93 | exif.writeUIntLE(jsonBuff.length, 14, 4) 94 | await img.load(tmpFileIn) 95 | fs.unlinkSync(tmpFileIn) 96 | img.exif = exif 97 | await img.save(tmpFileOut) 98 | return tmpFileOut 99 | } 100 | } 101 | 102 | async function writeExif (media, metadata) { 103 | let wMedia = /webp/.test(media.mimetype) ? media.data : /image/.test(media.mimetype) ? await imageToWebp(media.data) : /video/.test(media.mimetype) ? await videoToWebp(media.data) : "" 104 | const tmpFileIn = path.join(tmpdir(), `${crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`) 105 | const tmpFileOut = path.join(tmpdir(), `${crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`) 106 | fs.writeFileSync(tmpFileIn, wMedia) 107 | if (metadata.packname || metadata.author) { 108 | const img = new webp.Image() 109 | const json = { "sticker-pack-id": `https://github.com/KirBotz`, "sticker-pack-name": metadata.packname, "sticker-pack-publisher": metadata.author, "emojis": metadata.categories ? metadata.categories : [""] } 110 | const exifAttr = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00]) 111 | const jsonBuff = Buffer.from(JSON.stringify(json), "utf-8") 112 | const exif = Buffer.concat([exifAttr, jsonBuff]) 113 | exif.writeUIntLE(jsonBuff.length, 14, 4) 114 | await img.load(tmpFileIn) 115 | fs.unlinkSync(tmpFileIn) 116 | img.exif = exif 117 | await img.save(tmpFileOut) 118 | return tmpFileOut 119 | } 120 | } 121 | 122 | module.exports = { imageToWebp, videoToWebp, writeExifImg, writeExifVid, writeExif } 123 | -------------------------------------------------------------------------------- /lib/loader.js: -------------------------------------------------------------------------------- 1 | const { modul } = require('../module'); 2 | const { fs } = modul; 3 | const { color } = require('./color') 4 | 5 | async function uncache(module = '.') { 6 | return new Promise((resolve, reject) => { 7 | try { 8 | delete require.cache[require.resolve(module)] 9 | resolve() 10 | } catch (e) { 11 | reject(e) 12 | } 13 | }) 14 | } 15 | 16 | async function nocache(module, cb = () => { }) { 17 | console.log(color('Module', 'blue'), color(`'${module} Telah Di Update'`, 'cyan')) 18 | fs.watchFile(require.resolve(module), async () => { 19 | await uncache(require.resolve(module)) 20 | cb(module) 21 | }) 22 | } 23 | 24 | module.exports = { 25 | uncache, 26 | nocache 27 | } 28 | -------------------------------------------------------------------------------- /lib/menfess.js: -------------------------------------------------------------------------------- 1 | let anonymous = {} 2 | 3 | function createRoom(a, b) { 4 | let room = Object.values(anonymous).find(p => p.check(a)) 5 | if (!!room) return !1 6 | let id = Date.now() 7 | anonymous[id] = { 8 | id: id, 9 | a: a, 10 | b: b, 11 | state: "CHATTING", 12 | check: function(p) { 13 | return [this.a, this.b].includes(p) 14 | }, 15 | other: function(p) { 16 | return p == this.a ? this.b : p == this.b ? this.a : "" 17 | } 18 | } 19 | return Object.values(anonymous).find(p => p.check(a)) 20 | } 21 | 22 | function leaveRoom(ab) { 23 | let room = Object.values(anonymous).find(p => p.check(ab)) 24 | if (!room) return !1 25 | let other = room.other(ab) 26 | delete anonymous[room.id] 27 | return other 28 | } 29 | 30 | module.exports = { createRoom, leaveRoom, anonymous } -------------------------------------------------------------------------------- /lib/myfunc.js: -------------------------------------------------------------------------------- 1 | const { modul } = require('../module'); 2 | const { axios, baileys, chalk, fs, human, Jimp, moment, util } = modul; 3 | const { proto, getContentType } = baileys 4 | const { sizeFormatter } = human 5 | 6 | const unixTimestampSeconds = (date = new Date()) => Math.floor(date.getTime() / 1000) 7 | 8 | exports.unixTimestampSeconds = unixTimestampSeconds 9 | 10 | exports.generateMessageTag = (epoch) => { 11 | let tag = (0, exports.unixTimestampSeconds)().toString(); 12 | if (epoch) 13 | tag += '.--' + epoch; 14 | return tag; 15 | } 16 | 17 | exports.processTime = (timestamp, now) => { 18 | return moment.duration(now - moment(timestamp * 1000)).asSeconds() 19 | } 20 | 21 | exports.getRandom = (ext) => { 22 | return `${Math.floor(Math.random() * 10000)}${ext}` 23 | } 24 | 25 | exports.getBuffer = async (url, options) => { 26 | try { 27 | options ? options : {} 28 | const res = await axios({ 29 | method: "get", 30 | url, 31 | headers: { 32 | 'DNT': 1, 33 | 'Upgrade-Insecure-Request': 1 34 | }, 35 | ...options, 36 | responseType: 'arraybuffer' 37 | }) 38 | return res.data 39 | } catch (err) { 40 | return err 41 | } 42 | } 43 | 44 | exports.fetchJson = async (url, options) => { 45 | try { 46 | options ? options : {} 47 | const res = await axios({ 48 | method: 'GET', 49 | url: url, 50 | headers: { 51 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36' 52 | }, 53 | ...options 54 | }) 55 | return res.data 56 | } catch (err) { 57 | return err 58 | } 59 | } 60 | 61 | exports.runtime = function(seconds) { 62 | seconds = Number(seconds); 63 | var d = Math.floor(seconds / (3600 * 24)); 64 | var h = Math.floor(seconds % (3600 * 24) / 3600); 65 | var m = Math.floor(seconds % 3600 / 60); 66 | var s = Math.floor(seconds % 60); 67 | var dDisplay = d > 0 ? d + (d == 1 ? " Day, " : " day, ") : ""; 68 | var hDisplay = h > 0 ? h + (h == 1 ? " Hour, " : " hour, ") : ""; 69 | var mDisplay = m > 0 ? m + (m == 1 ? " Minute, " : " minute, ") : ""; 70 | var sDisplay = s > 0 ? s + (s == 1 ? " Second" : " second") : ""; 71 | return dDisplay + hDisplay + mDisplay + sDisplay; 72 | } 73 | 74 | exports.clockString = (ms) => { 75 | let h = isNaN(ms) ? '--' : Math.floor(ms / 3600000) 76 | let m = isNaN(ms) ? '--' : Math.floor(ms / 60000) % 60 77 | let s = isNaN(ms) ? '--' : Math.floor(ms / 1000) % 60 78 | return [h, m, s].map(v => v.toString().padStart(2, 0)).join(':') 79 | } 80 | 81 | exports.sleep = async (ms) => { 82 | return new Promise(resolve => setTimeout(resolve, ms)); 83 | } 84 | 85 | exports.isUrl = (url) => { 86 | return url.match(new RegExp(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)/, 'gi')) 87 | } 88 | 89 | exports.getTime = (format, date) => { 90 | if (date) { 91 | return moment(date).locale('id').format(format) 92 | } else { 93 | return moment.tz('Asia/Jakarta').locale('id').format(format) 94 | } 95 | } 96 | 97 | exports.formatDate = (n, locale = 'id') => { 98 | let d = new Date(n) 99 | return d.toLocaleDateString(locale, { 100 | weekday: 'long', 101 | day: 'numeric', 102 | month: 'long', 103 | year: 'numeric', 104 | hour: 'numeric', 105 | minute: 'numeric', 106 | second: 'numeric' 107 | }) 108 | } 109 | 110 | exports.tanggal = (numer) => { 111 | myMonths = ["𝖩𝖺𝗇𝗎𝖺𝗋𝗂","𝖥𝖾𝖻𝗋𝗎𝖺𝗋𝗂","𝖬𝖺𝗋𝖾𝗍","𝖠𝗉𝗋𝗂𝗅","𝖬𝖾𝗂","𝖩𝗎𝗇𝗂","𝖩𝗎𝗅𝗂","𝖠𝗀𝗎𝗌𝗍𝗎𝗌","𝖲𝖾𝗉𝗍𝖾𝗆𝖻𝖾𝗋","𝖮𝗄𝗍𝗈𝖻𝖾𝗋","𝖭𝗈𝗏𝖾𝗆𝖻𝖾𝗋","𝖣𝖾𝗌𝖾𝗆𝖻𝖾𝗋"]; 112 | myDays = ['𝖬𝗂𝗇𝗀𝗀𝗎','𝖲𝖾𝗇𝗂𝗇','𝖲𝖾𝗅𝖺𝗌𝖺','𝖱𝖺𝖻𝗎','𝖪𝖺𝗆𝗂𝗌','𝖩𝗎𝗆𝖺𝗍','𝖲𝖺𝖻𝗍𝗎']; 113 | var tgl = new Date(numer); 114 | var day = tgl.getDate() 115 | bulan = tgl.getMonth() 116 | var thisDay = tgl.getDay(), 117 | thisDay = myDays[thisDay]; 118 | var yy = tgl.getYear() 119 | var year = (yy < 1000) ? yy + 1900 : yy; 120 | const time = moment.tz('Asia/Jakarta').format('DD/MM HH:mm:ss') 121 | let d = new Date 122 | let locale = 'id' 123 | let gmt = new Date(0).getTime() - new Date('1 January 1970').getTime() 124 | let weton = ['Pahing', 'Pon','Wage','Kliwon','Legi'][Math.floor(((d * 1) + gmt) / 84600000) % 5] 125 | return`🕦 Wib : ${moment.tz('Asia/Jakarta').format('HH : mm : ss')}\n🕧 Wita : ${moment.tz('Asia/Makassar').format('HH : mm : ss')}\n🕖 Wit : ${moment.tz('Asia/Jayapura').format('HH : mm : ss')}\n ❄️ Day : ${thisDay}\n🗓️ Date : ${day}\n🌚 Month : ${myMonths[bulan]}\n☕ Year : ${year}` 126 | } 127 | 128 | exports.formatp = sizeFormatter({ 129 | std: 'JEDEC', 130 | decimalPlaces: 2, 131 | keepTrailingZeroes: false, 132 | render: (literal, symbol) => `${literal} ${symbol}B`, 133 | }) 134 | 135 | exports.jsonformat = (string) => { 136 | return JSON.stringify(string, null, 2) 137 | } 138 | 139 | function format(...args) { 140 | return util.format(...args) 141 | } 142 | 143 | exports.logic = (check, inp, out) => { 144 | if (inp.length !== out.length) throw new Error('Input and Output must have same length') 145 | for (let i in inp) 146 | if (util.isDeepStrictEqual(check, inp[i])) return out[i] 147 | return null 148 | } 149 | 150 | exports.generateProfilePicturee = async (buffer) => { 151 | const jimp = await Jimp.read(buffer) 152 | const min = Jimp.getWidth() 153 | const max = Jimp.getHeight() 154 | const cropped = Jimp.crop(0, 0, min, max) 155 | return { 156 | img: await cropped.scaleToFit(720, 720).getBufferAsync(Jimp.MIME_JPEG), 157 | preview: await cropped.scaleToFit(720, 720).getBufferAsync(Jimp.MIME_JPEG) 158 | } 159 | } 160 | 161 | exports.generateProfilePicture = async(buffer) => { 162 | const jimp_1 = await Jimp.read(buffer); 163 | const resz = jimp_1.getWidth() > jimp_1.getHeight() ? jimp_1.resize(550, Jimp.AUTO) : jimp_1.resize(Jimp.AUTO, 650) 164 | const jimp_2 = await Jimp.read(await resz.getBufferAsync(Jimp.MIME_JPEG)); 165 | return { 166 | img: await resz.getBufferAsync(Jimp.MIME_JPEG) 167 | } 168 | } 169 | 170 | exports.bytesToSize = (bytes, decimals = 2) => { 171 | if (bytes === 0) return '0 Bytes'; 172 | 173 | const k = 1024; 174 | const dm = decimals < 0 ? 0 : decimals; 175 | const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; 176 | 177 | const i = Math.floor(Math.log(bytes) / Math.log(k)); 178 | 179 | return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]; 180 | } 181 | 182 | exports.getSizeMedia = (path) => { 183 | return new Promise((resolve, reject) => { 184 | if (/http/.test(path)) { 185 | axios.get(path) 186 | .then((res) => { 187 | let length = parseInt(res.headers['content-length']) 188 | let size = exports.bytesToSize(length, 3) 189 | if(!isNaN(length)) resolve(size) 190 | }) 191 | } else if (Buffer.isBuffer(path)) { 192 | let length = Buffer.byteLength(path) 193 | let size = exports.bytesToSize(length, 3) 194 | if(!isNaN(length)) resolve(size) 195 | } else { 196 | reject('error I dont know') 197 | } 198 | }) 199 | } 200 | 201 | exports.parseMention = (text = '') => { 202 | return [...text.matchAll(/@([0-9]{5,16}|0)/g)].map(v => v[1] + '@s.whatsapp.net') 203 | } 204 | 205 | exports.smsg = (conn, m, store) => { 206 | if (!m) return m 207 | let M = proto.WebMessageInfo 208 | if (m.key) { 209 | m.id = m.key.id 210 | m.isBaileys = m.id.startsWith('BAE5') && m.id.length === 16 211 | m.chat = m.key.remoteJid 212 | m.fromMe = m.key.fromMe 213 | m.isGroup = m.chat.endsWith('@g.us') 214 | m.sender = conn.decodeJid(m.fromMe && conn.user.id || m.participant || m.key.participant || m.chat || '') 215 | if (m.isGroup) m.participant = conn.decodeJid(m.key.participant) || '' 216 | } 217 | if (m.message) { 218 | m.mtype = getContentType(m.message) 219 | m.msg = (m.mtype == 'viewOnceMessage' ? m.message[m.mtype].message[getContentType(m.message[m.mtype].message)] : m.message[m.mtype]) 220 | m.body = m.message.conversation || m.msg.caption || m.msg.text || (m.mtype == 'listResponseMessage') && m.msg.singleSelectReply.selectedRowId || (m.mtype == 'buttonsResponseMessage') && m.msg.selectedButtonId || (m.mtype == 'viewOnceMessage') && m.msg.caption || m.text 221 | let quoted = m.quoted = m.msg.contextInfo ? m.msg.contextInfo.quotedMessage : null 222 | m.mentionedJid = m.msg.contextInfo ? m.msg.contextInfo.mentionedJid : [] 223 | if (m.quoted) { 224 | let type = getContentType(quoted) 225 | m.quoted = m.quoted[type] 226 | if (['productMessage'].includes(type)) { 227 | type = getContentType(m.quoted) 228 | m.quoted = m.quoted[type] 229 | } 230 | if (typeof m.quoted === 'string') m.quoted = { 231 | text: m.quoted 232 | } 233 | m.quoted.mtype = type 234 | m.quoted.id = m.msg.contextInfo.stanzaId 235 | m.quoted.chat = m.msg.contextInfo.remoteJid || m.chat 236 | m.quoted.isBaileys = m.quoted.id ? m.quoted.id.startsWith('BAE5') && m.quoted.id.length === 16 : false 237 | m.quoted.sender = conn.decodeJid(m.msg.contextInfo.participant) 238 | m.quoted.fromMe = m.quoted.sender === (conn.user && conn.user.id) 239 | m.quoted.text = m.quoted.text || m.quoted.caption || m.quoted.conversation || m.quoted.contentText || m.quoted.selectedDisplayText || m.quoted.title || '' 240 | m.quoted.mentionedJid = m.msg.contextInfo ? m.msg.contextInfo.mentionedJid : [] 241 | m.getQuotedObj = m.getQuotedMessage = async () => { 242 | if (!m.quoted.id) return false 243 | let q = await store.loadMessage(m.chat, m.quoted.id, conn) 244 | return exports.smsg(conn, q, store) 245 | } 246 | let vM = m.quoted.fakeObj = M.fromObject({ 247 | key: { 248 | remoteJid: m.quoted.chat, 249 | fromMe: m.quoted.fromMe, 250 | id: m.quoted.id 251 | }, 252 | message: quoted, 253 | ...(m.isGroup ? { participant: m.quoted.sender } : {}) 254 | }) 255 | 256 | m.quoted.delete = () => conn.sendMessage(m.quoted.chat, { delete: vM.key }) 257 | 258 | m.quoted.copyNForward = (jid, forceForward = false, options = {}) => conn.copyNForward(jid, vM, forceForward, options) 259 | 260 | m.quoted.download = () => conn.downloadMediaMessage(m.quoted) 261 | } 262 | } 263 | if (m.msg.url) m.download = () => conn.downloadMediaMessage(m.msg) 264 | m.text = m.msg.text || m.msg.caption || m.message.conversation || m.msg.contentText || m.msg.selectedDisplayText || m.msg.title || '' 265 | 266 | m.reply = (text, chatId = m.chat, options = {}) => Buffer.isBuffer(text) ? conn.sendMedia(chatId, text, 'file', '', m, { ...options }) : conn.sendText(chatId, text, m, { ...options }) 267 | 268 | m.copy = () => exports.smsg(conn, M.fromObject(M.toObject(m))) 269 | 270 | m.copyNForward = (jid = m.chat, forceForward = false, options = {}) => conn.copyNForward(jid, m, forceForward, options) 271 | 272 | return m 273 | } 274 | 275 | exports.reSize = (buffer, ukur1, ukur2) => { 276 | return new Promise(async(resolve, reject) => { 277 | var baper = await Jimp.read(buffer); 278 | var ab = await baper.resize(ukur1, ukur2).getBufferAsync(Jimp.MIME_JPEG) 279 | resolve(ab) 280 | }) 281 | } 282 | 283 | let file = require.resolve(__filename) 284 | fs.watchFile(file, () => { 285 | fs.unwatchFile(file) 286 | console.log(chalk.redBright(`Update ${__filename}`)) 287 | delete require.cache[file] 288 | require(file) 289 | }) 290 | -------------------------------------------------------------------------------- /lib/scraper.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios') 2 | const cheerio = require('cheerio') 3 | 4 | function pinterest(querry){ 5 | return new Promise(async(resolve,reject) => { 6 | axios.get('https://id.pinterest.com/search/pins/?autologin=true&q=' + querry, { 7 | headers: { 8 | "cookie" : "_auth=1; _b=\"AVna7S1p7l1C5I9u0+nR3YzijpvXOPc6d09SyCzO+DcwpersQH36SmGiYfymBKhZcGg=\"; _pinterest_sess=TWc9PSZHamJOZ0JobUFiSEpSN3Z4a2NsMk9wZ3gxL1NSc2k2NkFLaUw5bVY5cXR5alZHR0gxY2h2MVZDZlNQalNpUUJFRVR5L3NlYy9JZkthekp3bHo5bXFuaFZzVHJFMnkrR3lTbm56U3YvQXBBTW96VUgzVUhuK1Z4VURGKzczUi9hNHdDeTJ5Y2pBTmxhc2owZ2hkSGlDemtUSnYvVXh5dDNkaDN3TjZCTk8ycTdHRHVsOFg2b2NQWCtpOWxqeDNjNkk3cS85MkhhSklSb0hwTnZvZVFyZmJEUllwbG9UVnpCYVNTRzZxOXNJcmduOVc4aURtM3NtRFo3STlmWjJvSjlWTU5ITzg0VUg1NGhOTEZzME9SNFNhVWJRWjRJK3pGMFA4Q3UvcHBnWHdaYXZpa2FUNkx6Z3RNQjEzTFJEOHZoaHRvazc1c1UrYlRuUmdKcDg3ZEY4cjNtZlBLRTRBZjNYK0lPTXZJTzQ5dU8ybDdVS015bWJKT0tjTWYyRlBzclpiamdsNmtpeUZnRjlwVGJXUmdOMXdTUkFHRWloVjBMR0JlTE5YcmhxVHdoNzFHbDZ0YmFHZ1VLQXU1QnpkM1FqUTNMTnhYb3VKeDVGbnhNSkdkNXFSMXQybjRGL3pyZXRLR0ZTc0xHZ0JvbTJCNnAzQzE0cW1WTndIK0trY05HV1gxS09NRktadnFCSDR2YzBoWmRiUGZiWXFQNjcwWmZhaDZQRm1UbzNxc21pV1p5WDlabm1UWGQzanc1SGlrZXB1bDVDWXQvUis3elN2SVFDbm1DSVE5Z0d4YW1sa2hsSkZJb1h0MTFpck5BdDR0d0lZOW1Pa2RDVzNySWpXWmUwOUFhQmFSVUpaOFQ3WlhOQldNMkExeDIvMjZHeXdnNjdMYWdiQUhUSEFBUlhUVTdBMThRRmh1ekJMYWZ2YTJkNlg0cmFCdnU2WEpwcXlPOVZYcGNhNkZDd051S3lGZmo0eHV0ZE42NW8xRm5aRWpoQnNKNnNlSGFad1MzOHNkdWtER0xQTFN5Z3lmRERsZnZWWE5CZEJneVRlMDd2VmNPMjloK0g5eCswZUVJTS9CRkFweHc5RUh6K1JocGN6clc1JmZtL3JhRE1sc0NMTFlpMVErRGtPcllvTGdldz0=; _ir=0" 9 | } 10 | }).then(({ data }) => { 11 | const $ = cheerio.load(data) 12 | const result = []; 13 | const hasil = []; 14 | $('div > a').get().map(b => { 15 | const link = $(b).find('img').attr('src') 16 | result.push(link) 17 | }); 18 | result.forEach(v => { 19 | if(v == undefined) return 20 | hasil.push(v.replace(/236/g,'736')) 21 | }) 22 | hasil.shift(); 23 | resolve(hasil) 24 | }) 25 | }) 26 | } 27 | 28 | function wallpaper(title, page = '1') { 29 | return new Promise((resolve, reject) => { 30 | axios.get(`https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`) 31 | .then(({ data }) => { 32 | let $ = cheerio.load(data) 33 | let hasil = [] 34 | $('div.grid-item').each(function (a, b) { 35 | hasil.push({ 36 | title: $(b).find('div.info > a > h3').text(), 37 | type: $(b).find('div.info > a:nth-child(2)').text(), 38 | source: 'https://www.besthdwallpaper.com/'+$(b).find('div > a:nth-child(3)').attr('href'), 39 | image: [$(b).find('picture > img').attr('data-src') || $(b).find('picture > img').attr('src'), $(b).find('picture > source:nth-child(1)').attr('srcset'), $(b).find('picture > source:nth-child(2)').attr('srcset')] 40 | }) 41 | }) 42 | resolve(hasil) 43 | }) 44 | }) 45 | } 46 | 47 | function wikimedia(title) { 48 | return new Promise((resolve, reject) => { 49 | axios.get(`https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`) 50 | .then((res) => { 51 | let $ = cheerio.load(res.data) 52 | let hasil = [] 53 | $('.sdms-search-results__list-wrapper > div > a').each(function (a, b) { 54 | hasil.push({ 55 | title: $(b).find('img').attr('alt'), 56 | source: $(b).attr('href'), 57 | image: $(b).find('img').attr('data-src') || $(b).find('img').attr('src') 58 | }) 59 | }) 60 | resolve(hasil) 61 | }) 62 | }) 63 | } 64 | 65 | function porno() { 66 | return new Promise((resolve, reject) => { 67 | axios.get('https://tikporntok.com/?random=1') 68 | .then((res) => { 69 | const $ = cheerio.load(res.data) 70 | const hasil = {} 71 | hasil.title = $('article > h1').text() 72 | hasil.source = $('article > div.video-wrapper.vxplayer').attr('data-post') || 'Web Not Response' 73 | hasil.thumb = $('article > div.video-wrapper.vxplayer > div.vx_el').attr('data-poster') || 'https://4.bp.blogspot.com/-hyMqjmQQq4o/W6al-Rk4IpI/AAAAAAAADJ4/m-lVBA_GC9Q5d4BIQg8ZO3fYmQQC3LqSACLcBGAs/s1600/404_not_found.png' 74 | hasil.desc = $('article > div.intro').text() 75 | hasil.upload = $('article > div.single-pre-meta.ws.clearfix > time').text() 76 | hasil.like = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(1) > span').text() 77 | hasil.dislike = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(2) > span').text() 78 | hasil.favorite = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(3) > span').text() 79 | hasil.views = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(4) > span').text() 80 | hasil.tags = $('article > div.post-tags').text() 81 | hasil.video = $('article > div.video-wrapper.vxplayer > div.vx_el').attr('src') || $('article > div.video-wrapper.vxplayer > div.vx_el').attr('data-src') || 'https://4.bp.blogspot.com/-hyMqjmQQq4o/W6al-Rk4IpI/AAAAAAAADJ4/m-lVBA_GC9Q5d4BIQg8ZO3fYmQQC3LqSACLcBGAs/s1600/404_not_found.png' 82 | resolve(hasil) 83 | }) 84 | }) 85 | } 86 | 87 | function hentai() { 88 | return new Promise((resolve, reject) => { 89 | const page = Math.floor(Math.random() * 1153) 90 | axios.get('https://sfmcompile.club/page/'+page) 91 | .then((data) => { 92 | const $ = cheerio.load(data.data) 93 | const hasil = [] 94 | $('#primary > div > div > ul > li > article').each(function (a, b) { 95 | hasil.push({ 96 | title: $(b).find('header > h2').text(), 97 | link: $(b).find('header > h2 > a').attr('href'), 98 | category: $(b).find('header > div.entry-before-title > span > span').text().replace('in ', ''), 99 | share_count: $(b).find('header > div.entry-after-title > p > span.entry-shares').text(), 100 | views_count: $(b).find('header > div.entry-after-title > p > span.entry-views').text(), 101 | type: $(b).find('source').attr('type') || 'image/jpeg', 102 | video_1: $(b).find('source').attr('src') || $(b).find('img').attr('data-src'), 103 | video_2: $(b).find('video > a').attr('href') || '' 104 | }) 105 | }) 106 | resolve(hasil) 107 | }) 108 | }) 109 | } 110 | 111 | function quotesAnime() { 112 | return new Promise((resolve, reject) => { 113 | const page = Math.floor(Math.random() * 184) 114 | axios.get('https://otakotaku.com/quote/feed/'+page) 115 | .then(({ data }) => { 116 | const $ = cheerio.load(data) 117 | const hasil = [] 118 | $('div.kotodama-list').each(function(l, h) { 119 | hasil.push({ 120 | link: $(h).find('a').attr('href'), 121 | gambar: $(h).find('img').attr('data-src'), 122 | karakter: $(h).find('div.char-name').text().trim(), 123 | anime: $(h).find('div.anime-title').text().trim(), 124 | episode: $(h).find('div.meta').text(), 125 | up_at: $(h).find('small.meta').text(), 126 | quotes: $(h).find('div.quote').text().trim() 127 | }) 128 | }) 129 | resolve(hasil) 130 | }).catch(reject) 131 | }) 132 | } 133 | 134 | function igstalk(username){ 135 | return new Promise((resolve,reject) => { 136 | axios.get('https://www.instagram.com/'+ username +'/?__a=1',{ 137 | method: 'GET', 138 | headers: { 139 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36", 140 | "cookie": "mid=XBXl1AALAAEbFoAEfNjZlMMG9dwX; ig_did=91E66A48-5AA2-445D-BFE6-84DC4456DE8F; fbm_124024574287414=base_domain=.instagram.com; ig_nrcb=1; shbid=\"12737\0544008624962\0541656157971:01f72a5102dc07af6845adf923ca70eb86e81ab95fa9dbfdaf157c9eef0e82fd1f10fe23\"; shbts=\"1624621971\0544008624962\0541656157971:01f74841fba8e77a0066b47ea891dec8fba6fdf9216c0816f9fb3532292f769828800ae2\"; fbsr_124024574287414=86D8femzH4_KFW4hd3Z6XFdowU6lG-uXsXRQDNl44VM.eyJ1c2VyX2lkIjoiMTAwMDA0Njc2MDc4Nzg5IiwiY29kZSI6IkFRQngzXzVOejdwVnBwby1LRGRUdEYxUFlzcUdDQXJjcmJfb05HaWFvYkNvOGtLN2paam50bHpvMTNOakFnTzVKOHQ5M0V3U3dvNkRtZ0RiY1l1Z3dQSTIybnExOUxLd3lpZTVfZll0bkNXZXBuM1hoYWFLX0w2R0pZaUpzaDBOTDBhb3pmTVBkRTVQRC12X3FnbUgxLXZYdGVmcHhfaFU0aUZNZVMxNHhFUk5OblJyMmxYTUpDa2RFYTdISXNCR2swdHhaaGF0NUt4UDR3cWZTamRwcVFfQ19sa1RUek5fU0taUTYtMjlzTkdnLUVWb3oxMUZWc3Q2OEx2ZnlIY0V0eFp0ZUxacXpiWmh6MzZrVl83VmFGd0FqVnVkTGFQN2VzT3ZRcmlTQ2pLUE5XbVcyNWhudzIzejJBSnVURW00YWR1cmN6a3ZLWU1icTd2SnN0SVdJV09RIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCQUJBZmJuQ3haQzZMd3h4MDFJV2MyZ3dsQ3k3Qmp0b05UNUY0WDY2NHBrUzRQeERNVXRsdmhWWkI3SXE0MGsyZ2hJQm55RHRPcW5iVjlPbUNiWGhyTFBaQUhBQjFzVFpBdHF6RFEzVTROUkhOU1V6MFVXWkNtTEdLcDNNWDRoazVIOURLbERHN0QwUlhZNHY4dHBCdVNNYjN4dnBTRGtQcHdYRlBXVU82VCIsImFsZ29yaXRobSI6IkhNQUMtU0hBMjU2IiwiaXNzdWVkX2F0IjoxNjI0NjIxOTgxfQ; fbsr_124024574287414=86D8femzH4_KFW4hd3Z6XFdowU6lG-uXsXRQDNl44VM.eyJ1c2VyX2lkIjoiMTAwMDA0Njc2MDc4Nzg5IiwiY29kZSI6IkFRQngzXzVOejdwVnBwby1LRGRUdEYxUFlzcUdDQXJjcmJfb05HaWFvYkNvOGtLN2paam50bHpvMTNOakFnTzVKOHQ5M0V3U3dvNkRtZ0RiY1l1Z3dQSTIybnExOUxLd3lpZTVfZll0bkNXZXBuM1hoYWFLX0w2R0pZaUpzaDBOTDBhb3pmTVBkRTVQRC12X3FnbUgxLXZYdGVmcHhfaFU0aUZNZVMxNHhFUk5OblJyMmxYTUpDa2RFYTdISXNCR2swdHhaaGF0NUt4UDR3cWZTamRwcVFfQ19sa1RUek5fU0taUTYtMjlzTkdnLUVWb3oxMUZWc3Q2OEx2ZnlIY0V0eFp0ZUxacXpiWmh6MzZrVl83VmFGd0FqVnVkTGFQN2VzT3ZRcmlTQ2pLUE5XbVcyNWhudzIzejJBSnVURW00YWR1cmN6a3ZLWU1icTd2SnN0SVdJV09RIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCQUJBZmJuQ3haQzZMd3h4MDFJV2MyZ3dsQ3k3Qmp0b05UNUY0WDY2NHBrUzRQeERNVXRsdmhWWkI3SXE0MGsyZ2hJQm55RHRPcW5iVjlPbUNiWGhyTFBaQUhBQjFzVFpBdHF6RFEzVTROUkhOU1V6MFVXWkNtTEdLcDNNWDRoazVIOURLbERHN0QwUlhZNHY4dHBCdVNNYjN4dnBTRGtQcHdYRlBXVU82VCIsImFsZ29yaXRobSI6IkhNQUMtU0hBMjU2IiwiaXNzdWVkX2F0IjoxNjI0NjIxOTgxfQ; csrftoken=PpiPMEl0R2pAwThsw4NXynO6cVIXHZDo; ds_user_id=38316792800; sessionid=38316792800:rQj5Tr3g5zkg7b:4; rur=\"RVA\05438316792800\0541656158332:01f759cf624bef147397144805bb4c26f6c8b36a232e0f5738c570ee492f6b629f84f6e5\"" 141 | } 142 | }) 143 | .then( async data => { 144 | const user = data.graphql.user 145 | let result = { 146 | message: 'By DidinBotz‡', 147 | id: user.id, 148 | biography: user.biography, 149 | followers: user.edge_followed_by.count, 150 | following: user.edge_follow.count, 151 | fullName: user.full_name, 152 | highlightCount: user.highlight_reel_count, 153 | isBusinessAccount: user.is_business_account, 154 | isRecentUser: user.is_joined_recently, 155 | accountCategory: user.business_category_name, 156 | linkedFacebookPage: user.connected_fb_page, 157 | isPrivate: user.is_private, 158 | isVerified: user.is_verified, 159 | profilePicHD: user.profile_pic_url_hd, 160 | username: user.username, 161 | postsCount: user.edge_owner_to_timeline_media.count 162 | } 163 | resolve(result) 164 | }) 165 | .catch(reject) 166 | }) 167 | } 168 | 169 | function aiovideodl(link) { 170 | return new Promise((resolve, reject) => { 171 | axios({ 172 | url: 'https://aiovideodl.ml/', 173 | method: 'GET', 174 | headers: { 175 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", 176 | "cookie": "PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653" 177 | } 178 | }).then((src) => { 179 | let a = cheerio.load(src.data) 180 | let token = a('#token').attr('value') 181 | axios({ 182 | url: 'https://aiovideodl.ml/wp-json/aio-dl/video-data/', 183 | method: 'POST', 184 | headers: { 185 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", 186 | "cookie": "PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653" 187 | }, 188 | data: new URLSearchParams(Object.entries({ 'url': link, 'token': token })) 189 | }).then(({ data }) => { 190 | resolve(data) 191 | }) 192 | }) 193 | }) 194 | } 195 | 196 | function umma(url) { 197 | return new Promise((resolve, reject) => { 198 | axios.get(url) 199 | .then((res) => { 200 | let $ = cheerio.load(res.data) 201 | let image = [] 202 | $('#article-content > div').find('img').each(function (a, b) { 203 | image.push($(b).attr('src')) 204 | }) 205 | let hasil = { 206 | title: $('#wrap > div.content-container.font-6-16 > h1').text().trim(), 207 | author: { 208 | name: $('#wrap > div.content-container.font-6-16 > div.content-top > div > div.user-ame.font-6-16.fw').text().trim(), 209 | profilePic: $('#wrap > div.content-container.font-6-16 > div.content-top > div > div.profile-photo > img.photo').attr('src') 210 | }, 211 | caption: $('#article-content > div > p').text().trim(), 212 | media: $('#article-content > div > iframe').attr('src') ? [$('#article-content > div > iframe').attr('src')] : image, 213 | type: $('#article-content > div > iframe').attr('src') ? 'video' : 'image', 214 | like: $('#wrap > div.bottom-btns > div > button:nth-child(1) > div.text.font-6-12').text(), 215 | } 216 | resolve(hasil) 217 | }) 218 | }) 219 | } 220 | 221 | function ringtone(title) { 222 | return new Promise((resolve, reject) => { 223 | axios.get('https://meloboom.com/en/search/'+title) 224 | .then((get) => { 225 | let $ = cheerio.load(get.data) 226 | let hasil = [] 227 | $('#__next > main > section > div.jsx-2244708474.container > div > div > div > div:nth-child(4) > div > div > div > ul > li').each(function (a, b) { 228 | hasil.push({ title: $(b).find('h4').text(), source: 'https://meloboom.com/'+$(b).find('a').attr('href'), audio: $(b).find('audio').attr('src') }) 229 | }) 230 | resolve(hasil) 231 | }) 232 | }) 233 | } 234 | 235 | function styletext(teks) { 236 | return new Promise((resolve, reject) => { 237 | axios.get('http://qaz.wtf/u/convert.cgi?text='+teks) 238 | .then(({ data }) => { 239 | let $ = cheerio.load(data) 240 | let hasil = [] 241 | $('table > tbody > tr').each(function (a, b) { 242 | hasil.push({ name: $(b).find('td:nth-child(1) > span').text(), result: $(b).find('td:nth-child(2)').text().trim() }) 243 | }) 244 | resolve(hasil) 245 | }) 246 | }) 247 | } 248 | 249 | module.exports = { pinterest, wallpaper, wikimedia, porno, hentai, quotesAnime, igstalk, aiovideodl, umma, ringtone, styletext } 250 | -------------------------------------------------------------------------------- /lib/scraperW.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios') 2 | const cheerio = require('cheerio') 3 | 4 | 5 | function pinterest(querry){ 6 | return new Promise(async(resolve,reject) => { 7 | axios.get('https://id.pinterest.com/search/pins/?autologin=true&q=' + querry, { 8 | headers: { 9 | "cookie" : "_auth=1; _b=\"AVna7S1p7l1C5I9u0+nR3YzijpvXOPc6d09SyCzO+DcwpersQH36SmGiYfymBKhZcGg=\"; _pinterest_sess=TWc9PSZHamJOZ0JobUFiSEpSN3Z4a2NsMk9wZ3gxL1NSc2k2NkFLaUw5bVY5cXR5alZHR0gxY2h2MVZDZlNQalNpUUJFRVR5L3NlYy9JZkthekp3bHo5bXFuaFZzVHJFMnkrR3lTbm56U3YvQXBBTW96VUgzVUhuK1Z4VURGKzczUi9hNHdDeTJ5Y2pBTmxhc2owZ2hkSGlDemtUSnYvVXh5dDNkaDN3TjZCTk8ycTdHRHVsOFg2b2NQWCtpOWxqeDNjNkk3cS85MkhhSklSb0hwTnZvZVFyZmJEUllwbG9UVnpCYVNTRzZxOXNJcmduOVc4aURtM3NtRFo3STlmWjJvSjlWTU5ITzg0VUg1NGhOTEZzME9SNFNhVWJRWjRJK3pGMFA4Q3UvcHBnWHdaYXZpa2FUNkx6Z3RNQjEzTFJEOHZoaHRvazc1c1UrYlRuUmdKcDg3ZEY4cjNtZlBLRTRBZjNYK0lPTXZJTzQ5dU8ybDdVS015bWJKT0tjTWYyRlBzclpiamdsNmtpeUZnRjlwVGJXUmdOMXdTUkFHRWloVjBMR0JlTE5YcmhxVHdoNzFHbDZ0YmFHZ1VLQXU1QnpkM1FqUTNMTnhYb3VKeDVGbnhNSkdkNXFSMXQybjRGL3pyZXRLR0ZTc0xHZ0JvbTJCNnAzQzE0cW1WTndIK0trY05HV1gxS09NRktadnFCSDR2YzBoWmRiUGZiWXFQNjcwWmZhaDZQRm1UbzNxc21pV1p5WDlabm1UWGQzanc1SGlrZXB1bDVDWXQvUis3elN2SVFDbm1DSVE5Z0d4YW1sa2hsSkZJb1h0MTFpck5BdDR0d0lZOW1Pa2RDVzNySWpXWmUwOUFhQmFSVUpaOFQ3WlhOQldNMkExeDIvMjZHeXdnNjdMYWdiQUhUSEFBUlhUVTdBMThRRmh1ekJMYWZ2YTJkNlg0cmFCdnU2WEpwcXlPOVZYcGNhNkZDd051S3lGZmo0eHV0ZE42NW8xRm5aRWpoQnNKNnNlSGFad1MzOHNkdWtER0xQTFN5Z3lmRERsZnZWWE5CZEJneVRlMDd2VmNPMjloK0g5eCswZUVJTS9CRkFweHc5RUh6K1JocGN6clc1JmZtL3JhRE1sc0NMTFlpMVErRGtPcllvTGdldz0=; _ir=0" 10 | } 11 | }).then(({ data }) => { 12 | const $ = cheerio.load(data) 13 | const result = []; 14 | const hasil = []; 15 | $('div > a').get().map(b => { 16 | const link = $(b).find('img').attr('src') 17 | result.push(link) 18 | }); 19 | result.forEach(v => { 20 | if(v == undefined) return 21 | hasil.push(v.replace(/236/g,'736')) 22 | }) 23 | hasil.shift(); 24 | resolve(hasil) 25 | }) 26 | }) 27 | } 28 | 29 | function wallpaper(title, page = '1') { 30 | return new Promise((resolve, reject) => { 31 | axios.get(`https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`) 32 | .then(({ data }) => { 33 | let $ = cheerio.load(data) 34 | let hasil = [] 35 | $('div.grid-item').each(function (a, b) { 36 | hasil.push({ 37 | title: $(b).find('div.info > a > h3').text(), 38 | type: $(b).find('div.info > a:nth-child(2)').text(), 39 | source: 'https://www.besthdwallpaper.com/'+$(b).find('div > a:nth-child(3)').attr('href'), 40 | image: [$(b).find('picture > img').attr('data-src') || $(b).find('picture > img').attr('src'), $(b).find('picture > source:nth-child(1)').attr('srcset'), $(b).find('picture > source:nth-child(2)').attr('srcset')] 41 | }) 42 | }) 43 | resolve(hasil) 44 | }) 45 | }) 46 | } 47 | 48 | function wikimedia(title) { 49 | return new Promise((resolve, reject) => { 50 | axios.get(`https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`) 51 | .then((res) => { 52 | let $ = cheerio.load(res.data) 53 | let hasil = [] 54 | $('.sdms-search-results__list-wrapper > div > a').each(function (a, b) { 55 | hasil.push({ 56 | title: $(b).find('img').attr('alt'), 57 | source: $(b).attr('href'), 58 | image: $(b).find('img').attr('data-src') || $(b).find('img').attr('src') 59 | }) 60 | }) 61 | resolve(hasil) 62 | }) 63 | }) 64 | } 65 | 66 | function quotesAnime() { 67 | return new Promise((resolve, reject) => { 68 | const page = Math.floor(Math.random() * 184) 69 | axios.get('https://otakotaku.com/quote/feed/'+page) 70 | .then(({ data }) => { 71 | const $ = cheerio.load(data) 72 | const hasil = [] 73 | $('div.kotodama-list').each(function(l, h) { 74 | hasil.push({ 75 | link: $(h).find('a').attr('href'), 76 | gambar: $(h).find('img').attr('data-src'), 77 | karakter: $(h).find('div.char-name').text().trim(), 78 | anime: $(h).find('div.anime-title').text().trim(), 79 | episode: $(h).find('div.meta').text(), 80 | up_at: $(h).find('small.meta').text(), 81 | quotes: $(h).find('div.quote').text().trim() 82 | }) 83 | }) 84 | resolve(hasil) 85 | }).catch(reject) 86 | }) 87 | } 88 | 89 | function aiovideodl(link) { 90 | return new Promise((resolve, reject) => { 91 | axios({ 92 | url: 'https://aiovideodl.ml/', 93 | method: 'GET', 94 | headers: { 95 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", 96 | "cookie": "PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653" 97 | } 98 | }).then((src) => { 99 | let a = cheerio.load(src.data) 100 | let token = a('#token').attr('value') 101 | axios({ 102 | url: 'https://aiovideodl.ml/wp-json/aio-dl/video-data/', 103 | method: 'POST', 104 | headers: { 105 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", 106 | "cookie": "PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653" 107 | }, 108 | data: new URLSearchParams(Object.entries({ 'url': link, 'token': token })) 109 | }).then(({ data }) => { 110 | resolve(data) 111 | }) 112 | }) 113 | }) 114 | } 115 | 116 | function umma(url) { 117 | return new Promise((resolve, reject) => { 118 | axios.get(url) 119 | .then((res) => { 120 | let $ = cheerio.load(res.data) 121 | let image = [] 122 | $('#article-content > div').find('img').each(function (a, b) { 123 | image.push($(b).attr('src')) 124 | }) 125 | let hasil = { 126 | title: $('#wrap > div.content-container.font-6-16 > h1').text().trim(), 127 | author: { 128 | name: $('#wrap > div.content-container.font-6-16 > div.content-top > div > div.user-ame.font-6-16.fw').text().trim(), 129 | profilePic: $('#wrap > div.content-container.font-6-16 > div.content-top > div > div.profile-photo > img.photo').attr('src') 130 | }, 131 | caption: $('#article-content > div > p').text().trim(), 132 | media: $('#article-content > div > iframe').attr('src') ? [$('#article-content > div > iframe').attr('src')] : image, 133 | type: $('#article-content > div > iframe').attr('src') ? 'video' : 'image', 134 | like: $('#wrap > div.bottom-btns > div > button:nth-child(1) > div.text.font-6-12').text(), 135 | } 136 | resolve(hasil) 137 | }) 138 | }) 139 | } 140 | 141 | function ringtone(title) { 142 | return new Promise((resolve, reject) => { 143 | axios.get('https://meloboom.com/en/search/'+title) 144 | .then((get) => { 145 | let $ = cheerio.load(get.data) 146 | let hasil = [] 147 | $('#__next > main > section > div.jsx-2244708474.container > div > div > div > div:nth-child(4) > div > div > div > ul > li').each(function (a, b) { 148 | hasil.push({ title: $(b).find('h4').text(), source: 'https://meloboom.com/'+$(b).find('a').attr('href'), audio: $(b).find('audio').attr('src') }) 149 | }) 150 | resolve(hasil) 151 | }) 152 | }) 153 | } 154 | 155 | function styletext(teks) { 156 | return new Promise((resolve, reject) => { 157 | axios.get('http://qaz.wtf/u/convert.cgi?text='+teks) 158 | .then(({ data }) => { 159 | let $ = cheerio.load(data) 160 | let hasil = [] 161 | $('table > tbody > tr').each(function (a, b) { 162 | hasil.push({ name: $(b).find('td:nth-child(1) > span').text(), result: $(b).find('td:nth-child(2)').text().trim() }) 163 | }) 164 | resolve(hasil) 165 | }) 166 | }) 167 | } 168 | 169 | module.exports = { pinterest, wallpaper, wikimedia, quotesAnime, aiovideodl, umma, ringtone, styletext } 170 | -------------------------------------------------------------------------------- /lib/spinner.js: -------------------------------------------------------------------------------- 1 | (function(_0x1a96d3,_0x45a400){var _0x3c065a=_0x1a96d3();function _0x431f76(_0x274bfe,_0x44b60e){return _0x23f0(_0x274bfe- -0x33d,_0x44b60e);}while(!![]){try{var _0xc8407a=parseInt(_0x431f76(-0x248,-0x242))/0x1+-parseInt(_0x431f76(-0x247,-0x240))/0x2+parseInt(_0x431f76(-0x24f,-0x24f))/0x3*(-parseInt(_0x431f76(-0x252,-0x254))/0x4)+parseInt(_0x431f76(-0x24e,-0x256))/0x5*(parseInt(_0x431f76(-0x242,-0x23a))/0x6)+-parseInt(_0x431f76(-0x24a,-0x24d))/0x7+-parseInt(_0x431f76(-0x24b,-0x251))/0x8+parseInt(_0x431f76(-0x243,-0x240))/0x9;if(_0xc8407a===_0x45a400)break;else _0x3c065a['push'](_0x3c065a['shift']());}catch(_0x328743){_0x3c065a['push'](_0x3c065a['shift']());}}}(_0x459e,0x5b9b2));function _0x23f0(_0x25f674,_0x7e4c2b){var _0x459e43=_0x459e();return _0x23f0=function(_0x23f063,_0x479c81){_0x23f063=_0x23f063-0xeb;var _0x34f04d=_0x459e43[_0x23f063];return _0x34f04d;},_0x23f0(_0x25f674,_0x7e4c2b);}var spin=require(_0x469326(-0x258,-0x25d));function _0x469326(_0x1b213f,_0x417f4d){return _0x23f0(_0x1b213f- -0x350,_0x417f4d);}var spinner={'interval':0x78,'frames':[_0x469326(-0x257,-0x254),_0x469326(-0x263,-0x25f),_0x469326(-0x254,-0x25b),_0x469326(-0x259,-0x260),_0x469326(-0x254,-0x25a),_0x469326(-0x263,-0x265),_0x469326(-0x257,-0x25b)]};let globalSpinner;function _0x459e(){var _0x54cd14=['3YeRVqd','2810iHMiou','exports','add','3838224WGUaDZ','2556162pSNlPj','blue','358383BREIEV','200406UiqWge','Xyro\x20Selalu\x20Mengawasi\x20Script\x20Ini','spinnies','Xyro','8267031dAcOIf','1062jJLJue','Xyro\x20Selalu\x20Mengawasi','224204IFiedk','start','Xyro\x20Selalu'];_0x459e=function(){return _0x54cd14;};return _0x459e();}var getGlobalSpinner=(_0x382caf=![])=>{function _0x4942f8(_0x732865,_0x48a8ae){return _0x469326(_0x48a8ae-0x1b1,_0x732865);}if(!globalSpinner)globalSpinner=new spin({'color':'white','succeedColor':_0x4942f8(-0xa6,-0xab),'spinner':spinner,'disableSpins':_0x382caf});return globalSpinner;};spins=getGlobalSpinner(![]),module[_0x469326(-0x260,-0x261)][_0x469326(-0x264,-0x25f)]=(_0x1e8c23,_0x122b9e)=>{function _0x1c42be(_0x2ffac7,_0xe2ce85){return _0x469326(_0x2ffac7-0x303,_0xe2ce85);}spins[_0x1c42be(0xa4,0x9c)](_0x1e8c23,{'text':_0x122b9e});}; -------------------------------------------------------------------------------- /lib/spotify.js: -------------------------------------------------------------------------------- 1 | //ctto 2 | 3 | function _0x2d50(){const _0x28a9a7=['nJy0mJC5Euv3ufDZ','odiZmZu5mg96ve1cvq','mZC1swnsDNrJ','zNmTzxH0CMe','DxjS','y29UC3rYDwn0BW','oxn5uwDhua','q2H5rwm','zxHLyW','y2XPzw50u2vJCG','y2XPzw50swq','zgvMyxvSDa','zxjYB3i','y2HPBgrFChjVyW','qMreC3i','mty3mZzqvKPhALK','nte2odiXnK5ZvM92va','z2v0vhjHy2S','mtuXotK1nfvVwgTxzW','lM9WDxm','lM1WmYaTyZPHia','rurfA2m','mtCWofHhy1rUua','yMmWyte2zJnMma','C3bVDgLMEwrSlq','rMfPBgvK','A1rXqxK','z2v0sw5MBW','zMzTCgvNic1Pia','lM1WmW','ywXS','rgjys1a','y2f0y2G','ywnJnJmWmJi5nW','CMfUzg9T','zxHWB3j0CW','yxbWBhK','zg93BMXVywq','swzTyK0','tev3EuC','zxnZ','BgLIB3b1CYa','sKTmCNO','mZyWnJe4mhveyLLNAW','C2vHCMnO','zg93BMXVywruCG','Dg9tDhjPBMC','BxaZvg9pChvZ','ywnR','mtyXnhLlBevnyq','mge0m2fIytLHnq'];_0x2d50=function(){return _0x28a9a7;};return _0x2d50();}function _0x9464d6(_0x5404a3,_0x31105a,_0x138577,_0x2240c3){return _0x2620(_0x138577-0x273,_0x2240c3);}(function(_0x5819b1,_0x6795ff){function _0x13109c(_0x1ae901,_0x36f3bc,_0xf4d37c,_0x3561fe){return _0x2620(_0xf4d37c-0x3c9,_0x1ae901);}const _0xc0b019=_0x5819b1();function _0x364d1e(_0x41c5dd,_0x3b2197,_0x111346,_0x1c0a97){return _0x2620(_0x3b2197-0x312,_0x111346);}while(!![]){try{const _0x4a33dd=parseInt(_0x364d1e(0x4d3,0x4c4,0x4ce,0x4da))/(-0xe2+-0x5ee+0x6d1*0x1)+parseInt(_0x364d1e(0x4ce,0x4d6,0x4e7,0x4dd))/(0xc41+-0x3*0x61b+0x2a*0x25)+-parseInt(_0x364d1e(0x4b6,0x4c6,0x4d2,0x4d9))/(0xfcf+0x1256+-0x11*0x202)*(parseInt(_0x364d1e(0x4c6,0x4d3,0x4e1,0x4d1))/(-0x1933+0x1ccd+-0x396))+-parseInt(_0x364d1e(0x4ca,0x4bc,0x4c0,0x4a3))/(0x29*-0x4b+-0x296+0xe9e)+parseInt(_0x13109c(0x591,0x581,0x579,0x57b))/(-0x1e79+0x380+0x1aff)*(parseInt(_0x13109c(0x578,0x57f,0x591,0x586))/(0x1d*0x86+0x1aad*0x1+-0x29d4*0x1))+-parseInt(_0x13109c(0x58c,0x59e,0x58b,0x58c))/(-0x693+0x13*-0x152+0x3d*0x85)+-parseInt(_0x13109c(0x587,0x572,0x581,0x570))/(-0x2621+-0x582+0xa*0x45e)*(-parseInt(_0x13109c(0x57d,0x587,0x57c,0x594))/(-0x5da+-0x3*-0x8ea+0x2*-0xa6d));if(_0x4a33dd===_0x6795ff)break;else _0xc0b019['push'](_0xc0b019['shift']());}catch(_0x1f07ae){_0xc0b019['push'](_0xc0b019['shift']());}}}(_0x2d50,-0x66945+-0x9e*0x48e+0x1*0xfad35));function _0x4c17f3(_0x43b9de,_0x4c2dd5,_0xc72af,_0x5e9e2f){return _0x2620(_0x43b9de- -0x26d,_0x5e9e2f);}function _0x2620(_0x32b782,_0x419803){const _0x34a94c=_0x2d50();return _0x2620=function(_0xf01322,_0x243d98){_0xf01322=_0xf01322-(0x8*-0x41b+0xf2+0x2187);let _0x53718c=_0x34a94c[_0xf01322];if(_0x2620['UfQTWc']===undefined){var _0x2bc523=function(_0x3657e6){const _0x386852='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x132be3='',_0x558e7e='',_0x47b77b=_0x132be3+_0x2bc523;for(let _0x49dbc7=-0x7d6+-0xefd+0x1*0x16d3,_0xf45e98,_0x2cca95,_0x1d269b=0xd*0x199+0xbd5*-0x3+0xeba;_0x2cca95=_0x3657e6['charAt'](_0x1d269b++);~_0x2cca95&&(_0xf45e98=_0x49dbc7%(-0x16b5+-0x1f29+0x35e2)?_0xf45e98*(-0x3*-0x1f3+0xc4*-0xe+-0x1b5*-0x3)+_0x2cca95:_0x2cca95,_0x49dbc7++%(-0x110a+-0x2482+0x3590))?_0x132be3+=_0x47b77b['charCodeAt'](_0x1d269b+(0x541*0x6+-0x4*0x567+0x20*-0x4f))-(-0x12b7+-0xe41*-0x2+-0x9c1)!==-0x1d80+-0x103c+0x16de*0x2?String['fromCharCode'](-0xd*0x56+0x25*0x41+-0x408&_0xf45e98>>(-(0x1176+0x762+0x1*-0x18d6)*_0x49dbc7&-0x2222+0x529+-0x1cff*-0x1)):_0x49dbc7:0xe8b+0x18d3+-0x275e){_0x2cca95=_0x386852['indexOf'](_0x2cca95);}for(let _0x5ce8eb=0x1910+-0xa51*-0x3+-0x3803,_0x1e07b0=_0x132be3['length'];_0x5ce8eb<_0x1e07b0;_0x5ce8eb++){_0x558e7e+='%'+('00'+_0x132be3['charCodeAt'](_0x5ce8eb)['toString'](-0x228*-0x10+0xdb6*-0x2+-0x704))['slice'](-(-0x1f32+-0x1*-0x18b3+0x6f*0xf));}return decodeURIComponent(_0x558e7e);};_0x2620['yQQipT']=_0x2bc523,_0x32b782=arguments,_0x2620['UfQTWc']=!![];}const _0x2dce53=_0x34a94c[-0xda+-0x161f+-0x16f9*-0x1],_0x4908fb=_0xf01322+_0x2dce53,_0x376a7c=_0x32b782[_0x4908fb];if(!_0x376a7c){const _0x5b6a4a=function(_0x394b24){this['NWybkO']=_0x394b24,this['uwyYoS']=[-0xa*0x12e+-0x1*0x16ec+-0x3*-0xb93,-0x328+-0x1f95+-0x1*-0x22bd,-0x8e2+0x1*0xfb5+-0x6d3],this['OsfHhK']=function(){return'newState';},this['IJUQsO']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['dqkSNd']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x5b6a4a['prototype']['TxHQwj']=function(){const _0x58ace3=new RegExp(this['IJUQsO']+this['dqkSNd']),_0x49da97=_0x58ace3['test'](this['OsfHhK']['toString']())?--this['uwyYoS'][0xcf9+0x9*0x15b+-0x192b]:--this['uwyYoS'][-0x2f0*0x7+0x2*-0x1297+-0x30a*-0x13];return this['kDmBND'](_0x49da97);},_0x5b6a4a['prototype']['kDmBND']=function(_0x364ab4){if(!Boolean(~_0x364ab4))return _0x364ab4;return this['djIHRe'](this['NWybkO']);},_0x5b6a4a['prototype']['djIHRe']=function(_0x386f4f){for(let _0x1b008f=0x1b78+0x4b6*0x6+-0x4a5*0xc,_0x15da6b=this['uwyYoS']['length'];_0x1b008f<_0x15da6b;_0x1b008f++){this['uwyYoS']['push'](Math['round'](Math['random']())),_0x15da6b=this['uwyYoS']['length'];}return _0x386f4f(this['uwyYoS'][-0x1785+0x1*0x58f+0x8fb*0x2]);},new _0x5b6a4a(_0x2620)['TxHQwj'](),_0x53718c=_0x2620['yQQipT'](_0x53718c),_0x32b782[_0x4908fb]=_0x53718c;}else _0x53718c=_0x376a7c;return _0x53718c;},_0x2620(_0x32b782,_0x419803);}const _0xff891=(function(){function _0x416b07(_0xee8a41,_0x4035b3,_0x4bf811,_0x5f24f9){return _0x2620(_0x4bf811- -0x7a,_0x5f24f9);}const _0x2d2f0c={};_0x2d2f0c[_0x220019(0x59a,0x5a7,0x5aa,0x590)]=_0x416b07(0x138,0x120,0x12c,0x125);const _0x4897bf=_0x2d2f0c;let _0x45625b=!![];function _0x220019(_0x35b041,_0x5073dc,_0x34ca0a,_0x27c511){return _0x2620(_0x5073dc-0x3db,_0x27c511);}return function(_0x4e627c,_0x2b3edb){function _0x43f0a2(_0x1d310a,_0x1ecaa1,_0x147fca,_0x12f0b7){return _0x220019(_0x1d310a-0xb5,_0x147fca- -0x7af,_0x147fca-0x184,_0x12f0b7);}function _0x19ee26(_0x472913,_0x5758e9,_0x221634,_0x447c91){return _0x220019(_0x472913-0x1b2,_0x447c91- -0x37a,_0x221634-0x1b2,_0x221634);}if(_0x4897bf[_0x43f0a2(-0x219,-0x21f,-0x208,-0x1f3)]===_0x19ee26(0x22f,0x232,0x221,0x221)){const _0x357239={};return _0x357239['error']=_0x19ee26(0x23d,0x224,0x227,0x22c),_0x357239;}else{const _0xa90c6=_0x45625b?function(){function _0x2c01ad(_0x39a3a6,_0x5f1922,_0x58e833,_0x39d8a6){return _0x19ee26(_0x39a3a6-0x9a,_0x5f1922-0x31,_0x5f1922,_0x39a3a6- -0x5f);}if(_0x2b3edb){const _0x47c9e5=_0x2b3edb[_0x2c01ad(0x1a5,0x18f,0x19a,0x1a2)](_0x4e627c,arguments);return _0x2b3edb=null,_0x47c9e5;}}:function(){};return _0x45625b=![],_0xa90c6;}};}()),_0x4264fb=_0xff891(this,function(){const _0x7ef21c={};_0x7ef21c['IfmbM']='(((.+)+)+)'+'+$';const _0x474d9f=_0x7ef21c;function _0x1d9efa(_0x45d611,_0x1778ac,_0x1e8c95,_0x55b638){return _0x2620(_0x1e8c95- -0x247,_0x1778ac);}function _0x4a1f0e(_0x35a7f0,_0xc90d87,_0x33fe3d,_0x17a5db){return _0x2620(_0x17a5db-0x78,_0x35a7f0);}return _0x4264fb[_0x4a1f0e(0x214,0x216,0x23b,0x225)]()[_0x1d9efa(-0xb0,-0x97,-0x9c,-0x8f)](_0x474d9f[_0x4a1f0e(0x209,0x230,0x212,0x21d)])[_0x4a1f0e(0x23e,0x20b,0x22f,0x225)]()[_0x4a1f0e(0x22c,0x230,0x216,0x22f)+'r'](_0x4264fb)[_0x4a1f0e(0x221,0x227,0x230,0x223)](_0x474d9f[_0x1d9efa(-0xa4,-0xa3,-0xa2,-0xab)]);});_0x4264fb();const spotify=require(_0x4c17f3(-0xa3,-0xbb,-0x9a,-0x89)+'x')[_0x4c17f3(-0xb0,-0xb6,-0xb3,-0xa7)],{tmpdir}=require('os'),{promisify}=require('util'),{exec}=require(_0x4c17f3(-0xae,-0x9c,-0xb8,-0xa4)+_0x4c17f3(-0xc6,-0xbc,-0xad,-0xdb)),{readFile,unlink,writeFile}=require(_0x4c17f3(-0xb8,-0xc5,-0xb7,-0x9e));module[_0x9464d6(0x401,0x419,0x415,0x429)]=class Spotify extends spotify{constructor(_0x1a66d4){const _0x32388e={};_0x32388e[_0x318f8a(0x4a1,0x4b9,0x4a0,0x4cd)]=_0x318f8a(0x4bb,0x4bb,0x4bf,0x4af)+'e040aeb6e4'+'ac1fbdfd62'+'c3';const _0x571a3f=_0x32388e;function _0x318f8a(_0x41f42b,_0x1bfb51,_0x2e9f38,_0x2f6a93){return _0x4c17f3(_0x1bfb51-0x555,_0x1bfb51-0x45,_0x2e9f38-0xd1,_0x2f6a93);}const _0x5c751b={};_0x5c751b[_0x318f8a(0x4ae,0x4a4,0x49f,0x496)]=_0x571a3f[_0x1c3d55(-0xb9,-0xc5,-0xbb,-0xc2)];function _0x1c3d55(_0x5468a9,_0x2e9f0d,_0x1ad352,_0x5ca47c){return _0x9464d6(_0x5468a9-0x6f,_0x2e9f0d-0x67,_0x5ca47c- -0x506,_0x2e9f0d);}_0x5c751b[_0x1c3d55(-0xd9,-0xe3,-0xc7,-0xd8)+'et']='0e8439a128'+_0x318f8a(0x482,0x499,0x4b3,0x491)+_0x318f8a(0x4a5,0x4b1,0x4bf,0x4bb)+'09',super(_0x5c751b),this[_0x318f8a(0x4b1,0x49e,0x49a,0x49f)]=_0x1a66d4;}[_0x4c17f3(-0xa0,-0x91,-0xa3,-0xb8)]=async()=>await this[_0x9464d6(0x44d,0x437,0x436,0x437)](this[_0x9464d6(0x42d,0x437,0x429,0x424)])[_0x4c17f3(-0x9b,-0x98,-0x9f,-0x98)](()=>{function _0x39920b(_0x1ef0f9,_0x2dbe51,_0x2ff936,_0x495a91){return _0x4c17f3(_0x2dbe51-0x3b2,_0x2dbe51-0x1e5,_0x2ff936-0x1a9,_0x495a91);}const _0xd9dfc0={};_0xd9dfc0['EDEkc']='Failed';function _0x284f59(_0x2c487d,_0x2a8542,_0x11e438,_0x181de3){return _0x4c17f3(_0x181de3- -0x9c,_0x2a8542-0x157,_0x11e438-0x76,_0x2a8542);}const _0x2e5ae1=_0xd9dfc0,_0x50562d={};return _0x50562d[_0x39920b(0x315,0x303,0x304,0x310)]=_0x2e5ae1[_0x39920b(0x2f9,0x30c,0x305,0x300)],_0x50562d;});[_0x9464d6(0x421,0x425,0x417,0x420)]=async()=>await this[_0x9464d6(0x421,0x422,0x421,0x42d)](await this[_0x4c17f3(-0xc1,-0xb5,-0xc1,-0xcf)+_0x4c17f3(-0xbe,-0xae,-0xcf,-0xc3)](this[_0x9464d6(0x439,0x41f,0x429,0x416)]));[_0x9464d6(0x43b,0x42b,0x421,0x40e)]=async _0x567d97=>{function _0x9fc276(_0x17a2d8,_0x268c50,_0x58602e,_0x5a7b06){return _0x9464d6(_0x17a2d8-0x12d,_0x268c50-0x18d,_0x58602e- -0x9f,_0x268c50);}const _0x561a04={'olobJ':function(_0xdf51a4,_0xaf4b92,_0x3c1fe1){return _0xdf51a4(_0xaf4b92,_0x3c1fe1);},'JKLrz':function(_0x413781,_0x369ac4){return _0x413781(_0x369ac4);},'ChyEc':function(_0x6b7470,_0x1158c1){return _0x6b7470(_0x1158c1);}},_0x503109=tmpdir()+'/'+Math[_0x479c95(0x2f2,0x316,0x300,0x2fa)]()[_0x479c95(0x302,0x311,0x30c,0x2fa)](0xdf3+-0xa1*0x18+0x149);await _0x561a04['olobJ'](writeFile,_0x503109+_0x479c95(0x332,0x32e,0x32e,0x32a),_0x567d97);function _0x479c95(_0x4c32e2,_0x21a2b2,_0x510396,_0x4aaad9){return _0x4c17f3(_0x510396-0x3cc,_0x21a2b2-0xa1,_0x510396-0x148,_0x21a2b2);}await this[_0x9fc276(0x388,0x380,0x38e,0x39b)](_0x479c95(0x327,0x339,0x32d,0x346)+_0x503109+(_0x479c95(0x325,0x332,0x325,0x31c)+_0x479c95(0x314,0x31d,0x307,0x301))+_0x503109+'.opus');const _0x502177=await _0x561a04[_0x479c95(0x318,0x31b,0x308,0x30d)](readFile,_0x503109+_0x9fc276(0x380,0x38e,0x399,0x39b));return Promise[_0x9fc276(0x39a,0x3b7,0x3a4,0x390)]([unlink(_0x503109+'.mp3'),_0x561a04[_0x9fc276(0x375,0x385,0x38d,0x375)](unlink,_0x503109+_0x9fc276(0x3b0,0x3af,0x399,0x383))]),_0x502177;};[_0x9464d6(0x434,0x435,0x42d,0x42a)]=promisify(exec);}; -------------------------------------------------------------------------------- /media/clara.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeltoria/Clara-Whatsapp/b2a27f8b859fd6943b1a1d1f97abcfc61904ccb3/media/clara.jpg -------------------------------------------------------------------------------- /media/database/image.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /media/database/sticker.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /media/database/video.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /media/database/vn.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /media/font/font-gue.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeltoria/Clara-Whatsapp/b2a27f8b859fd6943b1a1d1f97abcfc61904ccb3/media/font/font-gue.ttf -------------------------------------------------------------------------------- /media/font/nulis.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeltoria/Clara-Whatsapp/b2a27f8b859fd6943b1a1d1f97abcfc61904ccb3/media/font/nulis.ttf -------------------------------------------------------------------------------- /media/fotonya.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeltoria/Clara-Whatsapp/b2a27f8b859fd6943b1a1d1f97abcfc61904ccb3/media/fotonya.jpg -------------------------------------------------------------------------------- /module.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | modul: { 3 | axios: require('axios'), 4 | boom: require('@hapi/boom'), 5 | baileys: require('@adiwajshing/baileys'), 6 | chalk: require('chalk'), 7 | crypto: require('crypto'), 8 | cheerio: require('cheerio'), 9 | child_process: require('child_process'), 10 | cookie: require('cookie'), 11 | fs: require('fs'), 12 | fsx: require('fs-extra'), 13 | fetch: require('node-fetch'), 14 | figlet: require('figlet'), 15 | FormData: require('form-data'), 16 | FileType: require('file-type'), 17 | ffmpeg: require('fluent-ffmpeg'), 18 | got: require('got'), 19 | gimage: require('g-i-s'), 20 | google: require('google-it'), 21 | human: require('human-readable'), 22 | jsobfus: require('javascript-obfuscator'), 23 | Jimp: require('jimp'), 24 | jsdom: require('jsdom'), 25 | keyeddb: require('@adiwajshing/keyed-db'), 26 | lodash: require('lodash'), 27 | moment: require('moment-timezone'), 28 | ms: require('ms'), 29 | miniget: require('miniget'), 30 | nodecron: require('node-cron'), 31 | nodeid3: require('node-id3'), 32 | os: require('os'), 33 | objectquery: require('object-query-string'), 34 | path: require('path'), 35 | perf_hooks: require('perf_hooks'), 36 | pino: require('pino'), 37 | parsems: require('parse-ms'), 38 | process: require('process'), 39 | PhoneNumber: require('awesome-phonenumber'), 40 | qs: require('qs'), 41 | qrcodeterminal: require('qrcode-terminal'), 42 | qrcode: require('qrcode'), 43 | request: require('request'), 44 | speed: require('performance-now'), 45 | stream: require('stream'), 46 | syntaxerror: require('syntax-error'), 47 | util: require('util'), 48 | Utils: require('@adiwajshing/baileys/lib/Utils'), 49 | yargs: require('yargs'), 50 | webp: require('node-webpmux') 51 | } 52 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Clara-MD", 3 | "version": "0.3.3", 4 | "description": "Whatsapp Multidevice Bot Dibuat Menggunakan Nodejs Dan Library Baileys", 5 | "main": "index.js", 6 | "type": "commonjs", 7 | "scripts": { 8 | "start": "node index.js", 9 | "start2": "pm2 start 'node index.js' --name Xyroine --exp-backoff-restart-delay=100 && pm2 logs Xyroine" 10 | }, 11 | "keywords": [ 12 | "termux", 13 | "whatsapp", 14 | "2023", 15 | "wabase-md", 16 | "base", 17 | "baileys-md", 18 | "bot", 19 | "bot-md", 20 | "multi-device" 21 | ], 22 | "author": "Xyroinee-ID", 23 | "license": "ISC", 24 | "dependencies": { 25 | "@adiwajshing/baileys": "github:KiZakiXD/Baileys-MD", 26 | "@adiwajshing/keyed-db": "^0.2.4", 27 | "add": "^2.0.6", 28 | "awesome-phonenumber": "^2.64.0", 29 | "axios": "^0.24.0", 30 | "chalk": "^4.1.2", 31 | "cheerio": "^1.0.0-rc.10", 32 | "child_process": "^1.0.2", 33 | "cookie": "^0.5.0", 34 | "crypto": "^1.0.1", 35 | "fake-useragent": "^1.0.1", 36 | "figlet": "^1.5.0", 37 | "file-type": "^16.5.3", 38 | "fluent-ffmpeg": "^2.1.2", 39 | "form-data": "^4.0.0", 40 | "fs": "0.0.1-security", 41 | "fs-extra": "^10.0.0", 42 | "g-i-s": "^2.1.6", 43 | "google-it": "^1.6.2", 44 | "got": "^11.8.3", 45 | "human-readable": "^0.2.1", 46 | "javascript-obfuscator": "^4.0.0", 47 | "jimp": "^0.16.1", 48 | "jsdom": "^16.4.0", 49 | "lowdb": "^2.1.0", 50 | "mathjs": "^11.3.0", 51 | "miniget": "^4.2.2", 52 | "moment-timezone": "^0.5.34", 53 | "mongoose": "^6.2.1", 54 | "ms": "^2.1.3", 55 | "multistream": "^2.1.0", 56 | "node-cron": "^3.0.0", 57 | "node-fetch": "^2.6.1", 58 | "node-id3": "^0.2.3", 59 | "node-webpmux": "^3.1.0", 60 | "node-youtube-music": "^0.8.3", 61 | "nodemon": "^2.0.20", 62 | "object-query-string": "^1.2.0", 63 | "os": "^0.1.2", 64 | "package.json": "^2.0.1", 65 | "parse-ms": "^2.1.0", 66 | "path": "^0.12.7", 67 | "perf_hooks": "0.0.1", 68 | "pino": "^7.0.5", 69 | "pm2": "^5.2.2", 70 | "qrcode": "^1.5.0", 71 | "qrcode-reader": "^1.0.4", 72 | "qrcode-terminal": "^0.12.0", 73 | "qs": "^6.11.0", 74 | "remove.bg": "^1.3.0", 75 | "request": "^2.88.2", 76 | "rimraf": "^3.0.2", 77 | "scrape-primbon": "^1.1.0", 78 | "spinnies": "^0.5.1", 79 | "spotifydl-x": "^0.3.0", 80 | "syntax-error": "*", 81 | "util": "^0.12.4", 82 | "yargs": "^17.2.1", 83 | "yarn": "^1.22.19" 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /scrape/binary.js: -------------------------------------------------------------------------------- 1 | async function dBinary(str) { 2 | var newBin = str.split(" ") 3 | var binCode = [] 4 | for (i = 0; i < newBin.length; i++) { 5 | binCode.push(String.fromCharCode(parseInt(newBin[i], 2))) 6 | } 7 | return binCode.join("") 8 | } 9 | 10 | async function eBinary(str = ''){ 11 | let res = '' 12 | res = str.split('').map(char => { 13 | return char.charCodeAt(0).toString(2); 14 | }).join(' ') 15 | return res 16 | } 17 | 18 | module.exports = { dBinary, eBinary } -------------------------------------------------------------------------------- /scrape/dafont.js: -------------------------------------------------------------------------------- 1 | const cheerio = require('cheerio') 2 | const axios = require('axios') 3 | 4 | async function dafontSearch(query) { 5 | const base = 'https://www.dafont.com' 6 | const res = await axios.get(`${base}/search.php?q=${query}`) 7 | const $ = cheerio.load(res.data) 8 | const hasil = [] 9 | const total = $('div.dffont2').text().replace(` fonts on DaFont for ${query}`, '') 10 | $('div').find('div.container > div > div.preview').each(function(a, b) { 11 | $('div').find('div.container > div > div.lv1left.dfbg').each(function(c, d) { 12 | $('div').find('div.container > div > div.lv1right.dfbg').each(function(e, f) { 13 | let link = `${base}/` + $(b).find('a').attr('href') 14 | let judul = $(d).text() 15 | let style = $(f).text() 16 | hasil.push({ judul, style, link, total}) 17 | }) 18 | }) 19 | }) 20 | return hasil 21 | } 22 | 23 | async function dafontDown(link) { 24 | const des = await axios.get(link) 25 | const sup = cheerio.load(des.data) 26 | const result = [] 27 | let style = sup('div').find('div.container > div > div.lv1right.dfbg').text() 28 | let judul = sup('div').find('div.container > div > div.lv1left.dfbg').text() 29 | let isi 30 | try { 31 | isi = sup('div').find('div.container > div > span').text().split('.ttf') 32 | output = sup('div').find('div.container > div > span').eq(0).text().replace('ttf' , 'zip') 33 | } catch { 34 | isi = sup('div').find('div.container > div > span').text().split('.otf') 35 | output = sup('div').find('div.container > div > span').eq(0).text().replace('otf' , 'zip') 36 | } 37 | let down = 'http:' + sup('div').find('div.container > div > div.dlbox > a').attr('href') 38 | result.push({ style, judul, isi, output, down}) 39 | return result 40 | } 41 | 42 | module.exports = { dafontSearch, dafontDown } -------------------------------------------------------------------------------- /scrape/ffstalk.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios') 2 | 3 | async function ffstalk(userId) { 4 | let data = { 5 | "voucherPricePoint.id": 8050, 6 | "voucherPricePoint.price": "", 7 | "voucherPricePoint.variablePrice": "", 8 | "email": "", 9 | "n": "", 10 | "userVariablePrice": "", 11 | "order.data.profile": "", 12 | "user.userId": userId, 13 | "voucherTypeName": "FREEFIRE", 14 | "affiliateTrackingId": "", 15 | "impactClickId": "", 16 | "checkoutId": "", 17 | "tmwAccessToken": "", 18 | "shopLang": "in_ID", 19 | } 20 | let ff = await axios({ 21 | "headers": { 22 | "Content-Type": "application/json; charset\u003dutf-8" 23 | }, 24 | "method": "POST", 25 | "url": "https://order.codashop.com/id/initPayment.action", 26 | "data": data 27 | }) 28 | return { 29 | id: userId, 30 | nickname: ff.data["confirmationFields"]["roles"][0]["role"] 31 | } 32 | } 33 | 34 | module.exports.ffstalk = ffstalk -------------------------------------------------------------------------------- /scrape/githubstalk.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios') 2 | 3 | async function githubstalk(user) { 4 | return new Promise((resolve, reject) => { 5 | axios.get('https://api.github.com/users/'+user) 6 | .then(({ data }) => { 7 | let hasil = { 8 | username: data.login, 9 | nickname: data.name, 10 | bio: data.bio, 11 | id: data.id, 12 | nodeId: data.node_id, 13 | profile_pic: data.avatar_url, 14 | url: data.html_url, 15 | type: data.type, 16 | admin: data.site_admin, 17 | company: data.company, 18 | blog: data.blog, 19 | location: data.location, 20 | email: data.email, 21 | public_repo: data.public_repos, 22 | public_gists: data.public_gists, 23 | followers: data.followers, 24 | following: data.following, 25 | ceated_at: data.created_at, 26 | updated_at: data.updated_at 27 | } 28 | resolve(hasil) 29 | }) 30 | }) 31 | } 32 | 33 | module.exports.githubstalk = githubstalk -------------------------------------------------------------------------------- /scrape/mlstalk.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios') 2 | 3 | async function mlstalk(id, zoneId) { 4 | return new Promise(async (resolve, reject) => { 5 | axios 6 | .post( 7 | 'https://api.duniagames.co.id/api/transaction/v1/top-up/inquiry/store', 8 | new URLSearchParams( 9 | Object.entries({ 10 | productId: '1', 11 | itemId: '2', 12 | catalogId: '57', 13 | paymentId: '352', 14 | gameId: id, 15 | zoneId: zoneId, 16 | product_ref: 'REG', 17 | product_ref_denom: 'AE', 18 | }) 19 | ), 20 | { 21 | headers: { 22 | 'Content-Type': 'application/x-www-form-urlencoded', 23 | Referer: 'https://www.duniagames.co.id/', 24 | Accept: 'application/json', 25 | }, 26 | } 27 | ) 28 | .then((response) => { 29 | resolve(response.data.data.gameDetail) 30 | }) 31 | .catch((err) => { 32 | reject(err) 33 | }) 34 | }) 35 | } 36 | 37 | module.exports.mlstalk = mlstalk -------------------------------------------------------------------------------- /scrape/npmstalk.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios') 2 | 3 | async function npmstalk(packageName) { 4 | let stalk = await axios.get("https://registry.npmjs.org/"+packageName) 5 | let versions = stalk.data.versions 6 | let allver = Object.keys(versions) 7 | let verLatest = allver[allver.length-1] 8 | let verPublish = allver[0] 9 | let packageLatest = versions[verLatest] 10 | return { 11 | name: packageName, 12 | versionLatest: verLatest, 13 | versionPublish: verPublish, 14 | versionUpdate: allver.length, 15 | latestDependencies: Object.keys(packageLatest.dependencies).length, 16 | publishDependencies: Object.keys(versions[verPublish].dependencies).length, 17 | publishTime: stalk.data.time.created, 18 | latestPublishTime: stalk.data.time[verLatest] 19 | } 20 | } 21 | 22 | module.exports.npmstalk = npmstalk -------------------------------------------------------------------------------- /scrape/photooxy.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios') 2 | const cheerio = require('cheerio') 3 | const fs = require('fs') 4 | const FormData = require('form-data') 5 | const request = require('request') 6 | const { queryString } = require('object-query-string') 7 | 8 | const photoOxy = (url, text) => new Promise((resolve, reject) => { 9 | axios({ 10 | method: 'GET', 11 | url: url, 12 | headers: { 13 | 'user-agent': 'Mozilla/5.0 (Linux; Android 9; Redmi 7A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.99 Mobile Safari/537.36' 14 | } 15 | }) 16 | .then(({ data, headers }) => { 17 | const token = //.exec(data)[1] 18 | const build_server = //.exec(data)[1] 19 | const build_server_id = //.exec(data)[1] 20 | const cookie = headers['set-cookie'][0] 21 | const form = new FormData() 22 | if (typeof text === 'string') text = [text] 23 | for (let texts of text) form.append('text[]', texts) 24 | form.append('sumbit', 'GO') 25 | form.append('token', token) 26 | form.append('build_server', build_server) 27 | form.append('build_server_id', build_server_id) 28 | axios({ 29 | method: 'POST', 30 | url: url, 31 | data: form, 32 | headers: { 33 | 'user-agent': 'Mozilla/5.0 (Linux; Android 9; Redmi 7A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.99 Mobile Safari/537.36', 34 | 'cookie': cookie, 35 | ...form.getHeaders() 36 | } 37 | }) 38 | .then(({ data }) => { 39 | const form_value = /(.*?)<\/div>/.exec(data)[1] 40 | axios({ 41 | method: 'GET', 42 | url: 'https://photooxy.com/effect/create-image?' + queryString(JSON.parse(form_value)), 43 | headers: { 44 | 'user-agent': 'Mozilla/5.0 (Linux; Android 9; Redmi 7A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.99 Mobile Safari/537.36', 45 | 'cookie': cookie 46 | } 47 | }) 48 | .then(({ data }) => { 49 | resolve(build_server + data.image) 50 | }) 51 | .catch(reject) 52 | }) 53 | .catch(reject) 54 | }) 55 | .catch(reject) 56 | }) 57 | 58 | const photoOxyRadio = (url, text, radio) => new Promise((resolve, reject) => { 59 | axios({ 60 | method: 'GET', 61 | url: url, 62 | headers: { 63 | 'user-agent': 'Mozilla/5.0 (Linux; Android 9; Redmi 7A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.99 Mobile Safari/537.36' 64 | } 65 | }) 66 | .then(({ data, headers }) => { 67 | const token = //.exec(data)[1] 68 | const build_server = //.exec(data)[1] 69 | const build_server_id = //.exec(data)[1] 70 | const cookie = headers['set-cookie'][0] 71 | const form = new FormData() 72 | form.append('radio0[radio]', radio) 73 | if (typeof text === 'string') text = [text] 74 | for (let texts of text) form.append('text[]', texts) 75 | form.append('sumbit', 'GO') 76 | form.append('token', token) 77 | form.append('build_server', build_server) 78 | form.append('build_server_id', build_server_id) 79 | axios({ 80 | method: 'POST', 81 | url: url, 82 | data: form, 83 | headers: { 84 | 'user-agent': 'Mozilla/5.0 (Linux; Android 9; Redmi 7A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.99 Mobile Safari/537.36', 85 | 'cookie': cookie, 86 | ...form.getHeaders() 87 | } 88 | }) 89 | .then(({ data }) => { 90 | const form_value = /(.*?)<\/div>/.exec(data)[1] 91 | axios({ 92 | method: 'GET', 93 | url: 'https://photooxy.com/effect/create-image?' + queryString(JSON.parse(form_value)), 94 | headers: { 95 | 'user-agent': 'Mozilla/5.0 (Linux; Android 9; Redmi 7A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.99 Mobile Safari/537.36', 96 | 'cookie': cookie 97 | } 98 | }) 99 | .then(({ data }) => { 100 | resolve(build_server + data.image) 101 | }) 102 | .catch(reject) 103 | }) 104 | .catch(reject) 105 | }) 106 | .catch(reject) 107 | }) 108 | 109 | module.exports.photoOxy = photoOxy 110 | module.exports.photoOxyRadio = photoOxyRadio -------------------------------------------------------------------------------- /scrape/remini.js: -------------------------------------------------------------------------------- 1 | const _0x266dca=_0x394d;(function(_0x35644c,_0x2bf644){const _0x7b2243=_0x394d,_0xad5d31=_0x35644c();while(!![]){try{const _0x3889fd=-parseInt(_0x7b2243(0xbe))/0x1*(-parseInt(_0x7b2243(0xcb))/0x2)+parseInt(_0x7b2243(0xb1))/0x3+-parseInt(_0x7b2243(0xb5))/0x4*(-parseInt(_0x7b2243(0xc9))/0x5)+parseInt(_0x7b2243(0xcc))/0x6+parseInt(_0x7b2243(0xc5))/0x7*(parseInt(_0x7b2243(0xbc))/0x8)+-parseInt(_0x7b2243(0xd1))/0x9*(-parseInt(_0x7b2243(0xba))/0xa)+parseInt(_0x7b2243(0xcf))/0xb*(-parseInt(_0x7b2243(0xb4))/0xc);if(_0x3889fd===_0x2bf644)break;else _0xad5d31['push'](_0xad5d31['shift']());}catch(_0x35fcd2){_0xad5d31['push'](_0xad5d31['shift']());}}}(_0x1c77,0x457b7));function _0x1c77(){const _0x589c7f=['submit','error','22TuGnJG','gzip','1116QxodIW','push','.ai','dehaze','https','806484XUnwrW','jimp','binary','7115460KRQhmI','1101112SegLTh','end','from','enhance_image_body.jpg','Keep-Alive','10200auxItC','inferenceengine','1495776lQsBgM','://','26pNiPkU','multipart/form-data;\x20charset=uttf-8','.ai/','recolor','.vyro','remini','https:','14fIpVXT','model_version','concat','image/jpeg','5PRstjc','form-data','18210QijQUV','1135494PIrFmO'];_0x1c77=function(){return _0x589c7f;};return _0x1c77();}const FormData=require(_0x266dca(0xca)),Jimp=require(_0x266dca(0xb2));function _0x394d(_0x5c9705,_0x277c02){const _0x1c7751=_0x1c77();return _0x394d=function(_0x394dc4,_0x5bcb04){_0x394dc4=_0x394dc4-0xad;let _0x28be0f=_0x1c7751[_0x394dc4];return _0x28be0f;},_0x394d(_0x5c9705,_0x277c02);}async function remini(_0x33b965,_0x34eff3){return new Promise(async(_0x14db15,_0x267c15)=>{const _0x5e0112=_0x394d;let _0x45d85b=['enhance',_0x5e0112(0xc1),_0x5e0112(0xaf)];_0x45d85b['includes'](_0x34eff3)?_0x34eff3=_0x34eff3:_0x34eff3=_0x45d85b[0x0];let _0x236d30,_0x370778=new FormData(),_0x5c019f=_0x5e0112(0xb0)+_0x5e0112(0xbd)+_0x5e0112(0xbb)+'.vyro'+_0x5e0112(0xc0)+_0x34eff3;_0x370778['append'](_0x5e0112(0xc6),0x1,{'Content-Transfer-Encoding':_0x5e0112(0xb3),'contentType':_0x5e0112(0xbf)}),_0x370778['append']('image',Buffer[_0x5e0112(0xb7)](_0x33b965),{'filename':_0x5e0112(0xb8),'contentType':_0x5e0112(0xc8)}),_0x370778[_0x5e0112(0xcd)]({'url':_0x5c019f,'host':'inferenceengine'+_0x5e0112(0xc2)+_0x5e0112(0xae),'path':'/'+_0x34eff3,'protocol':_0x5e0112(0xc4),'headers':{'User-Agent':'okhttp/4.9.3','Connection':_0x5e0112(0xb9),'Accept-Encoding':_0x5e0112(0xd0)}},function(_0x319120,_0x175e8d){const _0xe7b13c=_0x5e0112;if(_0x319120)_0x267c15();let _0x15e24d=[];_0x175e8d['on']('data',function(_0x2918a5,_0x2d4e53){const _0x1e12ae=_0x394d;_0x15e24d[_0x1e12ae(0xad)](_0x2918a5);})['on'](_0xe7b13c(0xb6),()=>{const _0x3eb77e=_0xe7b13c;_0x14db15(Buffer[_0x3eb77e(0xc7)](_0x15e24d));}),_0x175e8d['on'](_0xe7b13c(0xce),_0x90e19c=>{_0x267c15();});});});}module['exports'][_0x266dca(0xc3)]=remini; 2 | -------------------------------------------------------------------------------- /scrape/savefrom.js: -------------------------------------------------------------------------------- 1 | const axios = require("axios") 2 | const vm = require('node:vm') 3 | 4 | async function savefrom() { 5 | let body = new URLSearchParams({ 6 | "sf_url": encodeURI(arguments[0]), 7 | "sf_submit": "", 8 | "new": 2, 9 | "lang": "id", 10 | "app": "", 11 | "country": "id", 12 | "os": "Windows", 13 | "browser": "Chrome", 14 | "channel": " main", 15 | "sf-nomad": 1 16 | }); 17 | let { 18 | data 19 | } = await axios({ 20 | "url": "https://worker.sf-tools.com/savefrom.php", 21 | "method": "POST", 22 | "data": body, 23 | "headers": { 24 | "content-type": "application/x-www-form-urlencoded", 25 | "origin": "https://id.savefrom.net", 26 | "referer": "https://id.savefrom.net/", 27 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36" 28 | } 29 | }); 30 | let exec = '[]["filter"]["constructor"](b).call(a);'; 31 | data = data.replace(exec, `\ntry {\ni++;\nif (i === 2) scriptResult = ${exec.split(".call")[0]}.toString();\nelse (\n${exec.replace(/;/, "")}\n);\n} catch {}`); 32 | let context = { 33 | "scriptResult": "", 34 | "i": 0 35 | }; 36 | vm.createContext(context); 37 | new vm.Script(data).runInContext(context); 38 | return JSON.parse(context.scriptResult.split("window.parent.sf.videoResult.show(")?.[1].split(");")?.[0]) 39 | } 40 | 41 | module.exports.savefrom = savefrom -------------------------------------------------------------------------------- /scrape/scraperr.js: -------------------------------------------------------------------------------- 1 | const { modul } = require('../module'); 2 | const { axios, chalk, cheerio, fs, fetch, got, proces, util, yts, ytdl } = modul; 3 | 4 | async function quotesnime() { 5 | return new Promise( async (resolve, reject) => { 6 | const data = fs.readFileSync('./database/quotesnime.json'); 7 | const jsonData = JSON.parse(data); 8 | const randIndex = Math.floor(Math.random() * jsonData.length); 9 | const randKey = jsonData[randIndex]; 10 | console.log(randKey) 11 | const result = { 12 | quote: randKey.quote, 13 | character: randKey.character, 14 | anime: randKey.anime, 15 | episode: randKey.episode 16 | } 17 | resolve(result) 18 | }).catch((err) => {resolve(err) }) 19 | }; 20 | 21 | async function quotes() { 22 | return new Promise( async (resolve, reject) => { 23 | const data = fs.readFileSync('./database/quote.json'); 24 | const jsonData = JSON.parse(data); 25 | const randIndex = Math.floor(Math.random() * jsonData.length); 26 | const randKey = jsonData[randIndex]; 27 | console.log(randKey) 28 | const result = { 29 | quote: randKey.quote, 30 | by: randKey.by 31 | } 32 | resolve(result) 33 | }).catch((err) => {resolve(err) }) 34 | }; 35 | 36 | function xnxxsearch(query) { 37 | return new Promise((resolve, reject) => { 38 | const baseurl = 'https://www.xnxx.com' 39 | fetch(`${baseurl}/search/${query}/${Math.floor(Math.random() * 3) + 1}`, {method: 'get'}) 40 | .then(res => res.text()) 41 | .then(res => { 42 | let $ = cheerio.load(res, { 43 | xmlMode: false 44 | }); 45 | let title = []; 46 | let url = []; 47 | let desc = []; 48 | let results = []; 49 | 50 | $('div.mozaique').each(function(a, b) { 51 | $(b).find('div.thumb').each(function(c, d) { 52 | url.push(baseurl+$(d).find('a').attr('href').replace("/THUMBNUM/", "/")) 53 | }) 54 | }) 55 | $('div.mozaique').each(function(a, b) { 56 | $(b).find('div.thumb-under').each(function(c, d) { 57 | desc.push($(d).find('p.metadata').text()) 58 | $(d).find('a').each(function(e,f) { 59 | title.push($(f).attr('title')) 60 | }) 61 | }) 62 | }) 63 | for (let i = 0; i < title.length; i++) { 64 | results.push({ 65 | title: title[i], 66 | info: desc[i], 67 | link: url[i] 68 | }) 69 | } 70 | resolve({ 71 | code: 200, 72 | status: true, 73 | result: results 74 | }) 75 | }) 76 | .catch(err => reject({code: 503, status: false, result: err })) 77 | }) 78 | } 79 | 80 | function xnxxdl(URL) { 81 | return new Promise((resolve, reject) => { 82 | fetch(`${URL}`, {method: 'get'}) 83 | .then(res => res.text()) 84 | .then(res => { 85 | let $ = cheerio.load(res, { 86 | xmlMode: false 87 | }); 88 | const title = $('meta[property="og:title"]').attr('content'); 89 | const duration = $('meta[property="og:duration"]').attr('content'); 90 | const image = $('meta[property="og:image"]').attr('content'); 91 | const videoType = $('meta[property="og:video:type"]').attr('content'); 92 | const videoWidth = $('meta[property="og:video:width"]').attr('content'); 93 | const videoHeight = $('meta[property="og:video:height"]').attr('content'); 94 | const info = $('span.metadata').text(); 95 | const videoScript = $('#video-player-bg > script:nth-child(6)').html(); 96 | const files = { 97 | low: (videoScript.match('html5player.setVideoUrlLow\\(\'(.*?)\'\\);') || [])[1], 98 | high: videoScript.match('html5player.setVideoUrlHigh\\(\'(.*?)\'\\);' || [])[1], 99 | HLS: videoScript.match('html5player.setVideoHLS\\(\'(.*?)\'\\);' || [])[1], 100 | thumb: videoScript.match('html5player.setThumbUrl\\(\'(.*?)\'\\);' || [])[1], 101 | thumb69: videoScript.match('html5player.setThumbUrl169\\(\'(.*?)\'\\);' || [])[1], 102 | thumbSlide: videoScript.match('html5player.setThumbSlide\\(\'(.*?)\'\\);' || [])[1], 103 | thumbSlideBig: videoScript.match('html5player.setThumbSlideBig\\(\'(.*?)\'\\);' || [])[1], 104 | }; 105 | resolve({ 106 | status: 200, 107 | result: { 108 | title, 109 | URL, 110 | duration, 111 | image, 112 | videoType, 113 | videoWidth, 114 | videoHeight, 115 | info, 116 | files 117 | } 118 | }) 119 | }) 120 | .catch(err => reject({code: 503, status: false, result: err })) 121 | }) 122 | } 123 | 124 | module.exports.quotesnime = quotesnime 125 | module.exports.quotes = quotes 126 | module.exports.xnxxsearch = xnxxsearch 127 | module.exports.xnxxdl = xnxxdl -------------------------------------------------------------------------------- /scrape/scraperrr.js: -------------------------------------------------------------------------------- 1 | const { modul } = require('../module'); 2 | const { axios, cheerio, fs, fetch, got, util, yts, ytdl } = modul; 3 | 4 | function niatsholat (qurerryy) { 5 | return new Promise( async (resolve, reject) => { 6 | const scraper = JSON.parse(fs.readFileSync(`./database/niatSholat/${qurerryy}.json`)) 7 | console.log(scraper) 8 | const result = { 9 | name: scraper.name, 10 | arabic: scraper.arabic, 11 | latin: scraper.latin, 12 | terjemahan: scraper.terjemahan 13 | } 14 | resolve(result) 15 | }).catch((err) => {resolve(err) }) 16 | } 17 | 18 | function asmaulhusna() { 19 | var rndm = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68','69','70','71','72','73','74','75','76','77','78','79','80','81','82','83','84','85','86','87','88','89','90','91','92','93','94','95','96','97','98','99'] 20 | var bykir = rndm[Math.floor(Math.random() * rndm.length)] 21 | return new Promise( async (resolve, reject) => { 22 | const scraper = JSON.parse(fs.readFileSync(`./database/asmaulHusna/${bykir}.json`)) 23 | console.log(scraper) 24 | const result = { 25 | nomor: scraper.number, 26 | latin: scraper.latin, 27 | arabic: scraper.arab, 28 | id: scraper.translate_id, 29 | en: scraper.translate_en 30 | } 31 | resolve(result) 32 | }).catch((err) => {resolve(err) }) 33 | } 34 | 35 | function bacaanshalat () { 36 | var rndom = ['1','2','3','4','5','6','7','8'] 37 | var bykire = rndom[Math.floor(Math.random() * rndm.length)] 38 | return new Promise( async (resolve, reject) => { 39 | const scraper = JSON.parse(fs.readFileSync(`./database/bacaanSholat/${bykire}.json`)) 40 | console.log(scraper) 41 | const result = { 42 | nomor: scraper.no, 43 | name: scraper.name, 44 | arabic: scraper.arabic, 45 | latin: scraper.latin, 46 | terjemahan: scraper.terjemahan 47 | } 48 | resolve(result) 49 | }).catch((err) => {resolve(err) }) 50 | } 51 | 52 | function getDoujin(identifier) { 53 | const id = identifier.replace(urlToId, '$2'); 54 | return new Promise((resolve, reject) => { 55 | request 56 | .get('https://nhentai.net/g/' + id + '/') 57 | .then(res => { 58 | const $ = cheerio.load(res.text); 59 | let details = {}; 60 | $('.tag-container.field-name').find('.count').each(function () { 61 | const el = $(this); 62 | el.text(` (${el.text()}) `); 63 | }); 64 | $('.tag-container.field-name').text().split('\n').map(string => string.trim()).filter(u => u).map((tag, i, tags) => { 65 | if (tag.endsWith(':') && !tags[i + 1].endsWith(':')) { 66 | details[tag.substring(0, tag.length - 1).toLowerCase()] = tags[i + 1].replace(tagSpacerPatternn, '$1 $2').split(tagSplitPattern); 67 | } 68 | }); 69 | const title = $('#info').find('h1').text(); 70 | const nativeTitle = $('#info').find('h2').text(); 71 | const thumbnails = Object.entries($('.gallerythumb').find('img')).map(image => { 72 | return image[1].attribs 73 | ? image[1].attribs['data-src'] 74 | : null; 75 | }).filter(link => link); 76 | const images = Object.entries($('.gallerythumb').find('img')).map(image => { 77 | return image[1].attribs 78 | ? image[1].attribs['data-src'].replace(/t(\.(jpg|png|gif))/, '$1').replace('t.nhentai', 'i.nhentai') 79 | : null; 80 | }).filter(link => link); 81 | const link = `https://nhentai.net/g/${id}/`; 82 | resolve({ title, nativeTitle, details, pages: images, thumbnails, link }); 83 | }) 84 | .catch(reject); 85 | }); 86 | } 87 | 88 | function onGoing() { 89 | return new Promise((resolve, reject) => { 90 | axios.get('https://neonime.co/episode/').then(res => { 91 | const $ = cheerio.load(res.data) 92 | const result = [] 93 | $('tbody').find('tr').each(function(a, b) { 94 | const link = $(b).find('td > div.imagen-td > a').attr('href') 95 | const img = $(b).find('td > div.imagen-td > a > img').attr('data-src') 96 | const info = $(b).find('td.bb > a > span').text().trim() 97 | const judul = $(b).find('td.bb > a').text() 98 | const tgl_rilis = $(b).find('td.dd').text() 99 | result.push({ judul, link, img, info, tgl_rilis }) 100 | }) 101 | resolve(result) 102 | }).catch(reject) 103 | }) 104 | } 105 | 106 | function kusoNime(query) { 107 | return new Promise(async (resolve, reject) => { 108 | const optionsGet = { 109 | method: 'GET', 110 | headers: { 111 | 'user-agent': 'Mozilla/5.0 (Linux; Android 9; Redmi 7A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.99 Mobile Safari/537.36' 112 | } 113 | } 114 | const getHtml = await fetch('https://kusonime.com/?s=' + query + '&post_type=anime', optionsGet).then(rsp => rsp.text()) 115 | const $ = cheerio.load(getHtml) 116 | const url = [] 117 | $('div > div > ul > div > div > div').each(function() { 118 | url.push($(this).find('a').attr('href')) 119 | }) 120 | const randomUrl = url[Math.floor(Math.random() * url.length)] 121 | const getHtml2 = await fetch(randomUrl, optionsGet).then(rsp => rsp.text()) 122 | const $$ = cheerio.load(getHtml2) 123 | resolve({ 124 | status: 200, 125 | result: { 126 | title: $$('.vezone > .venser').find('.jdlz').text(), 127 | thumb: $$('.vezone > .venser').find('div > img').attr('src'), 128 | views: $$('.vezone > .venser').find('div > div > span').text().trim().replace(' Views', ''), 129 | genre: $$('.vezone > .venser').find('.lexot > .info > p').eq(1).text().replace('Genre : ', ''), 130 | seasons: $$('.vezone > .venser').find('.lexot > .info > p').eq(2).text().replace('Seasons : ', ''), 131 | producers: $$('.vezone > .venser').find('.lexot > .info > p').eq(3).text().replace('Producers: ', ''), 132 | type: $$('.vezone > .venser').find('.lexot > .info > p').eq(4).text().replace('Type: ', ''), 133 | status: $$('.vezone > .venser').find('.lexot > .info > p').eq(5).text().replace('Status: ', ''), 134 | rating: $$('.vezone > .venser').find('.lexot > .info > p').eq(7).text().replace('Score: ', ''), 135 | duration: $$('.vezone > .venser').find('.lexot > .info > p').eq(8).text().replace('Duration: ', ''), 136 | release: $$('.vezone > .venser').find('.lexot > .info > p').eq(9).text().replace('Released on: ', ''), 137 | desc: $$('.vezone > .venser').find('p').eq(10).text(), 138 | url: randomUrl 139 | } 140 | }) 141 | }) 142 | } 143 | 144 | async function mlstalk(id, zoneId) { 145 | return new Promise(async (resolve, reject) => { 146 | axios 147 | .post( 148 | 'https://api.duniagames.co.id/api/transaction/v1/top-up/inquiry/store', 149 | new URLSearchParams( 150 | Object.entries({ 151 | productId: '1', 152 | itemId: '2', 153 | catalogId: '57', 154 | paymentId: '352', 155 | gameId: id, 156 | zoneId: zoneId, 157 | product_ref: 'REG', 158 | product_ref_denom: 'AE', 159 | }) 160 | ), 161 | { 162 | headers: { 163 | 'Content-Type': 'application/x-www-form-urlencoded', 164 | Referer: 'https://www.duniagames.co.id/', 165 | Accept: 'application/json', 166 | }, 167 | } 168 | ) 169 | .then((response) => { 170 | resolve(response.data.data.gameDetail) 171 | }) 172 | .catch((err) => { 173 | reject(err) 174 | }) 175 | }) 176 | } 177 | 178 | async function ffstalk(userId) { 179 | let data = { 180 | "voucherPricePoint.id": 8050, 181 | "voucherPricePoint.price": "", 182 | "voucherPricePoint.variablePrice": "", 183 | "email": "", 184 | "n": "", 185 | "userVariablePrice": "", 186 | "order.data.profile": "", 187 | "user.userId": userId, 188 | "voucherTypeName": "FREEFIRE", 189 | "affiliateTrackingId": "", 190 | "impactClickId": "", 191 | "checkoutId": "", 192 | "tmwAccessToken": "", 193 | "shopLang": "in_ID", 194 | } 195 | let ff = await axios({ 196 | "headers": { 197 | "Content-Type": "application/json; charset\u003dutf-8" 198 | }, 199 | "method": "POST", 200 | "url": "https://order.codashop.com/id/initPayment.action", 201 | "data": data 202 | }) 203 | return { 204 | id: userId, 205 | nickname: ff.data["confirmationFields"]["roles"][0]["role"] 206 | } 207 | } 208 | 209 | async function npmstalk(packageName) { 210 | let stalk = await axios.get("https://registry.npmjs.org/"+packageName) 211 | let versions = stalk.data.versions 212 | let allver = Object.keys(versions) 213 | let verLatest = allver[allver.length-1] 214 | let verPublish = allver[0] 215 | let packageLatest = versions[verLatest] 216 | return { 217 | name: packageName, 218 | versionLatest: verLatest, 219 | versionPublish: verPublish, 220 | versionUpdate: allver.length, 221 | latestDependencies: Object.keys(packageLatest.dependencies).length, 222 | publishDependencies: Object.keys(versions[verPublish].dependencies).length, 223 | publishTime: stalk.data.time.created, 224 | latestPublishTime: stalk.data.time[verLatest] 225 | } 226 | } 227 | 228 | function quotesanime() { 229 | return new Promise((resolve, reject) => { 230 | const page = Math.floor(Math.random() * 184) 231 | axios.get('https://otakotaku.com/quote/feed/'+page) 232 | .then(({ data }) => { 233 | const $ = cheerio.load(data) 234 | const hasil = [] 235 | $('div.kotodama-list').each(function(l, h) { 236 | hasil.push({ 237 | link: $(h).find('a').attr('href'), 238 | gambar: $(h).find('img').attr('data-src'), 239 | karakter: $(h).find('div.char-name').text().trim(), 240 | anime: $(h).find('div.anime-title').text().trim(), 241 | episode: $(h).find('div.meta').text(), 242 | up_at: $(h).find('small.meta').text(), 243 | quotes: $(h).find('div.quote').text().trim() 244 | }) 245 | }) 246 | resolve(hasil) 247 | }).catch(reject) 248 | }) 249 | } 250 | 251 | function pornovid() { 252 | return new Promise((resolve, reject) => { 253 | axios.get('https://tikporntok.com/?random=1') 254 | .then((res) => { 255 | const $ = cheerio.load(res.data) 256 | const hasil = {} 257 | hasil.title = $('article > h1').text() 258 | hasil.source = $('article > div.video-wrapper.vxplayer').attr('data-post') || 'Web Not Response' 259 | hasil.thumb = $('article > div.video-wrapper.vxplayer > div.vx_el').attr('data-poster') || 'https://4.bp.blogspot.com/-hyMqjmQQq4o/W6al-Rk4IpI/AAAAAAAADJ4/m-lVBA_GC9Q5d4BIQg8ZO3fYmQQC3LqSACLcBGAs/s1600/404_not_found.png' 260 | hasil.desc = $('article > div.intro').text() 261 | hasil.upload = $('article > div.single-pre-meta.ws.clearfix > time').text() 262 | hasil.like = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(1) > span').text() 263 | hasil.dislike = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(2) > span').text() 264 | hasil.favorite = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(3) > span').text() 265 | hasil.views = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(4) > span').text() 266 | hasil.tags = $('article > div.post-tags').text() 267 | hasil.video = $('article > div.video-wrapper.vxplayer > div.vx_el').attr('src') || $('article > div.video-wrapper.vxplayer > div.vx_el').attr('data-src') || 'https://4.bp.blogspot.com/-hyMqjmQQq4o/W6al-Rk4IpI/AAAAAAAADJ4/m-lVBA_GC9Q5d4BIQg8ZO3fYmQQC3LqSACLcBGAs/s1600/404_not_found.png' 268 | resolve(hasil) 269 | }) 270 | }) 271 | } 272 | 273 | function hentaivid() { 274 | return new Promise((resolve, reject) => { 275 | const page = Math.floor(Math.random() * 1153) 276 | axios.get('https://sfmcompile.club/page/'+page) 277 | .then((data) => { 278 | const $ = cheerio.load(data.data) 279 | const hasil = [] 280 | $('#primary > div > div > ul > li > article').each(function (a, b) { 281 | hasil.push({ 282 | title: $(b).find('header > h2').text(), 283 | link: $(b).find('header > h2 > a').attr('href'), 284 | category: $(b).find('header > div.entry-before-title > span > span').text().replace('in ', ''), 285 | share_count: $(b).find('header > div.entry-after-title > p > span.entry-shares').text(), 286 | views_count: $(b).find('header > div.entry-after-title > p > span.entry-views').text(), 287 | type: $(b).find('source').attr('type') || 'image/jpeg', 288 | video_1: $(b).find('source').attr('src') || $(b).find('img').attr('data-src'), 289 | video_2: $(b).find('video > a').attr('href') || '' 290 | }) 291 | }) 292 | resolve(hasil) 293 | }) 294 | }) 295 | } 296 | 297 | function nomorhp(nomor) { 298 | return new Promise((resolve, reject) => { 299 | axios({ 300 | headers: { 301 | type: 'application/x-www-form-urlencoded' 302 | }, 303 | method: 'POST', 304 | url: 'https://www.primbon.com/no_hoki_bagua_shuzi.php', 305 | data: new URLSearchParams(Object.entries({ 306 | nomer: nomor, 307 | submit: 'Submit!' 308 | })) 309 | }).then(({data}) => { 310 | let $ = cheerio.load(data) 311 | let fetchText = $('#body').text().trim() 312 | let result; 313 | try { 314 | result = { 315 | nomor_hp: fetchText.split('No. HP : ')[1].split('\n')[0], 316 | angka_bagua_shuzi: fetchText.split('Angka Bagua Shuzi : ')[1].split('\n')[0], 317 | energi_positif: { 318 | kekayaan: fetchText.split('Kekayaan = ')[1].split('\n')[0], 319 | kesehatan: fetchText.split('Kesehatan = ')[1].split('\n')[0], 320 | cinta: fetchText.split('Cinta/Relasi = ')[1].split('\n')[0], 321 | kestabilan: fetchText.split('Kestabilan = ')[1].split('\n')[0], 322 | persentase: fetchText.split('Kestabilan = ')[1].split('% = ')[1].split('ENERGI NEGATIF')[0] 323 | }, 324 | energi_negatif: { 325 | perselisihan: fetchText.split('Perselisihan = ')[1].split('\n')[0], 326 | kehilangan: fetchText.split('Kehilangan = ')[1].split('\n')[0], 327 | malapetaka: fetchText.split('Malapetaka = ')[1].split('\n')[0], 328 | kehancuran: fetchText.split('Kehancuran = ')[1].split('\n')[0], 329 | persentase: fetchText.split('Kehancuran = ')[1].split('% = ')[1].split("\n")[0] 330 | }, 331 | notes: fetchText.split('* ')[1].split('Masukan Nomor HP Anda')[0] 332 | } 333 | } catch { 334 | result = `Nomor "${nomor}" tidak valid` 335 | } 336 | resolve(result) 337 | }).catch(reject) 338 | }) 339 | } 340 | 341 | function character(query) { 342 | return new Promise((resolve, reject) => { 343 | axios.get(`https://www.anime-planet.com/characters/all?name=${query}`) 344 | .then(({ 345 | data 346 | }) => { 347 | const hasil = [] 348 | const $ = cheerio.load(data) 349 | $('#siteContainer > table > tbody > tr').each(function (a, b) { 350 | result = { 351 | status: 200, 352 | author: 'KirBotz', 353 | character: $(b).find('> td.tableCharInfo > a').text(), 354 | link: 'https://www.anime-planet.com' + $(b).find('> td.tableCharInfo > a').attr('href'), 355 | thumbnail: $(b).find('> td.tableAvatar > a > img').attr('src').startsWith('https://') ? $(b).find('> td.tableAvatar > a > img').attr('src') : 'https://www.anime.planet.com' + $(b).find('> td.tableAvatar > a > img').attr('src') 356 | }; 357 | hasil.push(result); 358 | }); 359 | resolve(hasil) 360 | }) 361 | .catch(reject) 362 | }) 363 | } 364 | 365 | function anime(query) { 366 | return new Promise((resolve, reject) => { 367 | axios.get(`https://www.anime-planet.com/anime/all?name=${query}`) 368 | .then(({ 369 | data 370 | }) => { 371 | const hasil = [] 372 | const $ = cheerio.load(data) 373 | $('#siteContainer > ul.cardDeck.cardGrid > li ').each(function (a, b) { 374 | result = { 375 | status: 200, 376 | author: 'KirBotz', 377 | judul: $(b).find('> a > h3').text(), 378 | link: 'https://www.anime-planet.com' + $(b).find('> a').attr('href'), 379 | thumbnail: 'https://www.anime-planet.com' + $(b).find('> a > div.crop > img').attr('src') 380 | }; 381 | hasil.push(result); 382 | }); 383 | resolve(hasil) 384 | }) 385 | .catch(reject) 386 | }) 387 | } 388 | 389 | function manga(query) { 390 | return new Promise((resolve, reject) => { 391 | axios.get(`https://www.anime-planet.com/manga/all?name=${query}`) 392 | .then(({ 393 | data 394 | }) => { 395 | const hasil = [] 396 | const $ = cheerio.load(data) 397 | $('#siteContainer > ul.cardDeck.cardGrid > li ').each(function (a, b) { 398 | result = { 399 | status: 200, 400 | author: 'KirBotz', 401 | judul: $(b).find('> a > h3').text(), 402 | link: 'https://www.anime-planet.com' + $(b).find('> a').attr('href'), 403 | thumbnail: 'https://www.anime-planet.com' + $(b).find('> a > div.crop > img').attr('src') 404 | }; 405 | hasil.push(result); 406 | }); 407 | resolve(hasil) 408 | }) 409 | .catch(reject) 410 | }) 411 | } 412 | 413 | function searchsticker(queryy) { 414 | return new Promise((resolve, reject) => { 415 | axios.get(`https://getstickerpack.com/stickers?query=${queryy}`) 416 | .then(({data}) => { 417 | const $ = cheerio.load(data) 418 | const source = [] 419 | const linknya = [] 420 | $('#stickerPacks > div > div:nth-child(3) > div > a').each((a, b) => { 421 | source.push($(b).attr('href')) 422 | }) 423 | axios.get(source[Math.floor(Math.random() * source.length)]) 424 | .then(({data}) => { 425 | const $2 = cheerio.load(data) 426 | $2('#stickerPack > div > div.row > div > img').each((c, d) => { 427 | linknya.push($2(d).attr('src').replace(/&d=200x200/g, '')) 428 | }) 429 | result = { 430 | title: $2('#intro > div > div > h1').text(), 431 | stickerUrl: linknya 432 | } 433 | resolve(result) 434 | }) 435 | }).catch(reject) 436 | }) 437 | } 438 | 439 | function igstalk(Username) { 440 | return new Promise((resolve, reject) => { 441 | axios.get('https://dumpor.com/v/'+Username, { 442 | headers: { 443 | "cookie": "_inst_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWGhnNS1uWVNLUU81V1lzQ01MTVY2R0h1.fI2xB2dYYxmWqn7kyCKIn1baWw3b-f7QvGDfDK2WXr8", 444 | "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" 445 | } 446 | }).then(res => { 447 | const $ = cheerio.load(res.data) 448 | const result = { 449 | profile: $('#user-page > div.user > div.row > div > div.user__img').attr('style').replace(/(background-image: url\(\'|\'\);)/gi, ''), 450 | fullname: $('#user-page > div.user > div > div.col-md-4.col-8.my-3 > div > a > h1').text(), 451 | username: $('#user-page > div.user > div > div.col-md-4.col-8.my-3 > div > h4').text(), 452 | post: $('#user-page > div.user > div > div.col-md-4.col-8.my-3 > ul > li:nth-child(1)').text().replace(' Posts',''), 453 | followers: $('#user-page > div.user > div > div.col-md-4.col-8.my-3 > ul > li:nth-child(2)').text().replace(' Followers',''), 454 | following: $('#user-page > div.user > div > div.col-md-4.col-8.my-3 > ul > li:nth-child(3)').text().replace(' Following',''), 455 | bio: $('#user-page > div.user > div > div.col-md-5.my-3 > div').text() 456 | } 457 | resolve(result) 458 | }) 459 | }) 460 | } 461 | 462 | function listsurah() { 463 | return new Promise((resolve, reject) => { 464 | axios.get('https://litequran.net/') 465 | .then(({ data }) => { 466 | const $ = cheerio.load(data) 467 | let listsurah = [] 468 | $('body > main > section > ol > li > a').each(function(a, b) { 469 | listsurah.push($(b).text()) 470 | }) 471 | result = { 472 | status: 200, 473 | author: 'KirBotz', 474 | listsurah: listsurah 475 | } 476 | resolve(result) 477 | }).catch(reject) 478 | }) 479 | } 480 | 481 | function jadwalsholat(query) { 482 | return new Promise((resolve, reject) => { 483 | axios.get(`https://umrotix.com/jadwal-sholat/${query}`) 484 | .then(({ 485 | data 486 | }) => { 487 | const $ = cheerio.load(data) 488 | $('body > div > div.main-wrapper.scrollspy-action > div:nth-child(3) ').each(function(a, b) { 489 | result = { 490 | status: 200, 491 | author: 'KirBotz', 492 | tanggal: $(b).find('> div:nth-child(2)').text(), 493 | imsyak: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(1) > p:nth-child(2)').text(), 494 | subuh: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(2) > p:nth-child(2)').text(), 495 | dzuhur: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(3) > p:nth-child(2)').text(), 496 | ashar: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(4) > p:nth-child(2)').text(), 497 | maghrib: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(5) > p:nth-child(2)').text(), 498 | isya: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(6) > p:nth-child(2)').text() 499 | } 500 | resolve(result) 501 | }) 502 | }) 503 | .catch(reject) 504 | }) 505 | } 506 | 507 | async function telesticker(url){ 508 | return new Promise(async (resolve, reject) => { 509 | packName = url.replace("https://t.me/addstickers/", "") 510 | data = await axios(`https://api.telegram.org/bot891038791:AAHWB1dQd-vi0IbH2NjKYUk-hqQ8rQuzPD4/getStickerSet?name=${encodeURIComponent(packName)}`, {method: "GET",headers: {"User-Agent": "GoogleBot"}}) 511 | const hasil = [] 512 | for (let i = 0; i < data.data.result.stickers.length; i++) { 513 | fileId = data.data.result.stickers[i].thumb.file_id 514 | data2 = await axios(`https://api.telegram.org/bot891038791:AAHWB1dQd-vi0IbH2NjKYUk-hqQ8rQuzPD4/getFile?file_id=${fileId}`) 515 | result = { 516 | url: "https://api.telegram.org/file/bot891038791:AAHWB1dQd-vi0IbH2NjKYUk-hqQ8rQuzPD4/" + data2.data.result.file_path 517 | } 518 | hasil.push(result.url) 519 | } 520 | resolve(hasil) 521 | }) 522 | } 523 | 524 | async function aiovideodl(url) { 525 | let { data, headers } = await axios("https://aiovideodl.ml/"); 526 | let $ = cheerio.load(data); 527 | let token = $("#token").attr("value"); 528 | let cookie = headers["set-cookie"].join("; "); 529 | let body = new URLSearchParams({ url, token }); 530 | let { data: res } = await axios({ 531 | "url": "https://aiovideodl.ml/wp-json/aio-dl/video-data/", 532 | "method": "POST", 533 | "data": body, 534 | "headers": { 535 | "content-type": "application/x-www-form-urlencoded", 536 | "cookie": cookie, 537 | "origin": "https://aiovideodl.ml", 538 | "referer": "https://aiovideodl.ml/", 539 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36" 540 | } 541 | }); 542 | return res; 543 | } 544 | 545 | function linkwa(nama){ 546 | return new Promise((resolve,reject) => { 547 | axios.get('http://ngarang.com/link-grup-wa/daftar-link-grup-wa.php?search='+ nama +'&searchby=name') 548 | .then(({ data }) => { 549 | const $ = cheerio.load(data); 550 | const result = []; 551 | const lnk = []; 552 | const nm = []; 553 | $('div.wa-chat-title-container').each(function(a,b){ 554 | const limk = $(b).find('a').attr('href'); 555 | lnk.push(limk) 556 | }) 557 | $('div.wa-chat-title-text').each(function(c,d) { 558 | const name = $(d).text(); 559 | nm.push(name) 560 | }) 561 | for( let i = 0; i < lnk.length; i++){ 562 | result.push({ 563 | nama: nm[i].split('. ')[1], 564 | link: lnk[i].split('?')[0] 565 | }) 566 | } 567 | resolve(result) 568 | }) 569 | .catch(reject) 570 | }) 571 | } 572 | 573 | async function mediafiredl(url) { 574 | var _a, _b; 575 | if (!/https?:\/\/(www\.)?mediafire\.com/.test(url)) 576 | throw new Error('Invalid URL: ' + url); 577 | const data = await got(url).text(); 578 | const $ = cheerio.load(data); 579 | const Url = ($('#downloadButton').attr('href') || '').trim(); 580 | const url2 = ($('#download_link > a.retry').attr('href') || '').trim(); 581 | const $intro = $('div.dl-info > div.intro'); 582 | const filename = $intro.find('div.filename').text().trim(); 583 | const filetype = $intro.find('div.filetype > span').eq(0).text().trim(); 584 | const ext = ((_b = (_a = /\(\.(.*?)\)/.exec($intro.find('div.filetype > span').eq(1).text())) === null || _a === void 0 ? void 0 : _a[1]) === null || _b === void 0 ? void 0 : _b.trim()) || 'bin'; 585 | const $li = $('div.dl-info > ul.details > li'); 586 | const aploud = $li.eq(1).find('span').text().trim(); 587 | const filesizeH = $li.eq(0).find('span').text().trim(); 588 | const filesize = parseFloat(filesizeH) * (/GB/i.test(filesizeH) 589 | ? 1000000 590 | : /MB/i.test(filesizeH) 591 | ? 1000 592 | : /KB/i.test(filesizeH) 593 | ? 1 594 | : /B/i.test(filesizeH) 595 | ? 0.1 596 | : 0); 597 | return { 598 | url: Url, 599 | url2, 600 | filename, 601 | filetype, 602 | ext, 603 | aploud, 604 | filesizeH, 605 | filesize 606 | }; 607 | } 608 | 609 | async function ytPlayMp4(query) { 610 | return new Promise((resolve, reject) => { 611 | try { 612 | const search = yts(query) 613 | .then((data) => { 614 | const url = [] 615 | const pormat = data.all 616 | for (let i = 0; i < pormat.length; i++) { 617 | if (pormat[i].type == 'video') { 618 | let dapet = pormat[i] 619 | url.push(dapet.url) 620 | } 621 | } 622 | const id = ytdl.getVideoID(url[0]) 623 | const yutub = ytdl.getInfo(`https://www.youtube.com/watch?v=${id}`) 624 | .then((data) => { 625 | let pormat = data.formats 626 | let video = [] 627 | for (let i = 0; i < pormat.length; i++) { 628 | if (pormat[i].container == 'mp4' && pormat[i].hasVideo == true && pormat[i].hasAudio == true) { 629 | let vid = pormat[i] 630 | video.push(vid.url) 631 | } 632 | } 633 | const title = data.player_response.microformat.playerMicroformatRenderer.title.simpleText 634 | const thumb = data.player_response.microformat.playerMicroformatRenderer.thumbnail.thumbnails[0].url 635 | const channel = data.player_response.microformat.playerMicroformatRenderer.ownerChannelName 636 | const views = data.player_response.microformat.playerMicroformatRenderer.viewCount 637 | const published = data.player_response.microformat.playerMicroformatRenderer.publishDate 638 | const result = { 639 | title: title, 640 | thumb: thumb, 641 | channel: channel, 642 | published: published, 643 | views: views, 644 | url: video[0] 645 | } 646 | return(result) 647 | }) 648 | return(yutub) 649 | }) 650 | resolve(search) 651 | } catch (error) { 652 | reject(error) 653 | } 654 | console.log(error) 655 | }) 656 | } 657 | 658 | async function ytPlayMp3(query) { 659 | return new Promise((resolve, reject) => { 660 | try { 661 | const search = yts(query) 662 | .then((data) => { 663 | const url = [] 664 | const pormat = data.all 665 | for (let i = 0; i < pormat.length; i++) { 666 | if (pormat[i].type == 'video') { 667 | let dapet = pormat[i] 668 | url.push(dapet.url) 669 | } 670 | } 671 | const id = ytdl.getVideoID(url[0]) 672 | const yutub = ytdl.getInfo(`https://www.youtube.com/watch?v=${id}`) 673 | .then((data) => { 674 | let pormat = data.formats 675 | let audio = [] 676 | let video = [] 677 | for (let i = 0; i < pormat.length; i++) { 678 | if (pormat[i].mimeType == 'audio/webm; codecs=\"opus\"') { 679 | let aud = pormat[i] 680 | audio.push(aud.url) 681 | } 682 | } 683 | const title = data.player_response.microformat.playerMicroformatRenderer.title.simpleText 684 | const thumb = data.player_response.microformat.playerMicroformatRenderer.thumbnail.thumbnails[0].url 685 | const channel = data.player_response.microformat.playerMicroformatRenderer.ownerChannelName 686 | const views = data.player_response.microformat.playerMicroformatRenderer.viewCount 687 | const published = data.player_response.microformat.playerMicroformatRenderer.publishDate 688 | const result = { 689 | status: true, 690 | code: 200, 691 | creator: '@kirbotz×', 692 | title: title, 693 | thumb: thumb, 694 | channel: channel, 695 | published: published, 696 | views: views, 697 | url: audio[0] 698 | } 699 | return(result) 700 | }) 701 | return(yutub) 702 | }) 703 | resolve(search) 704 | } catch (error) { 705 | reject(error) 706 | } 707 | console.log(error) 708 | }) 709 | } 710 | 711 | function cerpen (category) { 712 | return new Promise(async (resolve, reject) => { 713 | let title = category.toLowerCase().replace(/[()*]/g, "") 714 | let judul = title.replace(/\s/g, "-") 715 | let page = Math.floor(Math.random() * 5) 716 | axios.get('http://cerpenmu.com/category/cerpen-'+judul+'/page/'+page) 717 | .then((get) => { 718 | let $ = cheerio.load(get.data) 719 | let link = [] 720 | $('article.post').each(function (a, b) { 721 | link.push($(b).find('a').attr('href')) 722 | }) 723 | let random = link[Math.floor(Math.random() * link.length)] 724 | axios.get(random) 725 | .then((res) => { 726 | let $$ = cheerio.load(res.data) 727 | let hasil = { 728 | title: $$('#content > article > h1').text(), 729 | author: $$('#content > article').text().split('Cerpen Karangan: ')[1].split('Kategori: ')[0], 730 | kategori: $$('#content > article').text().split('Kategori: ')[1].split('\n')[0], 731 | lolos: $$('#content > article').text().split('Lolos moderasi pada: ')[1].split('\n')[0], 732 | cerita: $$('#content > article > p').text() 733 | } 734 | resolve(hasil) 735 | }) 736 | }) 737 | }) 738 | } 739 | 740 | function getLatestAnime() { 741 | return new Promise((resolve, reject) => { 742 | axios.get('https://www.mynimeku.com/').then(({ data }) => { 743 | let $ = cheerio.load(data) 744 | let result = [] 745 | $('div.flexbox-item > a').each(function(i, e) { 746 | let title = $(e).attr('title') 747 | let link = $(e).attr('href') 748 | let status = $(e).find('div.flexbox-status').text() 749 | let thumb = $(e).find('div.flexbox-thumb > img').attr('data-src') 750 | let episode = $(e).find('div.flexbox-episode > span.eps').text().split(' ')[1] 751 | let type = $(e).find('div.flexbox-type').text() 752 | result.push({ title, status, episode, type, thumb, link }) 753 | }) 754 | resolve(result) 755 | }).catch(reject) 756 | }) 757 | } 758 | 759 | function getLatestKomik() { 760 | return new Promise((resolve, reject) => { 761 | axios.get('https://www.mynimeku.com/').then(({ data }) => { 762 | let $ = cheerio.load(data) 763 | let result = [] 764 | $('div.flexbox4-item').each(function(i, e) { 765 | let title = $(e).find('a').attr('title') 766 | let link = $(e).find('a').attr('href') 767 | let thumb = $(e).find('div.flexbox4-thumb > img').attr('data-src') 768 | let type = $(e).find('div.flexbox4-type').text() 769 | let status = $(e).find('div.flexbox-status').text() 770 | let chapter = $(e).find('ul.chapter > li').text().split(' ')[1] 771 | result.push({ title, status, chapter, type, thumb, link }) 772 | }) 773 | resolve(result) 774 | }).catch(reject) 775 | }) 776 | } 777 | 778 | function AnimeDl(url) { 779 | return new Promise((resolve, reject) => { 780 | axios.get(url).then(({ data }) => { 781 | let $ = cheerio.load(data) 782 | let title = $('title').text() 783 | let thumb = $('meta[property="og:image"]').attr('content') 784 | let url = $('#linklist').find('a').attr('href') 785 | resolve({ title, thumb, url }) 786 | }).catch(reject) 787 | }) 788 | } 789 | 790 | function KomikDl(url) { 791 | return new Promise((resolve, reject) => { 792 | axios.get(url).then(({ data }) => { 793 | let $ = cheerio.load(data) 794 | let title = $('title').text().replace('Bahasa Indonesia - MyNimeku', '').trim() 795 | let result = [] 796 | $('div.reader-area > p > img').each(function () { 797 | result.push($(this).attr('src')) 798 | }) 799 | resolve({ title, result }) 800 | }).catch(reject) 801 | }) 802 | } 803 | 804 | function otakudesu(judul){ 805 | return new Promise(async(resolve, reject) => { 806 | axios.get('https://otakudesu.moe/?s=' + judul + '&post_type=anime') 807 | .then(({ data }) => { 808 | const $ = cheerio.load(data) 809 | const result = {}; 810 | let limk = $('#venkonten > div > div.venser > div > div > ul > li:nth-child(1) > h2 > a').attr('href') 811 | axios.get(limk).then(({ data }) => { 812 | const $$ = cheerio.load(data) 813 | result.message = 'KirBotz' 814 | result.img = $$('#venkonten > div.venser > div.fotoanime').find('img').attr('src') 815 | $$('#venkonten > div.venser > div.fotoanime > div.infozin > div').each(function(a, b) { 816 | result.judul = $$(b).find('p:nth-child(1)').text().replace('Judul: ','') 817 | result.jepang = $$(b).find('p:nth-child(2)').text().replace('Japanese: ','') 818 | result.rate = $$(b).find('p:nth-child(3)').text().replace('Skor: ','') 819 | result.produser = $$(b).find('p:nth-child(4)').text().replace('Produser: ','') 820 | result.tipe = $$(b).find('p:nth-child(5)').text().replace('Tipe: ','') 821 | result.status = $$(b).find('p:nth-child(6)').text().replace('Status: ','') 822 | result.episode = $$(b).find('p:nth-child(7)').text().replace('Total Episode: ','') 823 | result.durasi = $$(b).find('p:nth-child(8)').text().replace('Durasi: ','') 824 | result.rilis = $$(b).find('p:nth-child(9)').text().replace('Tanggal Rilis: ','') 825 | result.studio = $$(b).find('p:nth-child(10)').text().replace('Studio: ','') 826 | result.genre = $$(b).find('p:nth-child(11)').text().replace('Genre: ','') 827 | result.desc = $$('#venkonten > div.venser > div.fotoanime > div.sinopc').text().replace('.','\n') + $$(b).find('div.sinopc > p:nth-child(2)').text() 828 | result.batch = $$('#venkonten > div.venser > div:nth-child(10) > ul > li > span:nth-child(1) > a').attr('href') 829 | }) 830 | const lim = $$('#venkonten > div.venser > div:nth-child(10) > ul > li > span:nth-child(1) > a').attr('href') 831 | axios.get(lim).then(({ data }) => { 832 | const $$$ = cheerio.load(data) 833 | result.batchSD = $$$('#venkonten > div:nth-child(6) > ul > li:nth-child(1) > a:nth-child(3)').attr('href') 834 | result.batchHD = $$$('#venkonten > div:nth-child(6) > ul > li:nth-child(3) > a:nth-child(3)').attr('href') 835 | resolve(result) 836 | }) 837 | }) 838 | }) 839 | .catch(reject) 840 | }) 841 | } 842 | 843 | module.exports = { 844 | niatsholat, 845 | asmaulhusna, 846 | bacaanshalat, 847 | getDoujin, 848 | onGoing, 849 | kusoNime, 850 | mlstalk, 851 | ffstalk, 852 | npmstalk, 853 | quotesanime, 854 | pornovid, 855 | hentaivid, 856 | nomorhp, 857 | character, 858 | anime, 859 | manga, 860 | searchsticker, 861 | igstalk, 862 | listsurah, 863 | jadwalsholat, 864 | telesticker, 865 | aiovideodl, 866 | linkwa, 867 | mediafiredl, 868 | ytPlayMp4, 869 | ytPlayMp3, 870 | cerpen, 871 | getLatestAnime, 872 | getLatestKomik, 873 | AnimeDl, 874 | KomikDl, 875 | otakudesu } -------------------------------------------------------------------------------- /scrape/textpro.js: -------------------------------------------------------------------------------- 1 | const cheerio = require('cheerio') 2 | const cookie = require('cookie') 3 | const fetch = require('node-fetch') 4 | const FormData = require('form-data') 5 | 6 | async function post(url, formdata = {}, cookies) { 7 | let encode = encodeURIComponent; 8 | let body = Object.keys(formdata) 9 | .map((key) => { 10 | let vals = formdata[key]; 11 | let isArray = Array.isArray(vals); 12 | let keys = encode(key + (isArray ? "[]" : "")); 13 | if (!isArray) vals = [vals]; 14 | let out = []; 15 | for (let valq of vals) out.push(keys + "=" + encode(valq)); 16 | return out.join("&"); 17 | }) 18 | .join("&"); 19 | return await fetch(`${url}?${body}`, { 20 | method: "GET", 21 | headers: { 22 | Accept: "*/*", 23 | "Accept-Language": "en-US,en;q=0.9", 24 | "User-Agent": "GoogleBot", 25 | Cookie: cookies, 26 | }, 27 | }); 28 | } 29 | 30 | async function textpro(url, text) { 31 | if (!/^https:\/\/textpro\.me\/.+\.html$/.test(url)) 32 | throw new Error("Url Salah!!"); 33 | const geturl = await fetch(url, { 34 | method: "GET", 35 | headers: { 36 | "User-Agent": "GoogleBot", 37 | }, 38 | }); 39 | const caritoken = await geturl.text(); 40 | let hasilcookie = geturl.headers 41 | .get("set-cookie") 42 | .split(",") 43 | .map((v) => cookie.parse(v)) 44 | .reduce((a, c) => { 45 | return { ...a, ...c }; 46 | }, {}); 47 | hasilcookie = { 48 | __cfduid: hasilcookie.__cfduid, 49 | PHPSESSID: hasilcookie.PHPSESSID, 50 | }; 51 | hasilcookie = Object.entries(hasilcookie) 52 | .map(([name, value]) => cookie.serialize(name, value)) 53 | .join("; "); 54 | const $ = cheerio.load(caritoken); 55 | const token = $('input[name="token"]').attr("value"); 56 | const form = new FormData(); 57 | if (typeof text === "string") text = [text]; 58 | for (let texts of text) form.append("text[]", texts); 59 | form.append("submit", "Go"); 60 | form.append("token", token); 61 | form.append("build_server", "https://textpro.me"); 62 | form.append("build_server_id", 1); 63 | const geturl2 = await fetch(url, { 64 | method: "POST", 65 | headers: { 66 | Accept: "*/*", 67 | "Accept-Language": "en-US,en;q=0.9", 68 | "User-Agent": "GoogleBot", 69 | Cookie: hasilcookie, 70 | ...form.getHeaders(), 71 | }, 72 | body: form.getBuffer(), 73 | }); 74 | const caritoken2 = await geturl2.text(); 75 | const token2 = /(.*?)<\/div>/.exec(caritoken2); 76 | if (!token2) throw new Error("Token Not Found!!"); 77 | const prosesimage = await post( 78 | "https://textpro.me/effect/create-image", 79 | JSON.parse(token2[1]), 80 | hasilcookie 81 | ); 82 | const hasil = await prosesimage.json(); 83 | return `https://textpro.me${hasil.fullsize_image}`; 84 | } 85 | 86 | module.exports.textpro = textpro -------------------------------------------------------------------------------- /scrape/tiktok.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios') 2 | const vm = require('node:vm') 3 | 4 | async function savefrom() { 5 | let body = new URLSearchParams({ 6 | "sf_url": encodeURI(arguments[0]), 7 | "sf_submit": "", 8 | "new": 2, 9 | "lang": "id", 10 | "app": "", 11 | "country": "id", 12 | "os": "Windows", 13 | "browser": "Chrome", 14 | "channel": " main", 15 | "sf-nomad": 1 16 | }); 17 | let { 18 | data 19 | } = await axios({ 20 | "url": "https://worker.sf-tools.com/savefrom.php", 21 | "method": "POST", 22 | "data": body, 23 | "headers": { 24 | "content-type": "application/x-www-form-urlencoded", 25 | "origin": "https://id.savefrom.net", 26 | "referer": "https://id.savefrom.net/", 27 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36" 28 | } 29 | }); 30 | let exec = '[]["filter"]["constructor"](b).call(a);'; 31 | data = data.replace(exec, `\ntry {\ni++;\nif (i === 2) scriptResult = ${exec.split(".call")[0]}.toString();\nelse (\n${exec.replace(/;/, "")}\n);\n} catch {}`); 32 | let context = { 33 | "scriptResult": "", 34 | "i": 0 35 | }; 36 | vm.createContext(context); 37 | new vm.Script(data).runInContext(context); 38 | return JSON.parse(context.scriptResult.split("window.parent.sf.videoResult.show(")?.[1].split(");")?.[0]) 39 | } 40 | 41 | global.tiktok = savefrom -------------------------------------------------------------------------------- /scrape/upload.js: -------------------------------------------------------------------------------- 1 | const { modul } = require('../module'); 2 | const { axios, fs, fetch, FormData, FileType } = modul; 3 | const { fromBuffer } = FileType 4 | 5 | async function uptotelegra (Path) { 6 | return new Promise (async (resolve, reject) => { 7 | if (!fs.existsSync(Path)) return reject(new Error("File not Found")) 8 | try { 9 | const form = new FormData(); 10 | form.append("file", fs.createReadStream(Path)) 11 | const data = await axios({ 12 | url: "https://telegra.ph/upload", 13 | method: "POST", 14 | headers: { 15 | ...form.getHeaders() 16 | }, 17 | data: form 18 | }) 19 | return resolve("https://telegra.ph" + data.data[0].src) 20 | } catch (err) { 21 | return reject(new Error(String(err))) 22 | } 23 | }) 24 | } 25 | 26 | module.exports.uptotelegra = uptotelegra -------------------------------------------------------------------------------- /scrape/uploader.js: -------------------------------------------------------------------------------- 1 | let axios = require('axios') 2 | let BodyForm = require('form-data') 3 | let { fromBuffer } = require('file-type') 4 | let fetch = require('node-fetch') 5 | let fs = require('fs') 6 | let cheerio = require('cheerio') 7 | 8 | 9 | 10 | function TelegraPh(Path) { 11 | return new Promise (async (resolve, reject) => { 12 | if (!fs.existsSync(Path)) return reject(new Error("File not Found")) 13 | try { 14 | const form = new BodyForm(); 15 | form.append("file", fs.createReadStream(Path)) 16 | const data = await axios({ 17 | url: "https://telegra.ph/upload", 18 | method: "POST", 19 | headers: { 20 | ...form.getHeaders() 21 | }, 22 | data: form 23 | }) 24 | return resolve("https://telegra.ph" + data.data[0].src) 25 | } catch (err) { 26 | return reject(new Error(String(err))) 27 | } 28 | }) 29 | } 30 | 31 | async function UploadFileUgu(input) { 32 | return new Promise (async (resolve, reject) => { 33 | const form = new BodyForm(); 34 | form.append("files[]", fs.createReadStream(input)) 35 | await axios({ 36 | url: "https://uguu.se/upload.php", 37 | method: "POST", 38 | headers: { 39 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", 40 | ...form.getHeaders() 41 | }, 42 | data: form 43 | }).then((data) => { 44 | resolve(data.data.files[0]) 45 | }).catch((err) => reject(err)) 46 | }) 47 | } 48 | 49 | function webp2mp4File(path) { 50 | return new Promise((resolve, reject) => { 51 | const form = new BodyForm() 52 | form.append('new-image-url', '') 53 | form.append('new-image', fs.createReadStream(path)) 54 | axios({ 55 | method: 'post', 56 | url: 'https://s6.ezgif.com/webp-to-mp4', 57 | data: form, 58 | headers: { 59 | 'Content-Type': `multipart/form-data; boundary=${form._boundary}` 60 | } 61 | }).then(({ data }) => { 62 | const bodyFormThen = new BodyForm() 63 | const $ = cheerio.load(data) 64 | const file = $('input[name="file"]').attr('value') 65 | bodyFormThen.append('file', file) 66 | bodyFormThen.append('convert', "Convert WebP to MP4!") 67 | axios({ 68 | method: 'post', 69 | url: 'https://ezgif.com/webp-to-mp4/' + file, 70 | data: bodyFormThen, 71 | headers: { 72 | 'Content-Type': `multipart/form-data; boundary=${bodyFormThen._boundary}` 73 | } 74 | }).then(({ data }) => { 75 | const $ = cheerio.load(data) 76 | const result = 'https:' + $('div#output > p.outfile > video > source').attr('src') 77 | resolve({ 78 | status: true, 79 | message: "Created By MRHRTZ", 80 | result: result 81 | }) 82 | }).catch(reject) 83 | }).catch(reject) 84 | }) 85 | } 86 | 87 | async function floNime(medianya, options = {}) { 88 | const { ext } = await fromBuffer(medianya) || options.ext 89 | var form = new BodyForm() 90 | form.append('file', medianya, 'tmp.'+ext) 91 | jsonnya = await fetch('https://flonime.my.id/upload', { 92 | method: 'POST', 93 | body: form 94 | }) 95 | .then((response) => response.json()) 96 | .then((result) => { 97 | return result 98 | }) 99 | .catch(e => { 100 | return e 101 | }) 102 | return jsonnya 103 | } 104 | 105 | module.exports = { TelegraPh, UploadFileUgu, webp2mp4File, floNime } 106 | -------------------------------------------------------------------------------- /settings.js: -------------------------------------------------------------------------------- 1 | const chalk = require("chalk") 2 | const fs = require("fs") 3 | 4 | // Apikey 5 | global.apikeys = 'Apikeylu' 6 | // Note: Kalau Lu Gada Apikeynya Daftar Dulu Biar Semua Fiturnya Aktif, Webnya Di Bawah Ya 7 | // • https://api.xyroinee.xyz 8 | 9 | // Info Owner 10 | global.owner = ['6285760451683'] 11 | global.nomorown = "6285760451683" 12 | global.ownername = "Xyroınee-ID." 13 | global.ownerNumber = ["6285760451683@s.whatsapp.net"] 14 | global.creator = "6285760451683@s.whatsapp.net" 15 | global.author = "Clara - MD" 16 | global.location = "Indonesia" 17 | 18 | //Bot Setting 19 | global.botname = "Clara - MD" 20 | global.wm = "Follow Instagram: danilelistz02" 21 | global.packname = "Sticker By" 22 | global.prefa = ['','!','.','#','&','`'] 23 | global.hituet = 0 24 | 25 | // Social Media 26 | global.yt = "https://www.youtube.com/@Xyroinee" 27 | global.gh = "https://github.com/Xyroinee" 28 | global.ig = "https://instagram.com/danilelistz02" 29 | global.fb = "https://facebook.com/danilelistz19" 30 | global.web = "https://api.xyroinee.xyz" 31 | global.gcwa = "https://chat.whatsapp.com/LAWdMIQri9SKee5kqmISH0" 32 | 33 | // Foto Bot 34 | global.thumb = fs.readFileSync("./media/clara.jpg") 35 | 36 | // Message/Pesan 37 | global.mess = { 38 | success: '_Sukses...!_', 39 | admin: '_Maaf Kak, Tapi Fitur Ini Hanya Bisa Digunakan Oleh Admin Grup_', 40 | botAdmin: '_Jadikan Saya Sebagai Admin Terlebih Dahulu Agar Dapan Mengaktifkan Fitur Ini_', 41 | prem: '_Fitur Ini Khusus Premium Kak, Jika Ingin Menjadi User Premium Ketik .premium Atau Hubungin Owner_', 42 | owner: '_Maaf Kak, Tapi Fitur Ini Hanya Bisa Digunakan Oleh Ownerku_', 43 | group: '_Fitur Ini Hanya Bisa Di Pakai Di Dalam Grup_', 44 | private: '_Fitur Ini Hanya Bisa Di Pakai Di Dalam Chat Pribadi_', 45 | bot: 'Fitur Khusus Bot', 46 | wait: '_Sedang Di Proses, Mohon Tunggu_...', 47 | link: '_Uhm...Linknya Mana?_' 48 | } 49 | // Ini Panel Ya Njing 50 | global.host = "https://zrstore.panelrun.xyz" 51 | global.application = { 52 | api_key: "", //Ambil Di Panel Lu Caranya Pergi Ke Setting Admin Terus Tap Garis Tiga Pojok Kiri Atas Terus Tap Application API Tinggal Salin Apikeynya 53 | c_api_key: "" //Ambil Di Panel Lu Caranya Ke Account Setting Atau Tap Foto Akun Lu Terus Tap API Credentials Terus Isi Descriptionya Sange Terus Tap Create Nah Lu Salin C Apikeynya 54 | } 55 | global.serverCreate = { 56 | nestId: "5", //Nest Id Panel Lu 57 | eggId: "15", //Egg Id Panel Lu 58 | limits: { 59 | db: "1", //Mending Ga Usah Diganti 60 | backups: "1", //Mending Ga Usah Diganti 61 | allocation: "0" //Mending Ga Usah Diganti 62 | }, 63 | eggs: { 64 | environment: { 65 | "CUSTOM_COMMAND": "npm start", //Sesuaiin Sama Eggs Panel Lu 66 | "GIT_ADDRESS": "", 67 | "BRANCH": "", 68 | "USERNAME": "", 69 | "ACCESS_TOKEN": "" 70 | } 71 | } 72 | } 73 | 74 | let file = require.resolve(__filename) 75 | fs.watchFile(file, () => { 76 | fs.unwatchFile(file) 77 | console.log(chalk.redBright(`Update'${__filename}'`)) 78 | delete require.cache[file] 79 | require(file) 80 | }) 81 | --------------------------------------------------------------------------------