├── .node-persist ├── msgHndlr.js └── storage │ └── 4651253a81c216ecf694139dcbb20d02 ├── LICENSE ├── README.md ├── botfuzzy.js ├── botnandaz.js ├── chara.txt ├── data_tes_antilink.txt ├── debug ├── if_res.txt ├── igsearch.txt ├── ms.txt └── toimg.txt ├── fuzzy.data.json ├── google8c714ab7f8dcb901.html ├── index.js ├── lib ├── .brainly.js.swp ├── Insta.js ├── NSFW.json ├── antilink.json ├── ban.js ├── banned.json ├── brainly.js ├── chara │ ├── 27632122007-1608630746@g.us.json │ ├── 6281213089927-1607788140@g.us.json │ ├── 6281311850715-1605290009@g.us.json │ ├── 6283805191681-1604633071@g.us.json │ ├── 6285559038021-1603588233@g.us.json │ ├── 6285559038021-1603688917@g.us.json │ ├── 6285559038021-1605869468@g.us.json │ ├── 6285721733043-1609557240@g.us.json │ └── 6285892766102-1608900013@g.us.json ├── chara_galery │ ├── 27632122007@c.us.json │ ├── 6281328917586@c.us.json │ ├── 6283805191681@c.us.json │ ├── 6285559038021@c.us.json │ ├── 6285764112841@c.us.json │ ├── 62895621590008@c.us.json │ ├── 6289636035164@c.us.json │ ├── 628992490269@c.us.json │ └── 966572592040@c.us.json ├── characounter.json ├── charasession ├── charasession.json ├── chargame.json ├── charlist.json ├── color.js ├── config.json ├── dataadz.json ├── db-sticker.json ├── dmff.js ├── dmff.json ├── fetcher.js ├── freedom.js ├── freedom.json ├── functions.js ├── functions.js.bak ├── giphy.js ├── help.js ├── husbu.json ├── imageProcessing.js ├── index.js ├── kontak_izin.json ├── lib-igeh.js ├── limit.json ├── listadzan.json ├── location.js ├── msgFilter.js ├── msgLimit.json ├── muted.json ├── pengguna.json ├── perizinan.json ├── quotes.json ├── random │ ├── anime │ │ ├── husbu.txt │ │ ├── neko.txt │ │ ├── random.txt │ │ └── waifu.txt │ ├── faktaunix.txt │ ├── katabijax.txt │ ├── kpop │ │ ├── blackpink.txt │ │ ├── bts.txt │ │ └── exo.txt │ ├── pantun.txt │ └── quran.json ├── repeat.json ├── setting.json ├── sewa_bot.json ├── shortener.js ├── tikel_makel.js ├── tiktod.js ├── translate.js ├── vip.json ├── welcome.js ├── welcome.json └── ytdl.js ├── media ├── CSstik.png ├── DGC.jpg ├── Freedom.png ├── adzan │ ├── adzan_bayati.mp3 │ ├── magrib_bdg.jpg │ └── shubuh_bdg.png ├── aswu-stik.jpeg ├── aswu.jpeg ├── aswu.mp4 ├── freedom-qris.jpeg ├── gifstik.mp4 ├── img │ ├── Kaguya.png │ ├── after.jpg │ ├── before.jpg │ ├── dgc.jpg │ ├── nimek.jpg │ ├── noBg.png │ ├── nulez.jpg │ ├── screenshot.jpeg │ ├── tes.jpg │ └── tutod.jpg ├── imgscale.jpeg ├── mp3yt │ └── mp3nya.mp3 ├── nyanyi │ └── botnyanyi.mp3 ├── output-aa.gif ├── output-stik.jpeg ├── output.gif ├── outputne.jpeg ├── saved_stickers │ ├── Baushsns.jpg │ ├── DOIAING.jpg │ ├── Gass yuk.jpg │ ├── JUST4FUN😎.jpg │ ├── Kucing 1.jpg │ ├── Marah.jpg │ ├── Zikran Tolol.jpg │ ├── abdillah.jpg │ ├── bagi dua.jpg │ ├── bay.jpg │ ├── bokep.jpg │ ├── ciw.jpg │ ├── ciwi ciwi.jpg │ ├── ehan.jpg │ ├── gurl.jpg │ ├── hadeh.jpg │ ├── hoo.jpg │ ├── isi cakra.jpg │ ├── jadi sunda.jpg │ ├── kamui.jpg │ ├── kaseglom.jpg │ ├── kat soak.jpg │ ├── kat whoah.jpg │ ├── ko tol.jpg │ ├── lauk.jpg │ ├── marea.jpg │ ├── milik kita.jpg │ ├── mr beans.jpg │ ├── mumut.jpg │ ├── nibba.jpg │ ├── pacaran ga perlu.jpg │ ├── packk.jpg │ ├── pat botol.jpg │ ├── pat hekel.jpg │ ├── pat rik.jpg │ ├── pattt.jpg │ ├── saddd.jpg │ ├── salah.jpg │ ├── so sad.jpg │ ├── sule.jpg │ ├── tapi boong.jpg │ ├── test.jpg │ ├── thaqq.jpg │ ├── ucok.jpg │ ├── uhhh.jpg │ └── wazowski.jpg ├── screenshot.png ├── sound │ ├── DGC-Sound.mp3 │ └── Dgc-sound-mut.mp3 ├── suit │ ├── batu.png │ ├── gunting.png │ └── kertas.png ├── tahta.png ├── tahta.txt └── tts │ ├── nope.txt │ ├── resAr.mp3 │ ├── resEn.mp3 │ ├── resId.mp3 │ ├── resJp.mp3 │ ├── resRu.mp3 │ └── tts.mp3 ├── msgHndlr.js ├── msgHndlr.rar ├── nandaz.data.json ├── newbot.js ├── options.js ├── package.json ├── ramdan.data.json ├── ramdan.js └── tester.data.json /.node-persist/storage/4651253a81c216ecf694139dcbb20d02: -------------------------------------------------------------------------------- 1 | {"key":"executablePath","value":"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"} -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright [2020] [MhankBarBar] 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | 6 |

7 |

8 | 9 |

10 |

11 | 12 | 13 | 14 | 15 |

16 | 17 | 18 | # DGC-ChatBotV3 19 | >Personal Bot DGC WhatsApp, including unique fiture like group commands downloader and other unique thing thats bot for Whatsapp. 20 | 21 | # Required 22 | - Node 12.19.0 23 | - Npm 6.14.8 24 | - ImageMagick-7.0.10-34-Q16-HDRI Here 25 | 26 | # Installing Step 27 | 28 | ``` 29 | git clone https://github.com/MRHRTZ/DGC-ChatBotV3 30 | 31 | cd DGC-ChatBotV3/ 32 | 33 | [For linux = sudo apt-get install npm] 34 | 35 | [For Windows = (install manual from https://nodejs.org>) 36 | 37 | npm i 38 | 39 | npm start 40 | ``` 41 | 42 | # Bug? 43 | - If find a bugs please contact me on WhatsApp 44 | -------------------------------------------------------------------------------- /botfuzzy.js: -------------------------------------------------------------------------------- 1 | const wa = require('@open-wa/wa-automate') 2 | const { ev } = require('@open-wa/wa-automate') 3 | const welcome = require('./lib/welcome') 4 | const fs = require('fs-extra') 5 | const welcomeF = require('./lib/freedom') 6 | const color = require('./lib/color') 7 | const welcomeD = require('./lib/dmff') 8 | const moment = require('moment-timezone') 9 | //const msgHandler = require('./msgHndlr') 10 | const options = require('./options') 11 | let setting = JSON.parse(fs.readFileSync('./lib/config.json')); 12 | let {prefix, banChats, restartState: isRestart, mtc: mtcState, whitelist ,sAdmin, limitCount, memberLimit, groupLimit} = setting 13 | const sesi = process.argv[2] ? process.argv[2] : "MRHRTZ" 14 | 15 | moment.tz.setDefault('Asia/Jakarta').locale('id') 16 | const time = moment().format('DD/MM HH:mm:ss') 17 | // Cache handler and check for file change 18 | function INFOLOG(info) { 19 | return console.log('\x1b[1;34m~\x1b[1;37m>>', '[\x1b[1;33mINF\x1b[1;37m]', time, color(info)) 20 | } 21 | 22 | function restartAwal(hurtz){ 23 | setting.restartState = false 24 | isRestart = false 25 | hurtz.sendText(setting.restartId, '✅ _Restart was Completed!_') 26 | setting.restartId = 'undefined' 27 | fs.writeFileSync('./lib/setting.json', JSON.stringify(setting, null,2)); 28 | } 29 | 30 | require('./msgHndlr') 31 | nocache('./msgHndlr', module => INFOLOG(`${module} Telah diupdate!`)) 32 | 33 | const start = async (hurtz = new Hurtz()) => { 34 | 35 | if(isRestart){restartAwal(hurtz);} 36 | 37 | console.log('[SERVER] Server Started!') 38 | // Force it to keep the current session 39 | hurtz.onStateChanged(state=>{ 40 | // console.log('statechanged', state) 41 | INFOLOG(`Status berubah ${state}`) 42 | if(state==="CONFLICT" || state==="UNLAUNCHED") hurtz.forceRefocus(); 43 | }) 44 | // cron.schedule('* * * * *', () => { 45 | // const obj = [{id: sAdmin, msg: 1}] 46 | // msgLimit = obj 47 | // fs.writeFileSync('./lib/msgLimit.json', JSON.stringify(obj)) 48 | // }); 49 | 50 | // listening on message 51 | 52 | 53 | hurtz.onAnyMessage((async (message) => { 54 | hurtz.getAmountOfLoadedMessages() 55 | .then((msg) => { 56 | if (msg >= 500) { 57 | hurtz.cutMsgCache() 58 | } 59 | }) 60 | // msgHandler(hurtz, message) 61 | // Message Handler (Loaded from recent cache) 62 | require('./msgHndlr')(hurtz, message) 63 | })) 64 | 65 | hurtz.onGlobalParicipantsChanged((async (xixi) => { 66 | // await welcome(hurtz, xixi) 67 | //left(hurtz, heuh) 68 | if (xixi.action == 'remove' || xixi.action == 'leave') { 69 | hurtz.sendTextWithMentions(chat.id, `Semoga tenang dialam sana @${xixi.who} 😊`) 70 | } else if (xixi.action == 'add') { 71 | hurtz.sendTextWithMentions(chat.id, `Welcome new mem @${xixi.who} :)`) 72 | } 73 | console.log(xixi.action+'ing'+' '+xixi.who) 74 | })) 75 | 76 | hurtz.onAddedToGroup((async (chat) => { 77 | // const whitelist = ["6285216490187-1558621310@g.us","6285559038021-1603688917@g.us"] 78 | // if (sender.id === '6285559038021@c.us') return 79 | // let totalMem = await chat.groupMetadata.participants.length 80 | // if (totalMem < 20) { 81 | // hurtz.sendText(chat.id, `Yaampun member nya cuma ${totalMem}, Kalo mau invite bot, minimal jumlah mem ada 20 atau chat owner!`).then(() => hurtz.leaveGroup(chat.id)).then(() => hurtz.deleteChat(chat.id)) 82 | // } else { 83 | // hurtz.sendText(chat.groupMetadata.id, `Halo warga grup *${chat.contact.name}* terimakasih sudah menginvite bot ini, untuk melihat menu silahkan kirim *!menu*`) 84 | // } 85 | // if (!whitelist.include(chat.id)) { 86 | hurtz.sendText(chat.id, `Terimakasih ${chat.contact.name} telah mengundang *DGC ChatBotV3* ☺️\n\nBot ini harus diaktifkan dengan kontak yang diizinkan!\nApabila nomer anda telah terdaftar ketik :\n\n*!aktifkan*\n\nApabila nomer anda tidak terdaftar chat owner (pemilik bot) untuk sewa bot ini wa.me/6285559038021\n\nHave a nice day!`) 87 | // .then(() => hurtz.sendContact(chat.id, '6285559038021@c.us')) 88 | // .then(() => hurtz.leaveGroup(chat.id)) 89 | // .then(() => hurtz.deleteChat(chat.id)) 90 | // } else { 91 | // hurtz.sendText(chat.id, `Halo semua DGC ChatBot siap melayani semuanya, kecuali klo mati :'D`) 92 | // } 93 | })) 94 | 95 | 96 | /*hurtz.onAck((x => { 97 | const { from, to, ack } = x 98 | if (x !== 3) hurtz.sendSeen(to) 99 | }))*/ 100 | 101 | // listening on Incoming Call 102 | hurtz.onIncomingCall(( async (call) => { 103 | await hurtz.sendText(call.peerJid, 'Maaf, saya tidak bisa menerima panggilan. Telah ditetapkan telpon/vc = block') 104 | .then(() => hurtz.contactBlock(call.peerJid)) 105 | })) 106 | } 107 | 108 | 109 | /** 110 | * uncache if there is file change 111 | * @param {string} module module name or path 112 | * @param {function} cb when module updated 113 | */ 114 | function nocache(module, cb = () => { }) { 115 | console.log('Module', `'${module}'`, 'is now being watched for changes') 116 | require('fs').watchFile(require.resolve(module), async () => { 117 | await uncache(require.resolve(module)) 118 | cb(module) 119 | }) 120 | } 121 | 122 | /** 123 | * uncache a module 124 | * @param {string} module module name or path 125 | */ 126 | function uncache(module = '.') { 127 | return new Promise((resolve, reject) => { 128 | try { 129 | delete require.cache[require.resolve(module)] 130 | resolve() 131 | } catch (e) { 132 | reject(e) 133 | } 134 | }) 135 | } 136 | 137 | 138 | wa.create({ 139 | sessionId: 'fuzzy', 140 | ...options(false, start) 141 | }) 142 | .then(hurtz => start(hurtz)) 143 | .catch((error) => console.log(error)) -------------------------------------------------------------------------------- /botnandaz.js: -------------------------------------------------------------------------------- 1 | const wa = require('@open-wa/wa-automate') 2 | const { ev } = require('@open-wa/wa-automate') 3 | const welcome = require('./lib/welcome') 4 | const fs = require('fs-extra') 5 | const welcomeF = require('./lib/freedom') 6 | const color = require('./lib/color') 7 | const welcomeD = require('./lib/dmff') 8 | const moment = require('moment-timezone') 9 | //const msgHandler = require('./msgHndlr') 10 | const options = require('./options') 11 | let setting = JSON.parse(fs.readFileSync('./lib/config.json')); 12 | let {prefix, banChats, restartState: isRestart, mtc: mtcState, whitelist ,sAdmin, limitCount, memberLimit, groupLimit} = setting 13 | const sesi = process.argv[2] ? process.argv[2] : "MRHRTZ" 14 | 15 | moment.tz.setDefault('Asia/Jakarta').locale('id') 16 | const time = moment().format('DD/MM HH:mm:ss') 17 | // Cache handler and check for file change 18 | function INFOLOG(info) { 19 | return console.log('\x1b[1;34m~\x1b[1;37m>>', '[\x1b[1;33mINF\x1b[1;37m]', time, color(info)) 20 | } 21 | 22 | function restartAwal(hurtz){ 23 | setting.restartState = false 24 | isRestart = false 25 | hurtz.sendText(setting.restartId, '✅ _Reset config Completed!_') 26 | setting.restartId = 'undefined' 27 | fs.writeFileSync('./lib/setting.json', JSON.stringify(setting, null,2)); 28 | } 29 | 30 | require('./msgHndlr') 31 | nocache('./msgHndlr', module => INFOLOG(`${module} Telah diupdate!`)) 32 | 33 | const start = async (hurtz = new Hurtz()) => { 34 | 35 | if(isRestart){restartAwal(hurtz);} 36 | 37 | console.log('[SERVER] Server Started!') 38 | // Force it to keep the current session 39 | hurtz.onStateChanged(state=>{ 40 | // console.log('statechanged', state) 41 | INFOLOG(`Status berubah ${state}`) 42 | if(state==="CONFLICT" || state==="UNLAUNCHED") hurtz.forceRefocus(); 43 | }) 44 | // cron.schedule('* * * * *', () => { 45 | // const obj = [{id: sAdmin, msg: 1}] 46 | // msgLimit = obj 47 | // fs.writeFileSync('./lib/msgLimit.json', JSON.stringify(obj)) 48 | // }); 49 | 50 | // listening on message 51 | 52 | 53 | hurtz.onAnyMessage((async (message) => { 54 | hurtz.getAmountOfLoadedMessages() 55 | .then((msg) => { 56 | if (msg >= 500) { 57 | hurtz.cutMsgCache() 58 | } 59 | }) 60 | // msgHandler(hurtz, message) 61 | // Message Handler (Loaded from recent cache) 62 | require('./msgHndlr')(hurtz, message) 63 | })) 64 | 65 | hurtz.onGlobalParicipantsChanged((async (xixi) => { 66 | // await welcome(hurtz, xixi) 67 | //left(hurtz, heuh) 68 | if (xixi.action == 'remove' || xixi.action == 'leave') { 69 | hurtz.sendTextWithMentions(chat.id, `Semoga tenang dialam sana @${xixi.who} 😊`) 70 | } else if (xixi.action == 'add') { 71 | hurtz.sendTextWithMentions(chat.id, `Welcome new mem @${xixi.who} :)`) 72 | } 73 | console.log(xixi.action+'ing'+' '+xixi.who) 74 | })) 75 | 76 | hurtz.onAddedToGroup((async (chat) => { 77 | // const whitelist = ["6285216490187-1558621310@g.us","6285559038021-1603688917@g.us"] 78 | // if (sender.id === '6285559038021@c.us') return 79 | // let totalMem = await chat.groupMetadata.participants.length 80 | // if (totalMem < 20) { 81 | // hurtz.sendText(chat.id, `Yaampun member nya cuma ${totalMem}, Kalo mau invite bot, minimal jumlah mem ada 20 atau chat owner!`).then(() => hurtz.leaveGroup(chat.id)).then(() => hurtz.deleteChat(chat.id)) 82 | // } else { 83 | // hurtz.sendText(chat.groupMetadata.id, `Halo warga grup *${chat.contact.name}* terimakasih sudah menginvite bot ini, untuk melihat menu silahkan kirim *!menu*`) 84 | // } 85 | // if (!whitelist.include(chat.id)) { 86 | hurtz.sendText(chat.id, `Terimakasih ${chat.contact.name} telah mengundang *DGC ChatBotV3* ☺️\n\nBot ini harus diaktifkan dengan kontak yang diizinkan!\nApabila nomer anda telah terdaftar ketik :\n\n*!aktifkan*\n\nApabila nomer anda tidak terdaftar chat owner (pemilik bot) untuk sewa bot ini wa.me/6285559038021\n\nHave a nice day!`) 87 | 88 | // } else { 89 | // hurtz.sendText(chat.id, `Halo semua DGC ChatBot siap melayani semuanya, kecuali klo mati :'D`) 90 | // } 91 | })) 92 | 93 | 94 | /*hurtz.onAck((x => { 95 | const { from, to, ack } = x 96 | if (x !== 3) hurtz.sendSeen(to) 97 | }))*/ 98 | 99 | // listening on Incoming Call 100 | hurtz.onIncomingCall(( async (call) => { 101 | await hurtz.sendText(call.peerJid, 'Maaf, saya tidak bisa menerima panggilan. Telah ditetapkan telpon/vc = block') 102 | .then(() => hurtz.contactBlock(call.peerJid)) 103 | })) 104 | } 105 | 106 | 107 | /** 108 | * uncache if there is file change 109 | * @param {string} module module name or path 110 | * @param {function} cb when module updated 111 | */ 112 | function nocache(module, cb = () => { }) { 113 | console.log('Module', `'${module}'`, 'is now being watched for changes') 114 | require('fs').watchFile(require.resolve(module), async () => { 115 | await uncache(require.resolve(module)) 116 | cb(module) 117 | }) 118 | } 119 | 120 | /** 121 | * uncache a module 122 | * @param {string} module module name or path 123 | */ 124 | function uncache(module = '.') { 125 | return new Promise((resolve, reject) => { 126 | try { 127 | delete require.cache[require.resolve(module)] 128 | resolve() 129 | } catch (e) { 130 | reject(e) 131 | } 132 | }) 133 | } 134 | 135 | 136 | wa.create({ 137 | sessionId: 'nandaz', 138 | ...options(false, start) 139 | }) 140 | .then(hurtz => start(hurtz)) 141 | .catch((error) => console.log(error)) -------------------------------------------------------------------------------- /chara.txt: -------------------------------------------------------------------------------- 1 | async function chara(query) { 2 | return new Promise((resolve, reject) => { 3 | const char = query 4 | Axios.get('https://myanimelist.net/character.php?cat=character&q=' + char) 5 | .then(({ data }) => { 6 | const $ = cheerio.load(data) 7 | const selector = '#content > table > tbody > tr:nth-child(1) > td > a' 8 | const small = $('#content > table > tbody > tr:nth-child(1) > td:nth-child(2) > small').text() 9 | const name = $(selector).text() + ' ' + small 10 | const url = $(selector).attr('href') 11 | selector_mov = '#content > table > tbody > tr:nth-child(1) > td:nth-child(3) > small > a' 12 | let serial = [] 13 | $(selector_mov).get().map((res) => { 14 | const name = $(res).text() 15 | const url = 'https://myanimelist.net' + $(res).attr('href') 16 | serial.push({ 17 | Anime: name, 18 | url: url 19 | }) 20 | }) 21 | 22 | Axios.get(url) 23 | .then(({ data }) => { 24 | const $ = cheerio.load(data) 25 | const res_desc = $('#content > table > tbody > tr > td:nth-child(2)').text().split('\n\n\n\n\n\t ')[1].split(' \n \n')[0].replace(')',')\n') 26 | const img = $('#content > table > tbody > tr > td.borderClass > div > a > img').attr('data-src') 27 | const result = { 28 | status: 200, 29 | name: name, 30 | image: img, 31 | full_desc: res_desc, 32 | url: url, 33 | anime: serial 34 | } 35 | resolve(result) 36 | }).catch(reject) 37 | }).catch(e => reject({ 38 | status: 404, 39 | message: `Character ${query} was not found!` 40 | })) 41 | }) 42 | } 43 | 44 | 45 | 46 | async function charaCheck(query) { 47 | return new Promise((resolve, reject) => { 48 | const char = query 49 | Axios.get('https://myanimelist.net/character.php?cat=character&q=' + char) 50 | .then(({ data }) => { 51 | const $ = cheerio.load(data) 52 | const selector = '#content > table > tbody > tr:nth-child(1) > td > a' 53 | const small = $('#content > table > tbody > tr:nth-child(1) > td:nth-child(2) > small').text() 54 | const name = $(selector).text() + ' ' + small 55 | const url = $(selector).attr('href') 56 | resolve({ 57 | status: 200, 58 | name: name, 59 | message: `Found chara ${name} and added to database!` 60 | }) 61 | 62 | }).catch(e => reject({ 63 | status: 404, 64 | message: `Character ${query} was not found!` 65 | })) 66 | }) 67 | } 68 | 69 | 70 | 71 | let charlist = JSON.parse(fs.readFileSync('./lib/charlist.json')) 72 | 73 | 74 | 75 | 76 | //put down here on case 77 | 78 | 79 | case switch_pref+'charalist': 80 | case switch_pref+'charlist': 81 | if (!isGroupMsg) return hurtz.reply(from, menuPriv, id) 82 | let outlistchar = `*Listing character on the database*\n\n` 83 | for (var i = 0; i < charlist.length; i++) { 84 | outlistchar += `➣ ${charlist[i].full_name}\n` 85 | } 86 | hurtz.reply(from, outlistchar, id) 87 | break 88 | 89 | case switch_pref+'addchara': 90 | if (!isGroupMsg) return hurtz.reply(from, menuPriv, id) 91 | if (args.length === 1) return hurtz.reply(from, `Please add chara query!\nex : *!addchara naruto*`, id) 92 | const qChar = body.slice(10) 93 | await charaCheck(qChar) 94 | .then((ress) => { 95 | let isCharaAva = '' 96 | for (var i = 0; i < charlist.length; i++) { 97 | if (charlist[i].full_name == ress.name) { 98 | isCharaAva += 'true' 99 | } else { 100 | isCharaAva += 'false' 101 | } 102 | } 103 | console.log(isCharaAva) 104 | if (isCharaAva == 'true') { 105 | hurtz.reply(from, `Sorry chara ${qChar} has been added to database!`, id) 106 | } else { 107 | charlist.push({ 108 | full_name: ress.name, 109 | keyword: qChar 110 | }) 111 | fs.writeFileSync('./lib/charlist.json', JSON.stringify(charlist, null, 2)) 112 | hurtz.reply(from, ress.message, id) 113 | } 114 | }) 115 | .catch(e => { 116 | hurtz.reply(from, e.message, id) 117 | }) 118 | break 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /data_tes_antilink.txt: -------------------------------------------------------------------------------- 1 | const isLinks3 = isGroupMsg ? link_.includes(chat.id) : false 2 | if (body.match("https://chat.whatsapp.com")){ 3 | if (isLinks3) { 4 | console.log('DETECT!') 5 | if (!isGroupMsg) return hurtz.reply(dari, `*[ ! ]* Anti promosi hanya untuk grup`,id) 6 | hurtz.reply(dari,`*[ANTI LINK]*Halo bos *${pushname}* 7 | ngeshare link gc lu jngn disini anjeng konsekuensinya?? 8 | 9 | kick & banned permanen.. muehehe :v`,id) 10 | 11 | if (!isBotGroupAdmins) return hurtz.reply(dari, `*[ ! ]* Fitur kick member di anti link gc dapat bekerja jika bot menjadi admin!`,id) // bot no admin 12 | 13 | if (isOwner) { 14 | hurtz.reply(dari, `*[ ! ]* Bot tidak dapat kick pengurus bot!!`,id) // no kick owner bot 15 | } else if (isGroupAdmins) { 16 | hurtz.reply(dari, `*[ ! ]* Bot tidak dapat kick pengurus grup!!`,id) // no kick owner bot 17 | hurtz.reply(dari, util.format(isGroupAdmins), id) 18 | } else { 19 | await hurtz.reply(dari, `boom terkeluarkan!`, id) 20 | } 21 | } else { 22 | console.log('Undetect') 23 | hurtz.sendText(dari, `Ga dinyalain fiturnya gan :v`) 24 | // await hurtz.removeParticipant(groupId, `${sender.id}`) 25 | } 26 | } -------------------------------------------------------------------------------- /debug/if_res.txt: -------------------------------------------------------------------------------- 1 | const badword = ["anjing","goblok","ngentod","bangsat"] 2 | if (args[0] == "Assalamualaikum" || args[0] == "Assalamu'alaikum" || args[0] == "Samlikum" || args[0] == "Samlekom"){ 3 | return hurtz.reply(dari, "Wa'alaikumsalam warahmatullahi wabarokatuh", id) 4 | } else if (badword.includes(args[0].toLowerCase())){ 5 | if (!isGroupAdmins) { 6 | return hurtz.reply(dari, "WOYY JANGAN TOXIC MEMBER BANGSAT SETAN!", id) 7 | .then(() => hurtz.removeParticipant(groupId, sender.id)) 8 | .then(() => { 9 | hurtz.sendText(dari, `Awokawoka mampuss terwisuda🐦`) 10 | }).catch(() => hurtz.sendText(dari, `Untung bot bukan admin kalo ngga udah terkick tuh >:(`)) 11 | } else { 12 | return hurtz.reply(dari, "Mohon jaga ucapannya ya mimin:)", id) 13 | } 14 | } 15 | if (isBlo -------------------------------------------------------------------------------- /debug/ms.txt: -------------------------------------------------------------------------------- 1 | https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/7dd7c181-5eef-4a81-9c29-7ac407165f78/dcrogop-9a2388e9-ad58-4a1d-9f05-43458593d880.jpg/v1/fill/w_1600,h_2028,q_75,strp/eto_yoshimura_showing_her_feet__color__by_kandenrem_dcrogop-fullview.jpg?token\\u003deyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOiIsImlzcyI6InVybjphcHA6Iiwib2JqIjpbW3siaGVpZ2h0IjoiPD0yMDI4IiwicGF0aCI6IlwvZlwvN2RkN2MxODEtNWVlZi00YTgxLTljMjktN2FjNDA3MTY1Zjc4XC9kY3JvZ29wLTlhMjM4OGU5LWFkNTgtNGExZC05ZjA1LTQzNDU4NTkzZDg4MC5qcGciLCJ3aWR0aCI6Ijw9MTYwMCJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19.daIkFo1W1y7NlmUY024DU5hHnYeUP8WNPTXva7vQ0g8 -------------------------------------------------------------------------------- /debug/toimg.txt: -------------------------------------------------------------------------------- 1 | const pepes = await fs.readFileSync('./media/DGC.jpg', { encoding: "base64" }) 2 | await hurtz.setProfilePic(`data:image/jpg;base64,${pepes.toString('base64')}`) 3 | -------------------------------------------------------------------------------- /fuzzy.data.json: -------------------------------------------------------------------------------- 1 | eyJXQUJyb3dzZXJJZCI6IlwidDU0d21kYU9Rb0E4WnlFQkp5WUxZZz09XCIiLCJXQVNlY3JldEJ1bmRsZSI6IntcImtleVwiOlwiZ3ViZmdERFdzNUxtMEVnRnhKdE5KNld2Q3MvRm9CQmxPanFKeTR6ZjJkaz1cIixcImVuY0tleVwiOlwiK2draGFLOWhsaVd2TTJpTEs0bXhiOThKQXM5STF3bVJUWlBKaDl0KzhXaz1cIixcIm1hY0tleVwiOlwiZ3ViZmdERFdzNUxtMEVnRnhKdE5KNld2Q3MvRm9CQmxPanFKeTR6ZjJkaz1cIn0iLCJXQVRva2VuMSI6IlwiQXdYY2QyZjZBMi93eE9pRC8yU1FXN2RDemFBcVdDQS84ZHRXSHhlSEdnVT1cIiIsIldBVG9rZW4yIjoiXCIxQG9DWGp2cEZ5Qi9kalA4MEhlMld2aTZUb2Jzd1VOQklrTHFuM1Y4aGhQMFU1UndtWXJmM1RzTWkxaHJHVnljQ3NSbC90bEtoQkdlZTJoZz09XCIifQ== -------------------------------------------------------------------------------- /google8c714ab7f8dcb901.html: -------------------------------------------------------------------------------- 1 | google-site-verification: google8c714ab7f8dcb901.html 2 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const wa = require('@open-wa/wa-automate') 2 | const { ev } = require('@open-wa/wa-automate') 3 | const welcome = require('./lib/welcome') 4 | const fs = require('fs-extra') 5 | const welcomeF = require('./lib/freedom') 6 | const color = require('./lib/color') 7 | const welcomeD = require('./lib/dmff') 8 | const moment = require('moment-timezone') 9 | //const msgHandler = require('./msgHndlr') 10 | const options = require('./options') 11 | let setting = JSON.parse(fs.readFileSync('./lib/config.json')); 12 | let {prefix, banChats, restartState: isRestart, mtc: mtcState, whitelist ,sAdmin, limitCount, memberLimit, groupLimit} = setting 13 | const sesi = process.argv[2] ? process.argv[2] : "MRHRTZ" 14 | 15 | moment.tz.setDefault('Asia/Jakarta').locale('id') 16 | const time = moment().format('DD/MM HH:mm:ss') 17 | // Cache handler and check for file change 18 | function INFOLOG(info) { 19 | return console.log('\x1b[1;34m~\x1b[1;37m>>', '[\x1b[1;33mINF\x1b[1;37m]', time, color(info)) 20 | } 21 | 22 | function restartAwal(hurtz){ 23 | setting.restartState = false 24 | isRestart = false 25 | hurtz.sendText(setting.restartId, '✅ _Restart was Completed!_') 26 | setting.restartId = 'undefined' 27 | fs.writeFileSync('./lib/setting.json', JSON.stringify(setting, null,2)); 28 | } 29 | 30 | require('./msgHndlr') 31 | nocache('./msgHndlr', module => INFOLOG(`${module} Telah diupdate!`)) 32 | 33 | const start = async (hurtz = new Hurtz()) => { 34 | 35 | if(isRestart){restartAwal(hurtz);} 36 | 37 | console.log('[SERVER] Server Started!') 38 | // Force it to keep the current session 39 | hurtz.onStateChanged(state=>{ 40 | // console.log('statechanged', state) 41 | INFOLOG(`Status berubah ${state}`) 42 | if(state==="CONFLICT" || state==="UNLAUNCHED") hurtz.forceRefocus(); 43 | }) 44 | // cron.schedule('* * * * *', () => { 45 | // const obj = [{id: sAdmin, msg: 1}] 46 | // msgLimit = obj 47 | // fs.writeFileSync('./lib/msgLimit.json', JSON.stringify(obj)) 48 | // }); 49 | 50 | // listening on message 51 | 52 | 53 | hurtz.onMessage((async (message) => { 54 | hurtz.getAmountOfLoadedMessages() 55 | .then((msg) => { 56 | if (msg >= 500) { 57 | hurtz.cutMsgCache() 58 | } 59 | }) 60 | // msgHandler(hurtz, message) 61 | // Message Handler (Loaded from recent cache) 62 | require('./msgHndlr')(hurtz, message) 63 | })) 64 | 65 | hurtz.onGlobalParicipantsChanged((async (xixi) => { 66 | // await welcome(hurtz, xixi) 67 | //left(hurtz, heuh) 68 | if (xixi.action == 'remove' || xixi.action == 'leave') { 69 | hurtz.sendTextWithMentions(chat.id, `Semoga tenang dialam sana @${xixi.who} 😊`) 70 | } else if (xixi.action == 'add') { 71 | hurtz.sendTextWithMentions(chat.id, `Welcome new mem @${xixi.who} :)`) 72 | } 73 | console.log(xixi.action+'ing'+' '+xixi.who) 74 | })) 75 | 76 | hurtz.onAddedToGroup((async (chat) => { 77 | // const whitelist = ["6285216490187-1558621310@g.us","6285559038021-1603688917@g.us"] 78 | // if (sender.id === '6285559038021@c.us') return 79 | // let totalMem = await chat.groupMetadata.participants.length 80 | // if (totalMem < 20) { 81 | // hurtz.sendText(chat.id, `Yaampun member nya cuma ${totalMem}, Kalo mau invite bot, minimal jumlah mem ada 20 atau chat owner!`).then(() => hurtz.leaveGroup(chat.id)).then(() => hurtz.deleteChat(chat.id)) 82 | // } else { 83 | // hurtz.sendText(chat.groupMetadata.id, `Halo warga grup *${chat.contact.name}* terimakasih sudah menginvite bot ini, untuk melihat menu silahkan kirim *!menu*`) 84 | // } 85 | // if (!whitelist.include(chat.id)) { 86 | hurtz.sendText(chat.id, `Terimakasih ${chat.contact.name} telah mengundang *DGC ChatBotV3* ☺️\n\nBot ini harus diaktifkan dengan kontak yang diizinkan!\nApabila nomer anda telah terdaftar ketik :\n\n*!aktifkan*\n\nApabila nomer anda tidak terdaftar chat owner (pemilik bot) untuk sewa bot ini wa.me/6285559038021\n\nHave a nice day!`) 87 | // .then(() => hurtz.sendContact(chat.id, '6285559038021@c.us')) 88 | // .then(() => hurtz.leaveGroup(chat.id)) 89 | // .then(() => hurtz.deleteChat(chat.id)) 90 | // } else { 91 | // hurtz.sendText(chat.id, `Halo semua DGC ChatBot siap melayani semuanya, kecuali klo mati :'D`) 92 | // } 93 | })) 94 | 95 | 96 | /*hurtz.onAck((x => { 97 | const { from, to, ack } = x 98 | if (x !== 3) hurtz.sendSeen(to) 99 | }))*/ 100 | 101 | // listening on Incoming Call 102 | hurtz.onIncomingCall(( async (call) => { 103 | await hurtz.sendText(call.peerJid, 'Maaf, saya tidak bisa menerima panggilan. Telah ditetapkan telpon/vc = block') 104 | .then(() => hurtz.contactBlock(call.peerJid)) 105 | })) 106 | } 107 | 108 | 109 | /** 110 | * uncache if there is file change 111 | * @param {string} module module name or path 112 | * @param {function} cb when module updated 113 | */ 114 | function nocache(module, cb = () => { }) { 115 | console.log('Module', `'${module}'`, 'is now being watched for changes') 116 | require('fs').watchFile(require.resolve(module), async () => { 117 | await uncache(require.resolve(module)) 118 | cb(module) 119 | }) 120 | } 121 | 122 | /** 123 | * uncache a module 124 | * @param {string} module module name or path 125 | */ 126 | function uncache(module = '.') { 127 | return new Promise((resolve, reject) => { 128 | try { 129 | delete require.cache[require.resolve(module)] 130 | resolve() 131 | } catch (e) { 132 | reject(e) 133 | } 134 | }) 135 | } 136 | 137 | 138 | wa.create({ 139 | sessionId: sesi, 140 | ...options(false, start) 141 | }) 142 | .then(hurtz => start(hurtz)) 143 | .catch((error) => console.log(error)) -------------------------------------------------------------------------------- /lib/.brainly.js.swp: -------------------------------------------------------------------------------- 1 | b0nano 3.2W|rootlocalhost/root/whatsapp-bot/lib/brainly.jsU -------------------------------------------------------------------------------- /lib/Insta.js: -------------------------------------------------------------------------------- 1 | const { default: Axios } = require('axios'); 2 | const sesid = '8008647406%3AZOMAWiE1WXFMS0%3A27' 3 | 4 | function getUser(username) { 5 | return new Promise((resolve, reject) => { 6 | try { 7 | Axios.get('https://www.instagram.com/' + username + '/?__a=1', { 8 | headers: { 9 | Cookie: `sessionid=${sesid}` 10 | } 11 | }).then(({ data }) => { 12 | const user = data.graphql.user 13 | // console.log(data) 14 | // console.log(user.biography) 15 | resolve({ 16 | // link: URL.replace('/?__a=1', ''), 17 | id: user.id, 18 | biography: user.biography, 19 | subscribersCount: user.edge_followed_by.count, 20 | subscribtions: user.edge_follow.count, 21 | fullName: user.full_name, 22 | highlightCount: user.highlight_reel_count, 23 | isBusinessAccount: user.is_business_account, 24 | isRecentUser: user.is_joined_recently, 25 | accountCategory: user.business_category_name, 26 | linkedFacebookPage: user.connected_fb_page, 27 | isPrivate: user.is_private, 28 | isVerified: user.is_verified, 29 | profilePic: user.profile_pic_url, 30 | profilePicHD: user.profile_pic_url_hd, 31 | username: user.username, 32 | postsCount: user.edge_owner_to_timeline_media.count, 33 | posts: user.edge_owner_to_timeline_media.edges.map(edge => { 34 | let hasCaption = edge.node.edge_media_to_caption.edges[0]; 35 | return { 36 | id: edge.node.id, 37 | shortCode: edge.node.shortcode, 38 | url: `https://www.instagram.com/p/${edge.node.shortcode}/`, 39 | dimensions: edge.node.dimensions, 40 | imageUrl: edge.node.display_url, 41 | isVideo: edge.node.is_video, 42 | caption: hasCaption ? hasCaption.node.text : '', 43 | commentsCount: edge.node.edge_media_to_comment.count, 44 | commentsDisabled: edge.node.comments_disabled, 45 | timestamp: edge.node.taken_at_timestamp, 46 | likesCount: edge.node.edge_liked_by.count, 47 | location: edge.node.location, 48 | children: edge.node.edge_sidecar_to_children ? edge.node.edge_sidecar_to_children.edges.map(edge => { 49 | return { 50 | id: edge.node.id, 51 | shortCode: edge.node.shortcode, 52 | dimensions: edge.node.dimensions, 53 | imageUrl: edge.node.display_url, 54 | isVideo: edge.node.is_video, 55 | } 56 | }) : [] 57 | } 58 | }) || [] 59 | }); 60 | }) 61 | } catch (e) { 62 | console.log(e) 63 | } 64 | }) 65 | } 66 | 67 | 68 | 69 | 70 | function getPost(code) { 71 | return new Promise(function (resolve, reject) { 72 | if (!code) return reject(new Error('Argument "code" must be specified')); 73 | 74 | Axios.get('https://www.instagram.com/p/' + code + '/?__a=1', { 75 | headers: { 76 | Cookie: `sessionid=${sesid}` 77 | } 78 | }).then(({ data }) => { 79 | const post = data.graphql.shortcode_media 80 | isVid = post.is_video ? post.video_url : post.display_url 81 | resolve({ 82 | media_id: post.id, 83 | shortcode: post.shortcode, 84 | text: post.accessibility_caption, 85 | capt: post.edge_media_to_caption.edges[0].node.text, 86 | url: isVid, 87 | owner_user: post.owner.username, 88 | date: post.taken_at_timestamp, 89 | }) 90 | }); 91 | }); 92 | } 93 | 94 | function searchUser(query) { 95 | return new Promise((resolve, reject) => { 96 | Axios.get('https://www.instagram.com/web/search/topsearch/?query=' + query , { 97 | headers: { 98 | Cookie: `sessionid=${sesid}` 99 | } 100 | }).then(({ data }) => { 101 | const all = data.users 102 | const result = [] 103 | for (let i = 0; i < all.length; i++) { 104 | result.push({ 105 | number: all[i].position + 1, 106 | pk_id: all[i].user.pk, 107 | username: all[i].user.username, 108 | name: all[i].user.full_name, 109 | latest_reel: all[i].user.latest_reel_media, 110 | is_private: all[i].user.is_private, 111 | is_verified: all[i].user.is_verified, 112 | pic: all[i].user.profile_pic_url 113 | }) 114 | } 115 | resolve(result) 116 | }).catch(reject) 117 | }) 118 | } 119 | 120 | module.exports.getUser = getUser 121 | module.exports.getPost = getPost 122 | module.exports.searchUser = searchUser -------------------------------------------------------------------------------- /lib/NSFW.json: -------------------------------------------------------------------------------- 1 | ["6285559038021-1597279408@g.us","6285559038021-1603688917@g.us","966572592040-1605936318@g.us","6281311850715-1605290009@g.us","6281311850715-1605290009@g.us","6281311850715-1605290009@g.us","6281311850715-1605290009@g.us","6281311850715-1605290009@g.us"] -------------------------------------------------------------------------------- /lib/antilink.json: -------------------------------------------------------------------------------- 1 | [ 2 | "27731052724-1606073820@g.us", 3 | "6285796782622-1599401714@g.us", 4 | "6285340137116-1604642870@g.us", 5 | "6281288606414-1602045119@g.us", 6 | "18092566068-1607055744@g.us", 7 | "6289523258649-1604595598@g.us", 8 | "6288233282599-1601304366@g.us", 9 | "6288238221335-1599454500@g.us", 10 | "6289523731135-1607173666@g.us", 11 | "6285559038021-1603588233@g.us", 12 | "966572592040-1607332739@g.us", 13 | "6285382455124-1603093165@g.us", 14 | "6282164942592-1593576164@g.us", 15 | "6281339263184-1602325813@g.us", 16 | "6288279620103-1585830877@g.us", 17 | "27632122007-1608630746@g.us", 18 | "27798047077-1596577393@g.us", 19 | "6281584142535-1599968792@g.us", 20 | "447393449331-1606402794@g.us", 21 | "27727649602-1597074742@g.us", 22 | "6289502799316-1605194459@g.us", 23 | "6285559038021-1605869468@g.us", 24 | "6289628310364-1591412063@g.us", 25 | "6281776952371-1588857268@g.us", 26 | "6288258030557-1597672927@g.us", 27 | "6287723637392-1608550210@g.us", 28 | "6283142321131-1609239189@g.us", 29 | "6289652018855-1608729648@g.us", 30 | "919025374268-1606401934@g.us", 31 | "6285156902925-1594041349@g.us", 32 | "6285860637879-1606305531@g.us", 33 | "6283805191681-1604633071@g.us", 34 | "6288295863159-1604820077@g.us", 35 | "6285721733043-1609557240@g.us" 36 | ] -------------------------------------------------------------------------------- /lib/ban.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs-extra') 2 | 3 | exports.ban = async function (message) { 4 | numBan = message.body.substring(message.body.indexOf('@') + 1) 5 | fs.appendFileSync('./lib/ban.txt', `${message.from} ${numBan}@c.us\n`) 6 | console.log(numBan) 7 | } 8 | 9 | exports.unban = async function (message) { 10 | numUnBan = message.body.substring(message.body.indexOf('@') + 1) 11 | fs.readFile('./lib/ban.txt', { encoding: 'utf-8'}, function (err, data) { 12 | if (err) throw err 13 | 14 | let dataArray = data.split('\n') 15 | const key = `${message.from} ${numUnBan}@c.us` 16 | let lastI = -1 17 | 18 | for (let i = 0; i < dataArray.length; i++) { 19 | if (dataArray[i].includes(key)) { 20 | lastI = i 21 | break 22 | } 23 | } 24 | dataArray.splice(lastI, 1) 25 | const dataUpdate = dataArray.join('\n') 26 | fs.writeFile('./lib/ban.txt', dataUpdate, function(err) { 27 | if (err) throw err 28 | }) 29 | }) 30 | } -------------------------------------------------------------------------------- /lib/banned.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /lib/brainly.js: -------------------------------------------------------------------------------- 1 | const brainly = require('brainly-scraper-v2') 2 | 3 | function BrainlySearch(pertanyaan, jumlah, lang, cb) { 4 | return new Promise((resolve, reject) => { 5 | brainly(pertanyaan.toString(),Number(jumlah),lang.toString()).then((res) => { 6 | let brainlyResult = [] 7 | res.data.forEach((ask) => { 8 | let opt = { 9 | pertanyaan: ask.pertanyaan, 10 | fotoPertanyaan: ask.questionMedia 11 | } 12 | ask.jawaban.forEach(answer => { 13 | opt.jawaban = { 14 | judulJawaban: answer.text, 15 | fotoJawaban: answer.media 16 | } 17 | }) 18 | brainlyResult.push(opt) 19 | resolve(brainlyResult) 20 | }) 21 | }).catch(err => { 22 | console.log(err.error) 23 | reject(err) 24 | }) 25 | }) 26 | } 27 | 28 | module.exports.BrainlySearch = BrainlySearch -------------------------------------------------------------------------------- /lib/chara/27632122007-1608630746@g.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "active", 3 | "claimed_keyword": [], 4 | "claimed_by_name": [], 5 | "claimed_by_sender": [], 6 | "anime_result": { 7 | "status": 200, 8 | "name": "Emil ", 9 | "image": [ 10 | "https://cdn.myanimelist.net/images/characters/14/346687.jpg" 11 | ], 12 | "full_desc": "Emil (エミール)\nA mysterious creature emerged from inside of a machine lifeform and set up a shop afer obtaining a new body. While he calls himself Emil, his true identity is a mystery. He harbors latent magical power, but most of his memory is gone due to the long years that have passed.\n\n(Source: Nier Wiki)", 13 | "url": "https://myanimelist.net/character/157534/Emil", 14 | "anime": [], 15 | "manga": [ 16 | { 17 | "name": "NieR:Automata", 18 | "url": "https://myanimelist.net/manga/108495/NieR_Automata" 19 | } 20 | ] 21 | }, 22 | "chara_name": "Emil", 23 | "groupId": "27632122007-1608630746@g.us", 24 | "msgID": [ 25 | "false_27632122007-1608630746@g.us_3A020BAD0E4564D1D7B5", 26 | "false_27632122007-1608630746@g.us_3AA4A14557F8B92A4FCD", 27 | "false_27632122007-1608630746@g.us_DD63BF176E4E8F8649D93B9AFDCB62AF", 28 | "false_27632122007-1608630746@g.us_3A505E9DBEC8FE48DA0C", 29 | "false_27632122007-1608630746@g.us_098B2BA4AA8B25F20A69380BB130972F", 30 | "false_27632122007-1608630746@g.us_3AE8E9A156B25EC9A4A0" 31 | ], 32 | "messages": [ 33 | "!play tiktok by mabel", 34 | "!play mood swings by mabel", 35 | "Thanks", 36 | "!vidoe dior", 37 | "http://telekom.com.global.prod.fastly.net/le.php?sponsore=&dir=/YIteWJ/x1.php?profileid=780036858&payment?f=PPqCYm", 38 | "!limit" 39 | ] 40 | } -------------------------------------------------------------------------------- /lib/chara/6281311850715-1605290009@g.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "active", 3 | "claimed_keyword": [], 4 | "claimed_by_name": [], 5 | "claimed_by_sender": [], 6 | "anime_result": { 7 | "status": 200, 8 | "name": "Toothy Boy ", 9 | "image": [ 10 | "https://mrhrtz-wabot.000webhostapp.com/cooltext372748737425114.png" 11 | ], 12 | "full_desc": "Toothy Boy (こぼれるようなの少年)\nThe main character and victim from the bullies.", 13 | "url": "https://myanimelist.net/character/167436/Toothy_Boy", 14 | "anime": [ 15 | { 16 | "Anime": "Nido to Mezamenu Komori Uta", 17 | "url": "https://myanimelist.net/anime/7273/Nido_to_Mezamenu_Komori_Uta" 18 | } 19 | ], 20 | "manga": [] 21 | }, 22 | "chara_name": "toothy", 23 | "groupId": "6281311850715-1605290009@g.us", 24 | "msgID": [ 25 | "false_6281311850715-1605290009@g.us_M4VYKLVG3DDPRRSLPPX9", 26 | "false_6281311850715-1605290009@g.us_ABWMCB95KY6KLFK9AWIQ", 27 | "false_6281311850715-1605290009@g.us_C6X4YEJ6DJEAGNAJTPES", 28 | "false_6281311850715-1605290009@g.us_2EEC11B6E4631DF7DE4E2AB3E73472F5", 29 | "false_6281311850715-1605290009@g.us_ETTS0Z0AHM7DKQVYHGRL", 30 | "false_6281311850715-1605290009@g.us_788F7C07C4D99B4F28FD9B195ABFF236", 31 | "false_6281311850715-1605290009@g.us_LRTS2M1SG1DOAPGNCM5Z" 32 | ], 33 | "messages": [ 34 | "Selamat Tinggal @966572592040 👋", 35 | "Maaf jonaz, Command *#googleimg* tidak di mengerti bot", 36 | "Maaf jonaz, Command *#trapcard* tidak di mengerti bot", 37 | "!tts ar هاي", 38 | "Hai ؏ــاصوفء الششـبحء🏴‍☠️📌. sayangnya.. bot tidak mengerti perintah !tts, mohon ketik *#menu*\n\nDan ketik *#limit* untuk cek sisa limit request anda", 39 | "!tts ar يديوث يا بنيك لك امك يديوث يا زنوه بشخط اهلك واحد ورا الثاني يا يديوث بنيك لك امك يديوث يا كسمك ع كسختك بنيك لك اختك كسمك ع كسختك يديوث يا يمهان يرخيص بسفر امك ع بيت الدعاره ديوث بهين لك امك يا شرايك يديوث اسمع بنيك لك امك لا خلاص بمسك اختك ولا يا اقولك امك احلا لا خلاص يا بشخل اختك الصغيره شخل اعنفها تعنيف من كسها يولد بقرص كسها", 40 | "Hai ؏ــاصوفء الششـبحء🏴‍☠️📌. sayangnya.. bot tidak mengerti perintah !tts, mohon ketik *#menu*\n\nDan ketik *#limit* untuk cek sisa limit request anda" 41 | ] 42 | } -------------------------------------------------------------------------------- /lib/chara/6283805191681-1604633071@g.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "unactive", 3 | "claimed_keyword": [], 4 | "claimed_by_name": [], 5 | "claimed_by_sender": [], 6 | "anime_result": { 7 | "status": 200, 8 | "name": "Tornado, Panavia ", 9 | "image": [ 10 | "https://cdn.myanimelist.net/images/characters/11/74608.jpg" 11 | ], 12 | "full_desc": "Panavia Tornado (パナビア・トーネード)\nOVA & manga character.", 13 | "url": "https://myanimelist.net/character/28952/Panavia_Tornado", 14 | "anime": [ 15 | { 16 | "Anime": "Aoi Umi no Tristia", 17 | "url": "https://myanimelist.net/anime/1586/Aoi_Umi_no_Tristia" 18 | } 19 | ], 20 | "manga": [] 21 | }, 22 | "chara_name": "tornado", 23 | "groupId": "6283805191681-1604633071@g.us", 24 | "msgID": [ 25 | "false_6283805191681-1604633071@g.us_579652ED2112BE21425D74AA94D66503", 26 | "false_6283805191681-1604633071@g.us_67621FA41175EA09F42F89BE93E8ECE7", 27 | "false_6283805191681-1604633071@g.us_24ADBEAABA165EF77B3639475702EB44" 28 | ], 29 | "messages": [ 30 | "Bukan", 31 | "Itu veda", 32 | "!charagame disable" 33 | ] 34 | } -------------------------------------------------------------------------------- /lib/chara/6285559038021-1603588233@g.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "unactive", 3 | "anime_result": { 4 | "status": 200, 5 | "name": "SF-A2 miki (Mikina Freesis, Mickina Olliba)", 6 | "image": "https://cdn.myanimelist.net/images/characters/7/225565.jpg", 7 | "full_desc": "SF-A2 miki (SF-A2 開発コード miki)\nSF-A2 codename miki, is a Japanese VOCALOID developed and distributed by AH-Software Co. Ltd., and was released in December 2009 for the VOCALOID2 engine. Her voice is provided by the Japanese female singer, Miki Furukawa.\n\n\nAlternative names/personalities:\nAku no Musume: Mikina Freesis (ミキナ=フリージス)\nVenomania-kou no Kyouki: Mickina Olliba", 8 | "url": "https://myanimelist.net/character/94963/SF-A2_miki", 9 | "anime": [], 10 | "manga": [ 11 | { 12 | "name": "Aku no Taizai: Venomania-kou no KyoukiAku no Musume", 13 | "url": "https://myanimelist.net/manga/61877/Aku_no_Taizai__Venomania-kou_no_Kyouki" 14 | } 15 | ] 16 | }, 17 | "chara_name": "miki", 18 | "groupId": "6285559038021-1603588233@g.us", 19 | "msgID": [ 20 | "false_6285559038021-1603588233@g.us_964E641629FB4E6E2807C0E0A0D9815C", 21 | "false_6285559038021-1603588233@g.us_B8D08603BC5AEDB120B9965AF3423389", 22 | "false_6285559038021-1603588233@g.us_5F241C7833E5320CB58F6250E0094440", 23 | "false_6285559038021-1603588233@g.us_8ACF8ED6B121D8D46BB32812EF0F3D9F", 24 | "false_6285559038021-1603588233@g.us_95FF87F54DBC14C6A2BD29AF04B0D591", 25 | "false_6285559038021-1603588233@g.us_5FD71C57D829146DBF14F65718EA48D6", 26 | "false_6285559038021-1603588233@g.us_F7F2905FB6FADAA62526C176075488A6", 27 | "false_6285559038021-1603588233@g.us_E08C69ACAC54F49DB62CF0ECF1F3FB68", 28 | "false_6285559038021-1603588233@g.us_BEAA4BB5A1B5C557D92B762DE9A39DF9", 29 | "false_6285559038021-1603588233@g.us_66CC39943353BBA23336D5711455931B", 30 | "false_6285559038021-1603588233@g.us_8810D7795E0C9A9B6B4FEDF6A1463B6A", 31 | "false_6285559038021-1603588233@g.us_63874DDAEDB197F7D0FEB8AF2A1B2734", 32 | "false_6285559038021-1603588233@g.us_B903FE43C82F500530D33C05E43674D4", 33 | "false_6285559038021-1603588233@g.us_AE229DF6A9A1A46C8EAACBEED8673520" 34 | ], 35 | "messages": [ 36 | "11", 37 | "12", 38 | "siapa ini ler", 39 | "Cara tebaknya claim", 40 | "Wait gw liat console dlu :v", 41 | "ini doraemon", 42 | "!claim doraemon", 43 | "Coba miki", 44 | "Tulis claim", 45 | "Kek gini", 46 | "!claim miki", 47 | "!gallery", 48 | "!gallery @6289636035164", 49 | "!charagame disable" 50 | ] 51 | } -------------------------------------------------------------------------------- /lib/chara/6285559038021-1603688917@g.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "unactive", 3 | "claimed_keyword": [], 4 | "claimed_by_name": [], 5 | "claimed_by_sender": [], 6 | "anime_result": { 7 | "status": 200, 8 | "name": "Nara, Shikamaru (Shadow Boy)", 9 | "image": [ 10 | "https://cdn.myanimelist.net/images/characters/3/131315.jpg" 11 | ], 12 | "full_desc": "Shikamaru Nara (奈良 シカマル)\nAge: 12 (I); 15 (II)\nBirthday: September 22\nHoroscope: Virgo\nBlood Type: AB\nHeight: 170 cm\nWeight: 53.4 kg\nRank: Genin (I); Chuunin (II)\nLikes: taking naps, playing shogi\nDislikes: Hard-boiled eggs\n\nShikamaru is an extremely unenthusiastic person, and as such lives his life avoiding work. This is partly due to him seeking paths of least resistance, as he often chooses to do things he would otherwise not do if people nag him enough. In his free time he typically takes naps, watches clouds, and plays strategy games such as Shogi and Go. When put into a situation where he potentially needs to put effort into something, he attempts to try to find a way to avoid it such as forfeiting a battle or by pretending to be preoccupied with something else. In the instances where he can not avoid these situations, Shikamaru tends to remark \"how troublesome.\"\n\nDespite his lazy tendencies, Shikamaru is extremely intelligent. His teacher, Asuma, found Shikamaru to have an IQ of over 200, and learned that Shikamaru's poor grades were a result of him finding lifting a pencil to be too much work for him. Nevertheless, Shikamaru works very well with his teammates, as their fathers were teamed together in their youth. Of his teammates, Shikamaru is closest with Chouji, who repays Shikamaru's confidence in him with unyielding loyalty. Shikamaru also has a strong bond with Asuma, often spending time with him playing strategy games. After Asuma's death, he even vows to protect Asuma and Kurenai's unborn child for his teacher's sake. Shikamaru has stated that he will make the child his apprentice someday.\n\nOne of Shikamaru's more distinctive characteristics is that he finds all women to be bossy and \"a pain.\" Contrary to this opinion, he has expressed a notably mature interest in marriage and raising a family with a son and daughter. Ironically, Shikamaru seems to constantly find himself surrounded by the very same strong-willed and bossy women he dislikes. In addition to his own mother, and being surrounded by bossy females, he usually ends up fighting against such women. Shikamaru has had a number of his appearances coincide with those of Temari. When they make their Part II debut together, Naruto Uzumaki asks if they are on a date, though both Shikamaru and Temari state that this is not the case.\n\nWhen the need arises, Shikamaru is quick to abandon his lazy nature and act appropriately to complete a mission or save his teammates. Using his Shadow Imitation Technique, the signature technique of his clan, he can capture the shadow of an opponent to either keep them immobilized or force them to mimic his movements. This ability causes Shikamaru to frequently take the task of stalling enemies so that his comrades can get to safety or to simply buy time. Although this role puts him in a dangerous position once he can no longer stall the opponent, Shikamaru is willing to serve it, feeling that sacrificing his life to ensure the safety of his friends is worth it. He then considers every element that is relevant to the situation at hand and analyzes the information to its fullest, planning out a battle ten moves in advance and devising over a hundred strategies to use against an opponent. This combination of intelligence and dedication to his teammates causes Shikamaru to become the first of the primary Konoha Genin to advance to the rank of Chunin.\n\nOnce becoming a Chunin, Shikamaru's father teaches him how to use his shadow technique more effectively, by using it to choke an opponent. This more interactive capability with his shadow is put to great use over the timeskip, and by Part II Shikamaru becomes proficient at using multiple shadow-based techniques at once. He is also able to manipulate his shadow to lift from the ground and either grab or throw weapons simply by utilizing an opponent's shadow for the same purpose. After he comes into the possession of Asuma's brass knuckles, Shikamaru learns to channel his shadow into them, using them to immobilize opponents by throwing them at an opponent's shadow to capture them and save himself the energy.\n\nShikamaru goes to the Chunin Exams without a particular objective, not caring if he becomes a Chunin or not. In the finals he fights Temari, and would've won, but he decided to forfeit. During the invasion of Konoha, Shikamaru helps Naruto and Sakura to find Sasuke by staying behind and creating a diversionary ambush against the Sound Ninja who were pursuing them. Even though he forfeited the match, he was still promoted to Chunin, mostly because of his incredible way of thinking displayed throughout it. As a result of his early advance to the rank of Chunin, Shikamaru plays a considerably more active role in the plot than most members of the Konoha 11, albeit more indirectly than the primary cast. His first assignment as a Chunin is to assemble a team to retrieve Sasuke Uchiha, who has betrayed Konoha in search for Orochimaru to gain greater power. This forces Shikamaru's team to defeat Sasuke's escorts, the Sound Four. While his teammates defeat their enemies, Sasuke is able to escape, despite their best efforts.\n\nIn Part II, Shikamaru is assigned to track down two members of Akatsuki. While he and his team manage to find their targets with relative ease, Akatsuki member Hidan is able to kill Asuma during the course of a battle. After Asuma's funeral, Shikamaru sets out with the surviving members of Team 10 and Kakashi to avenge their sensei. As his team deals with Hidan's partner, Shikamaru is able to defeat Hidan in memory of Asuma, and single-handedly weakens Akatsuki by one member.\n\nIn chapter 649 of the manga, Shikamaru states that when Naruto becomes the next Hokage, Naruto doesn't have a smart brother willing to be his adviser like the first Hokage and there would be no better adviser for Naruto other than him.\n\nYears later, Shikamaru married Temari and have a son named Shikadai.", 13 | "url": "https://myanimelist.net/character/2007/Shikamaru_Nara", 14 | "anime": [ 15 | { 16 | "Anime": "Naruto SD: Rock Lee no Seishun Full-Power Ninden", 17 | "url": "https://myanimelist.net/anime/12979/Naruto_SD__Rock_Lee_no_Seishun_Full-Power_Ninden" 18 | }, 19 | { 20 | "Anime": "Naruto: Honoo no Chuunin Shiken! Naruto vs. Konohamaru!!", 21 | "url": "https://myanimelist.net/anime/10686/Naruto__Honoo_no_Chuunin_Shiken_Naruto_vs_Konohamaru" 22 | }, 23 | { 24 | "Anime": "Naruto: Shippuuden Movie 6 - Road to Ninja", 25 | "url": "https://myanimelist.net/anime/13667/Naruto__Shippuuden_Movie_6_-_Road_to_Ninja" 26 | }, 27 | { 28 | "Anime": "Naruto: Shippuuden Movie 5 - Blood Prison", 29 | "url": "https://myanimelist.net/anime/10589/Naruto__Shippuuden_Movie_5_-_Blood_Prison" 30 | }, 31 | { 32 | "Anime": "Naruto Soyokazeden Movie: Naruto to Mashin to Mitsu no Onegai Dattebayo!!", 33 | "url": "https://myanimelist.net/anime/10659/Naruto_Soyokazeden_Movie__Naruto_to_Mashin_to_Mitsu_no_Onegai_Dattebayo" 34 | }, 35 | { 36 | "Anime": "Boruto: Naruto the Movie - Naruto ga Hokage ni Natta Hi", 37 | "url": "https://myanimelist.net/anime/32365/Boruto__Naruto_the_Movie_-_Naruto_ga_Hokage_ni_Natta_Hi" 38 | }, 39 | { 40 | "Anime": "Boruto: Naruto Next Generations", 41 | "url": "https://myanimelist.net/anime/34566/Boruto__Naruto_Next_Generations" 42 | }, 43 | { 44 | "Anime": "Naruto", 45 | "url": "https://myanimelist.net/anime/20/Naruto" 46 | }, 47 | { 48 | "Anime": "Boruto: Naruto the Movie", 49 | "url": "https://myanimelist.net/anime/28755/Boruto__Naruto_the_Movie" 50 | }, 51 | { 52 | "Anime": "The Last: Naruto the Movie", 53 | "url": "https://myanimelist.net/anime/16870/The_Last__Naruto_the_Movie" 54 | }, 55 | { 56 | "Anime": "Naruto Narutimate Hero 3: Tsuini Gekitotsu! Jounin vs. Genin!! Musabetsu Dairansen Taikai Kaisai!!", 57 | "url": "https://myanimelist.net/anime/1074/Naruto_Narutimate_Hero_3__Tsuini_Gekitotsu_Jounin_vs_Genin_Musabetsu_Dairansen_Taikai_Kaisai" 58 | }, 59 | { 60 | "Anime": "Naruto: Shippuuden", 61 | "url": "https://myanimelist.net/anime/1735/Naruto__Shippuuden" 62 | }, 63 | { 64 | "Anime": "Naruto: Dai Katsugeki!! Yuki Hime Shinobu Houjou Dattebayo! - Konoha no Sato no Dai Undoukai", 65 | "url": "https://myanimelist.net/anime/2248/Naruto__Dai_Katsugeki_Yuki_Hime_Shinobu_Houjou_Dattebayo_-_Konoha_no_Sato_no_Dai_Undoukai" 66 | }, 67 | { 68 | "Anime": "Naruto: Shippuuden Movie 3 - Hi no Ishi wo Tsugu Mono", 69 | "url": "https://myanimelist.net/anime/6325/Naruto__Shippuuden_Movie_3_-_Hi_no_Ishi_wo_Tsugu_Mono" 70 | }, 71 | { 72 | "Anime": "Naruto Movie 2: Dai Gekitotsu! Maboroshi no Chiteiiseki Dattebayo!", 73 | "url": "https://myanimelist.net/anime/936/Naruto_Movie_2__Dai_Gekitotsu_Maboroshi_no_Chiteiiseki_Dattebayo" 74 | }, 75 | { 76 | "Anime": "Naruto: Shippuuden Movie 2 - Kizuna", 77 | "url": "https://myanimelist.net/anime/4437/Naruto__Shippuuden_Movie_2_-_Kizuna" 78 | }, 79 | { 80 | "Anime": "Naruto: Shippuuden - Shippuu! \"Konoha Gakuen\" Den", 81 | "url": "https://myanimelist.net/anime/4134/Naruto__Shippuuden_-_Shippuu_Konoha_Gakuen_Den" 82 | }, 83 | { 84 | "Anime": "Naruto: Shippuuden Movie 1", 85 | "url": "https://myanimelist.net/anime/2472/Naruto__Shippuuden_Movie_1" 86 | } 87 | ], 88 | "manga": [ 89 | { 90 | "name": "NarutoRock Lee no Seishun Full-Power NindenNaruto: Konoha Shinden - Yukemuri NinpouchouBoruto: Naruto Next GenerationsNaruto Hiden SeriesNaruto Gaiden: Nanadaime Hokage to Akairo no HanatsuzukiRoad to Ninja: Naruto the Movie", 91 | "url": "https://myanimelist.net/manga/11/Naruto" 92 | } 93 | ] 94 | }, 95 | "chara_name": "shikamaru", 96 | "groupId": "6285559038021-1603688917@g.us", 97 | "msgID": [ 98 | "false_6285559038021-1603688917@g.us_1099B1957FFD372685DC7BF3A5810EDD", 99 | "false_6285559038021-1603688917@g.us_3EB0DFBE32B3A85AAE6E", 100 | "false_6285559038021-1603688917@g.us_41B6C2595111593FEB513C9B6B5435AD", 101 | "false_6285559038021-1603688917@g.us_FD87EE7294D89D8EEA5CF7300B84A149", 102 | "false_6285559038021-1603688917@g.us_E20EA754F424E8C96D40F91D1ED46F21", 103 | "false_6285559038021-1603688917@g.us_2ADFDAAC9479FDF414EE80FFE26573C7", 104 | "false_6285559038021-1603688917@g.us_3EB012489D98FFEEADA7" 105 | ], 106 | "messages": [ 107 | "That made disabled", 108 | "I'm forgot what i add :v", 109 | "Case", 110 | "**", 111 | "🐦", 112 | "See my code", 113 | "!charagame disable" 114 | ] 115 | } -------------------------------------------------------------------------------- /lib/chara/6285559038021-1605869468@g.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "active", 3 | "claimed_keyword": [], 4 | "claimed_by_name": [], 5 | "claimed_by_sender": [], 6 | "anime_result": { 7 | "status": 200, 8 | "name": "Moriyama, Jin ", 9 | "image": [ 10 | "https://mrhrtz-wabot.000webhostapp.com/cooltext372748737425114.png" 11 | ], 12 | "full_desc": "Jin Moriyama (森山仁)\nNo biography written.", 13 | "url": "https://myanimelist.net/character/143132/Jin_Moriyama", 14 | "anime": [ 15 | { 16 | "Anime": "Burning Blood", 17 | "url": "https://myanimelist.net/anime/9177/Burning_Blood" 18 | } 19 | ], 20 | "manga": [] 21 | }, 22 | "chara_name": "Jin mori", 23 | "groupId": "6285559038021-1605869468@g.us", 24 | "msgID": [ 25 | "false_6285559038021-1605869468@g.us_69D5E7E5C7B1A89E15A15B231106D99C", 26 | "false_6285559038021-1605869468@g.us_F7C15229473F307DD8ACC3D0DF02D0B3", 27 | "false_6285559038021-1605869468@g.us_668C648CFC02E675B6515D741D72DC5A", 28 | "false_6285559038021-1605869468@g.us_9E545EC3D3D5BE337C05E1504C517C7D", 29 | "false_6285559038021-1605869468@g.us_C055EEA446D5FB68220358920469B0D8", 30 | "false_6285559038021-1605869468@g.us_8A11AA24927B88D20E9383E6FB24577F" 31 | ], 32 | "messages": [ 33 | "Offline", 34 | "!tts ar ‏لا تقبل بأقل مما تستحق.. فأغلب أوجاعك تبدأ عندما تتنازل", 35 | "!tts en ‏لا تقبل بأقل مما تستحق.. فأغلب أوجاعك تبدأ عندما تتنازل", 36 | "!tts EN ‏لا تقبل بأقل مما تستحق.. فأغلب أوجاعك تبدأ عندما تتنازل", 37 | "Orang Indonesia?", 38 | "Streess" 39 | ] 40 | } -------------------------------------------------------------------------------- /lib/chara/6285721733043-1609557240@g.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "unactive", 3 | "claimed_keyword": [], 4 | "claimed_by_name": [], 5 | "claimed_by_sender": [], 6 | "anime_result": { 7 | "status": 200, 8 | "name": "Levi ", 9 | "image": [ 10 | "https://cdn.myanimelist.net/images/characters/2/241413.jpg" 11 | ], 12 | "full_desc": "Levi (リヴァイ)\nBirthday: December 25\nHeight: 160 cm (5'3\")\nWeight: 65 kg (143 lbs)\nAffiliations: Scouting Legion, Special Operations Squad\n\nLevi is known as humanity's most powerful soldier. He's ranked as Captain of the Scouting Legion division. Levi is also the leader of the Special Operations Squad, an elite team that he hand-picked in order to protect Eren Yeager. While it is said that he is blunt and unapproachable, it is noted that he has a strong respect for structure and discipline. There are rumors that he was originally part of underground crime before he became a soldier. Although he often appears to be unfriendly, he cares deeply for his team and has never undervalued human life. He is also a notorious clean-freak.\n\nIt is later revealed that his full name is Levi Ackerman.\nNote: Levi is the official English translation by Kodansha.", 13 | "url": "https://myanimelist.net/character/45627/Levi", 14 | "anime": [ 15 | { 16 | "Anime": "Shingeki no Kyojin: Kuinaki Sentaku", 17 | "url": "https://myanimelist.net/anime/25781/Shingeki_no_Kyojin__Kuinaki_Sentaku" 18 | }, 19 | { 20 | "Anime": "Shingeki! Kyojin Chuugakkou", 21 | "url": "https://myanimelist.net/anime/31374/Shingeki_Kyojin_Chuugakkou" 22 | }, 23 | { 24 | "Anime": "Shingeki no Kyotou", 25 | "url": "https://myanimelist.net/anime/35122/Shingeki_no_Kyotou" 26 | }, 27 | { 28 | "Anime": "Shingeki no Kyojin Season 2", 29 | "url": "https://myanimelist.net/anime/25777/Shingeki_no_Kyojin_Season_2" 30 | }, 31 | { 32 | "Anime": "Shingeki no Kyojin Movie 2: Jiyuu no Tsubasa", 33 | "url": "https://myanimelist.net/anime/23777/Shingeki_no_Kyojin_Movie_2__Jiyuu_no_Tsubasa" 34 | }, 35 | { 36 | "Anime": "Shingeki no Kyojin: The Final Season", 37 | "url": "https://myanimelist.net/anime/40028/Shingeki_no_Kyojin__The_Final_Season" 38 | }, 39 | { 40 | "Anime": "Shingeki no Kyojin Season 3 Part 2", 41 | "url": "https://myanimelist.net/anime/38524/Shingeki_no_Kyojin_Season_3_Part_2" 42 | }, 43 | { 44 | "Anime": "Shingeki no Kyojin: Chronicle", 45 | "url": "https://myanimelist.net/anime/42091/Shingeki_no_Kyojin__Chronicle" 46 | }, 47 | { 48 | "Anime": "Shingeki no Kyojin Season 3", 49 | "url": "https://myanimelist.net/anime/35760/Shingeki_no_Kyojin_Season_3" 50 | }, 51 | { 52 | "Anime": "Shingeki no Kyojin Movie 1: Guren no Yumiya", 53 | "url": "https://myanimelist.net/anime/23775/Shingeki_no_Kyojin_Movie_1__Guren_no_Yumiya" 54 | }, 55 | { 56 | "Anime": "Shingeki no Kyojin OVA", 57 | "url": "https://myanimelist.net/anime/18397/Shingeki_no_Kyojin_OVA" 58 | }, 59 | { 60 | "Anime": "Shingeki no Kyojin: Ano Hi Kara", 61 | "url": "https://myanimelist.net/anime/19285/Shingeki_no_Kyojin__Ano_Hi_Kara" 62 | }, 63 | { 64 | "Anime": "Shingeki no Kyojin", 65 | "url": "https://myanimelist.net/anime/16498/Shingeki_no_Kyojin" 66 | }, 67 | { 68 | "Anime": "Shingeki no Kyojin Picture Drama", 69 | "url": "https://myanimelist.net/anime/19391/Shingeki_no_Kyojin_Picture_Drama" 70 | } 71 | ], 72 | "manga": [ 73 | { 74 | "name": "Shingeki no Kyojin: Kuinaki Sentaku - PrologueSungeki no KyojinShingeki no Kyojin: Kuinaki SentakuShingeki! Kyojin ChuugakkouShingeki no Kyojin", 75 | "url": "https://myanimelist.net/manga/70613/Shingeki_no_Kyojin__Kuinaki_Sentaku_-_Prologue" 76 | } 77 | ] 78 | }, 79 | "chara_name": "levi", 80 | "groupId": "6285721733043-1609557240@g.us", 81 | "msgID": [ 82 | "false_6285721733043-1609557240@g.us_EC5391836A8AA602F8B5904ADDB7B4F8", 83 | "false_6285721733043-1609557240@g.us_BA4B95EE3FA31ADD1836F971D39B6570", 84 | "false_6285721733043-1609557240@g.us_A227FD6FFF93B0C34BCD4453EE8E5D5F" 85 | ], 86 | "messages": [ 87 | "Keluar lagi aja", 88 | "Ok", 89 | "!charagame disable" 90 | ] 91 | } -------------------------------------------------------------------------------- /lib/chara/6285892766102-1608900013@g.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "unactive", 3 | "anime_result": { 4 | "status": 200, 5 | "name": "Kaname ", 6 | "image": "https://cdn.myanimelist.net/images/characters/11/388699.jpg", 7 | "full_desc": "Kaname (カナメ)\nKaname is a former Jukai's disciple", 8 | "url": "https://myanimelist.net/character/173474/Kaname", 9 | "anime": [ 10 | { 11 | "Anime": "Dororo", 12 | "url": "https://myanimelist.net/anime/37520/Dororo" 13 | } 14 | ], 15 | "manga": [ 16 | { 17 | "name": "", 18 | "url": "https://myanimelist.netundefined" 19 | } 20 | ] 21 | }, 22 | "chara_name": " kaname", 23 | "groupId": "6285892766102-1608900013@g.us", 24 | "msgID": [ 25 | "false_6285892766102-1608900013@g.us_AAD9MEZDJPFOFUZV5E3A", 26 | "false_6285892766102-1608900013@g.us_8C7D2BDAF3B6404F9986ED58CE19E530", 27 | "false_6285892766102-1608900013@g.us_1EC05E41AD62C86136C80F1DBA412F15", 28 | "false_6285892766102-1608900013@g.us_728E09F88E4A97070203E95626B03788", 29 | "false_6285892766102-1608900013@g.us_18537EF8ED5AE6EE6FD24790579D0961", 30 | "false_6285892766102-1608900013@g.us_E7EB4655F97C7886BF459CCC5AF83555", 31 | "false_6285892766102-1608900013@g.us_8B039ECF6628E6B553C5903F225F8783", 32 | "false_6285892766102-1608900013@g.us_D7BEDA9A448EEEFAE9249B90A26E6E9F", 33 | "false_6285892766102-1608900013@g.us_372278C7F21E498E1B4E962D82138FD9" 34 | ], 35 | "messages": [ 36 | "*Bot Berjalan Selama 2 Jam 49 Menit 16 Detik*", 37 | "Iya. Tp maksudnya write jadi file?", 38 | "Anjing spam ae nih bot", 39 | "Owalah s nandaz", 40 | "Mute aja", 41 | "!mute", 42 | "nggak langsung raw ke base64\nTapi w coba di jadiin file dulu juga tetep kek gitu", 43 | "Lag botnya", 44 | "!charagame disable" 45 | ] 46 | } -------------------------------------------------------------------------------- /lib/chara_galery/27632122007@c.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "active", 3 | "sender": "27632122007@c.us", 4 | "name": "black lives matter", 5 | "animes": [ 6 | { 7 | "status": 200, 8 | "name": "Sanji (Black Leg, Mr. Prince)", 9 | "image": [ 10 | "https://cdn.myanimelist.net/images/characters/5/136769.jpg" 11 | ], 12 | "full_desc": "Sanji (サンジ)\nAge: 19→21\nBirthdate: March 2\nZodiac: Pisces\nHeight: 177 cm (5' 9\") → 180 cm (5'11\")\nBlood type: RH-\nAffiliation: Straw Hat Pirates (previously; Baratie)\nPosition: Cook\nDevil Fruit: none\nBounty:330,000,000 (previously: 177,000,000 ← 77,000,000)\nSanji is the chain-smoking chef of the Straw Hat Pirate Crew. He has superb fighting skills that only make use of his legs, in an effort to minimize damage to his hands which would impair his cooking skills.Except a single fight where he uses knives against a fellow chef. Sanji uses an array of powerful and varied kicking moves when he fights. His cooking skills are world class, and he was mentored in both cooking and fighting by Chef \"Red Leg\" Zeff of the Baratie. He was born in the North Blue, but grew up in the East Blue.\n\nSanji is trash-talking and serious, and usually gruff and impatient, especially around men. This is contrasted by his \"love-cook\" side, as he is very amorous around women. Sanji is completely devoted to any beautiful woman, usually losing all common sense and composure in front of them, then attempting to comically swoon them. This behavior has earned him the nickname \"ero-cook,\" or perverted cook. He can also be very chivalrous and gentlemanly around women, volunteering to help them in various tasks and situations, whether they need help or not. He has sworn to never let insult or injury happen to any woman while he can still stand, even if that woman is trying to kill him. This is often problematic in his fighting as he can't attack female opponents, and would rather die than hurt them. All this is apparently the result of a \"strict upbringing.\" To contradict his gentlemanly behavior, Sanji also enjoys seeing women wear skimpy clothing, and can be a voyeur.\n\nHis goal in life is to find the All Blue, a legendary ocean, which contains all the fish in the world. As such, it would be paradise for any cook with as much love for his work as Sanji, who holds great respect for the tools, ingredients, and art of cooking. So great is his devotion to his calling, that Sanji will not let any person or creature starve, regardless of them being friend or foe.\n\nBeing the crew's chef, he looks out for the health of his crewmates. Sanji respects Luffy as a captain, but often gets angry at him for eating too much, showing disrespect for the aesthetics of cooking, and generally being daft and irresponsible. He is constantly in petty fights with Zoro (sometimes calling him Marimo) over each others' traits and they have developed a rivalry, but have managed to make a devastating team together. He is very protective of the female crew members and Nami likes to take advantage of him, exploiting his extreme servility. Sanji originally wanted to cook Chopper, but has come to respect him as a crew member and friend. He's also good friends with Usopp; they team up and interact often, and Sanji understands him quite well. In short, he cares as much for the crew as any Straw Hat should, but unlike Zoro, Sanji shows these feelings more.\n\nIt is revealed that Sanji is the third son of the Vinsmokes, a family of killers. His father and one of the Yonkou, Big Mom, has arranged a marriage between him and the 35th daughter of the Charlotte family, Pudding.", 13 | "url": "https://myanimelist.net/character/305/Sanji", 14 | "anime": [ 15 | { 16 | "Anime": "One Piece: Straw Hat Theater", 17 | "url": "https://myanimelist.net/anime/2680/One_Piece__Straw_Hat_Theater" 18 | }, 19 | { 20 | "Anime": "One Piece Movie 9: Episode of Chopper Plus - Fuyu ni Saku, Kiseki no Sakura", 21 | "url": "https://myanimelist.net/anime/3848/One_Piece_Movie_9__Episode_of_Chopper_Plus_-_Fuyu_ni_Saku_Kiseki_no_Sakura" 22 | }, 23 | { 24 | "Anime": "One Piece Film: Strong World", 25 | "url": "https://myanimelist.net/anime/4155/One_Piece_Film__Strong_World" 26 | }, 27 | { 28 | "Anime": "One Piece: Mezase! Kaizoku Yakyuu Ou", 29 | "url": "https://myanimelist.net/anime/2490/One_Piece__Mezase_Kaizoku_Yakyuu_Ou" 30 | }, 31 | { 32 | "Anime": "One Piece: Yume no Soccer Ou!", 33 | "url": "https://myanimelist.net/anime/2386/One_Piece__Yume_no_Soccer_Ou" 34 | }, 35 | { 36 | "Anime": "One Piece 3D: Mugiwara Chase", 37 | "url": "https://myanimelist.net/anime/9999/One_Piece_3D__Mugiwara_Chase" 38 | }, 39 | { 40 | "Anime": "One Piece Recap", 41 | "url": "https://myanimelist.net/anime/8171/One_Piece_Recap" 42 | }, 43 | { 44 | "Anime": "One Piece 3D: Gekisou! Trap Coaster", 45 | "url": "https://myanimelist.net/anime/12001/One_Piece_3D__Gekisou_Trap_Coaster" 46 | }, 47 | { 48 | "Anime": "One Piece: Romance Dawn Story", 49 | "url": "https://myanimelist.net/anime/5252/One_Piece__Romance_Dawn_Story" 50 | }, 51 | { 52 | "Anime": "One Piece: Jango no Dance Carnival", 53 | "url": "https://myanimelist.net/anime/2385/One_Piece__Jango_no_Dance_Carnival" 54 | }, 55 | { 56 | "Anime": "One Piece Movie 7: Karakuri-jou no Mecha Kyohei", 57 | "url": "https://myanimelist.net/anime/465/One_Piece_Movie_7__Karakuri-jou_no_Mecha_Kyohei" 58 | }, 59 | { 60 | "Anime": "One Piece: Umi no Heso no Daibouken-hen", 61 | "url": "https://myanimelist.net/anime/1094/One_Piece__Umi_no_Heso_no_Daibouken-hen" 62 | }, 63 | { 64 | "Anime": "One Piece: Oounabara ni Hirake! Dekkai Dekkai Chichi no Yume!", 65 | "url": "https://myanimelist.net/anime/1237/One_Piece__Oounabara_ni_Hirake_Dekkai_Dekkai_Chichi_no_Yume" 66 | }, 67 | { 68 | "Anime": "One Piece Movie 5: Norowareta Seiken", 69 | "url": "https://myanimelist.net/anime/463/One_Piece_Movie_5__Norowareta_Seiken" 70 | }, 71 | { 72 | "Anime": "One Piece Movie 6: Omatsuri Danshaku to Himitsu no Shima", 73 | "url": "https://myanimelist.net/anime/464/One_Piece_Movie_6__Omatsuri_Danshaku_to_Himitsu_no_Shima" 74 | }, 75 | { 76 | "Anime": "One Piece Movie 8: Episode of Alabasta - Sabaku no Oujo to Kaizoku-tachi", 77 | "url": "https://myanimelist.net/anime/2107/One_Piece_Movie_8__Episode_of_Alabasta_-_Sabaku_no_Oujo_to_Kaizoku-tachi" 78 | }, 79 | { 80 | "Anime": "One Piece: Nenmatsu Tokubetsu Kikaku! Mugiwara no Luffy Oyabun Torimonochou", 81 | "url": "https://myanimelist.net/anime/2020/One_Piece__Nenmatsu_Tokubetsu_Kikaku_Mugiwara_no_Luffy_Oyabun_Torimonochou" 82 | }, 83 | { 84 | "Anime": "One Piece: Mamore! Saigo no Dai Butai", 85 | "url": "https://myanimelist.net/anime/1238/One_Piece__Mamore_Saigo_no_Dai_Butai" 86 | }, 87 | { 88 | "Anime": "One Piece: Adventure of Nebulandia", 89 | "url": "https://myanimelist.net/anime/32051/One_Piece__Adventure_of_Nebulandia" 90 | }, 91 | { 92 | "Anime": "One Piece Film: Gold", 93 | "url": "https://myanimelist.net/anime/31490/One_Piece_Film__Gold" 94 | }, 95 | { 96 | "Anime": "One Piece: Heart of Gold", 97 | "url": "https://myanimelist.net/anime/33338/One_Piece__Heart_of_Gold" 98 | }, 99 | { 100 | "Anime": "One Piece: Episode of Sabo - 3 Kyoudai no Kizuna Kiseki no Saikai to Uketsugareru Ishi", 101 | "url": "https://myanimelist.net/anime/31289/One_Piece__Episode_of_Sabo_-_3_Kyoudai_no_Kizuna_Kiseki_no_Saikai_to_Uketsugareru_Ishi" 102 | }, 103 | { 104 | "Anime": "One Piece: Episode of Alabasta - Prologue", 105 | "url": "https://myanimelist.net/anime/28683/One_Piece__Episode_of_Alabasta_-_Prologue" 106 | }, 107 | { 108 | "Anime": "One Piece: Episode of Sorajima", 109 | "url": "https://myanimelist.net/anime/37902/One_Piece__Episode_of_Sorajima" 110 | }, 111 | { 112 | "Anime": "One Piece Movie 14: Stampede", 113 | "url": "https://myanimelist.net/anime/38234/One_Piece_Movie_14__Stampede" 114 | }, 115 | { 116 | "Anime": "One Piece: Episode of East Blue - Luffy to 4-nin no Nakama no Daibouken", 117 | "url": "https://myanimelist.net/anime/36215/One_Piece__Episode_of_East_Blue_-_Luffy_to_4-nin_no_Nakama_no_Daibouken" 118 | }, 119 | { 120 | "Anime": "One Piece Film: Gold Episode 0 - 711 ver.", 121 | "url": "https://myanimelist.net/anime/33606/One_Piece_Film__Gold_Episode_0_-_711_ver" 122 | }, 123 | { 124 | "Anime": "One Piece: Kinkyuu Kikaku One Piece Kanzen Kouryakuhou", 125 | "url": "https://myanimelist.net/anime/16143/One_Piece__Kinkyuu_Kikaku_One_Piece_Kanzen_Kouryakuhou" 126 | }, 127 | { 128 | "Anime": "One Piece: Episode of Luffy - Hand Island no Bouken", 129 | "url": "https://myanimelist.net/anime/16239/One_Piece__Episode_of_Luffy_-_Hand_Island_no_Bouken" 130 | }, 131 | { 132 | "Anime": "One Piece: Episode of Nami - Koukaishi no Namida to Nakama no Kizuna", 133 | "url": "https://myanimelist.net/anime/15323/One_Piece__Episode_of_Nami_-_Koukaishi_no_Namida_to_Nakama_no_Kizuna" 134 | }, 135 | { 136 | "Anime": "One Piece Film: Z", 137 | "url": "https://myanimelist.net/anime/12859/One_Piece_Film__Z" 138 | }, 139 | { 140 | "Anime": "One Piece: Glorious Island", 141 | "url": "https://myanimelist.net/anime/16468/One_Piece__Glorious_Island" 142 | }, 143 | { 144 | "Anime": "Nissan Serena x One Piece 3D: Mugiwara Chase - Sennyuu!! Sauzando Sanii-gou", 145 | "url": "https://myanimelist.net/anime/20871/Nissan_Serena_x_One_Piece_3D__Mugiwara_Chase_-_Sennyuu_Sauzando_Sanii-gou" 146 | }, 147 | { 148 | "Anime": "One Piece 3D2Y: Ace no shi wo Koete! Luffy Nakama Tono Chikai", 149 | "url": "https://myanimelist.net/anime/25161/One_Piece_3D2Y__Ace_no_shi_wo_Koete_Luffy_Nakama_Tono_Chikai" 150 | }, 151 | { 152 | "Anime": "One Piece: Episode of Merry - Mou Hitori no Nakama no Monogatari", 153 | "url": "https://myanimelist.net/anime/19123/One_Piece__Episode_of_Merry_-_Mou_Hitori_no_Nakama_no_Monogatari" 154 | }, 155 | { 156 | "Anime": "One Piece Movie 2: Nejimaki-jima no Daibouken", 157 | "url": "https://myanimelist.net/anime/460/One_Piece_Movie_2__Nejimaki-jima_no_Daibouken" 158 | }, 159 | { 160 | "Anime": "One Piece", 161 | "url": "https://myanimelist.net/anime/21/One_Piece" 162 | }, 163 | { 164 | "Anime": "One Piece Movie 4: Dead End no Bouken", 165 | "url": "https://myanimelist.net/anime/462/One_Piece_Movie_4__Dead_End_no_Bouken" 166 | }, 167 | { 168 | "Anime": "One Piece Movie 3: Chinjuu-jima no Chopper Oukoku", 169 | "url": "https://myanimelist.net/anime/461/One_Piece_Movie_3__Chinjuu-jima_no_Chopper_Oukoku" 170 | } 171 | ], 172 | "manga": [ 173 | { 174 | "name": "One Piece PartyShokugeki no SanjiOne Piece x TorikoOne Piece Log Book OmakeCross EpochOne Piece", 175 | "url": "https://myanimelist.net/manga/86972/One_Piece_Party" 176 | } 177 | ] 178 | } 179 | ] 180 | } -------------------------------------------------------------------------------- /lib/chara_galery/6281328917586@c.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "active", 3 | "sender": "6281328917586@c.us", 4 | "name": "Atr Gans", 5 | "animes": [ 6 | "" 7 | ] 8 | } -------------------------------------------------------------------------------- /lib/chara_galery/6283805191681@c.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "active", 3 | "sender": "6283805191681@c.us", 4 | "name": "Rolan", 5 | "animes": [ 6 | "" 7 | ] 8 | } -------------------------------------------------------------------------------- /lib/chara_galery/6285764112841@c.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "active", 3 | "sender": "6285764112841@c.us", 4 | "name": "~☆¤《Adi Raw^k🐒👻》¤☆~", 5 | "animes": [ 6 | "" 7 | ] 8 | } -------------------------------------------------------------------------------- /lib/chara_galery/62895621590008@c.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "active", 3 | "sender": "62895621590008@c.us", 4 | "name": "ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ", 5 | "animes": [ 6 | "" 7 | ] 8 | } -------------------------------------------------------------------------------- /lib/chara_galery/6289636035164@c.us.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "active", 3 | "sender": "6289636035164@c.us", 4 | "name": "A Dev", 5 | "animes": [ 6 | { 7 | "status": 200, 8 | "name": "SF-A2 miki (Mikina Freesis, Mickina Olliba)", 9 | "image": "https://cdn.myanimelist.net/images/characters/7/225565.jpg", 10 | "full_desc": "SF-A2 miki (SF-A2 開発コード miki)\nSF-A2 codename miki, is a Japanese VOCALOID developed and distributed by AH-Software Co. Ltd., and was released in December 2009 for the VOCALOID2 engine. Her voice is provided by the Japanese female singer, Miki Furukawa.\n\n\nAlternative names/personalities:\nAku no Musume: Mikina Freesis (ミキナ=フリージス)\nVenomania-kou no Kyouki: Mickina Olliba", 11 | "url": "https://myanimelist.net/character/94963/SF-A2_miki", 12 | "anime": [], 13 | "manga": [ 14 | { 15 | "name": "Aku no Taizai: Venomania-kou no KyoukiAku no Musume", 16 | "url": "https://myanimelist.net/manga/61877/Aku_no_Taizai__Venomania-kou_no_Kyouki" 17 | } 18 | ] 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /lib/characounter.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "groupID": "345234", 4 | "messages": [] 5 | }, 6 | { 7 | "groupID": "345a234", 8 | "messages": [] 9 | } 10 | ] -------------------------------------------------------------------------------- /lib/charasession: -------------------------------------------------------------------------------- 1 | [ 2 | "6285559038021-1603688917@g.us" 3 | ] -------------------------------------------------------------------------------- /lib/charasession.json: -------------------------------------------------------------------------------- 1 | [ 2 | "6285559038021-1603688917@g.us" 3 | ] -------------------------------------------------------------------------------- /lib/chargame.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /lib/color.js: -------------------------------------------------------------------------------- 1 | const chalk = require('chalk') 2 | 3 | module.exports = color = (text, color) => { 4 | return !color ? chalk.green(text) : chalk.keyword(color)(text) 5 | } -------------------------------------------------------------------------------- /lib/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "sAdmin": "6285559038021@c.us", 3 | "restartState": true, 4 | "restartId": "6285559038021-1603688917@g.us", 5 | "banChats": false, 6 | "Rest": true, 7 | "limitCount": 30, 8 | "memberLimit": 25, 9 | "groupLimit": 25, 10 | "prefix": "!", 11 | "mtc": false, 12 | "whitelist": [] 13 | } -------------------------------------------------------------------------------- /lib/dataadz.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "shubuh": "04:22", 4 | "magrib": "18:23" 5 | } 6 | ] -------------------------------------------------------------------------------- /lib/db-sticker.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "key": "dgc.jpg" 4 | } 5 | ] -------------------------------------------------------------------------------- /lib/dmff.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs-extra') 2 | 3 | module.exports = welcomeD = async (client, event) => { 4 | //console.log(event.action) 5 | const welkomD = JSON.parse(fs.readFileSync('./lib/dmff.json')) 6 | const isWelkomD = welkomD.includes(event.chat) 7 | try { 8 | if (event.action == 'add' && isWelkomD) { 9 | const gChat = await client.getChatById(event.chat) 10 | const pChat = await client.getContact(event.who) 11 | const siapa = event.who.replace('@c.us','') 12 | const { contact, groupMetadata, name } = gChat 13 | console.log(contact,'\n\n',name,'\n\n',event) 14 | const pepe = await client.getProfilePicFromServer(event.who) 15 | const capt = `Halo ${siapa} member baru👋🏻Welcome To DROP DM @CRAFFTSTORE.1 16 | 17 | Untuk melihat Daftar Harga Atau perintah Bot Silakan Ketik #menu(tanpa huruf tebal) 18 | ` 19 | if (pepe == '' || pepe == undefined) { 20 | await client.sendFileFromUrl(event.chat, 'https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTQcODjk7AcA4wb_9OLzoeAdpGwmkJqOYxEBA&usqp=CAU', 'profile.jpg', capt) 21 | } else { 22 | await client.sendFileFromUrl(event.chat, pepe, 'profile.jpg', capt) 23 | } 24 | 25 | } 26 | } catch (err) { 27 | console.log(err) 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /lib/dmff.json: -------------------------------------------------------------------------------- 1 | ["6285216810127-1602212654@g.us","6285559038021-1603688917@g.us","6285216810127-1602212654@g.us","6285216810127-1602212654@g.us"] -------------------------------------------------------------------------------- /lib/fetcher.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch'); 2 | const FormData = require('form-data') 3 | const fs = require('fs') 4 | const { fromBuffer } = require('file-type') 5 | const resizeImage = require('./imageProcessing') 6 | 7 | /** 8 | *Fetch Json from Url 9 | * 10 | *@param {String} url 11 | *@param {Object} options 12 | */ 13 | const fetchJson = (url, options) => 14 | new Promise((resolve, reject) => 15 | fetch(url, options) 16 | .then(response => response.json()) 17 | .then(json => resolve(json)) 18 | .catch(err => { 19 | console.error(err) 20 | reject(err) 21 | }) 22 | ) 23 | 24 | /** 25 | * Fetch Text from Url 26 | * 27 | * @param {String} url 28 | * @param {Object} options 29 | */ 30 | const fetchText = (url, options) => { 31 | return new Promise((resolve, reject) => { 32 | return fetch(url, options) 33 | .then(response => response.text()) 34 | .then(text => resolve(text)) 35 | .catch(err => { 36 | console.error(err) 37 | reject(err) 38 | }) 39 | }) 40 | } 41 | 42 | /** 43 | * Fetch base64 from url 44 | * @param {String} url 45 | */ 46 | 47 | const fetchBase64 = (url, mimetype) => { 48 | return new Promise((resolve, reject) => { 49 | console.log('Get base64 from:', url) 50 | return fetch(url) 51 | .then((res) => { 52 | const _mimetype = mimetype || res.headers.get('content-type') 53 | res.buffer() 54 | .then((result) => resolve(`data:${_mimetype};base64,` + result.toString('base64'))) 55 | }) 56 | .catch((err) => { 57 | console.error(err) 58 | reject(err) 59 | }) 60 | }) 61 | } 62 | 63 | /** 64 | * Upload Image to Telegra.ph 65 | * 66 | * @param {String} base64 image buffer 67 | * @param {Boolean} resize 68 | */ 69 | 70 | const uploadImages = (buffData, type) => { 71 | // eslint-disable-next-line no-async-promise-executor 72 | return new Promise(async (resolve, reject) => { 73 | const { ext } = await fromBuffer(buffData) 74 | const filePath = 'lib/tmp.' + ext 75 | const _buffData = type ? await resizeImage(buffData, false) : buffData 76 | fs.writeFile(filePath, _buffData, { encoding: 'base64' }, (err) => { 77 | if (err) return reject(err) 78 | console.log('Uploading image to telegra.ph server...') 79 | const fileData = fs.readFileSync(filePath) 80 | const form = new FormData() 81 | form.append('file', fileData, 'tmp.' + ext) 82 | fetch('https://telegra.ph/upload', { 83 | method: 'POST', 84 | body: form 85 | }) 86 | .then(res => res.json()) 87 | .then(res => { 88 | if (res.error) return reject(res.error) 89 | resolve('https://telegra.ph' + res[0].src) 90 | }) 91 | .then(() => fs.unlinkSync(filePath)) 92 | .catch(err => reject(err)) 93 | }) 94 | }) 95 | } 96 | 97 | module.exports = { 98 | fetchJson, 99 | fetchText, 100 | fetchBase64, 101 | uploadImages 102 | } 103 | 104 | 105 | const getBase64 = async (url) => { 106 | const response = await fetch(url, { headers: { 'User-Agent': 'okhttp/4.5.0' } }) 107 | if (!response.ok) throw new Error(`unexpected response ${response.statusText}`) 108 | const buffer = await response.buffer(); 109 | const videoBase64 = `data:${response.headers.get('content-type')};base64,` + buffer.toString('base64'); 110 | if (buffer) 111 | return videoBase64; 112 | }; 113 | 114 | exports.getBase64 = getBase64; 115 | -------------------------------------------------------------------------------- /lib/freedom.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs-extra') 2 | 3 | module.exports = welcomeF = async (client, event) => { 4 | //console.log(event.action) 5 | const welkomF = JSON.parse(fs.readFileSync('./lib/freedom.json')) 6 | const isWelkomF = welkomF.includes(event.chat) 7 | try { 8 | if (event.action == 'add' && isWelkomF) { 9 | const gChat = await client.getChatById(event.chat) 10 | const pChat = await client.getContact(event.who) 11 | const { contact, groupMetadata, name } = gChat 12 | const pepe = await client.getProfilePicFromServer(event.who) 13 | const siapa = event.who.replace(/@c.us/g,'') 14 | const capt = `WELCOME TO FREEDOM STORE @${siapa} 15 | 16 | JIKA INGIN CEK HARGA SILAHKAN KETIK 17 | *!FF / !ML / !PUBG* (PILIH SALAH SATU) DI GRUP INI 18 | 19 | DAN JUGA JANGAN LUPA PATUHI PERATURAN NYA :) 20 | 21 | PERATURAN GRUP FREEDOM: 22 | DILARANG : 23 | - PROMOSI DALAM BENTUK APAPUN 24 | - NGERUSUH 25 | - MAINAN / MENGGUNAKAN KEYWORD BOT DILUAR KEYWORD YANG DI BOLEHKAN 26 | - SHARE LINK 27 | - PEMBAHASAN 18+ 28 | - TOXIC BERLEBIHAN 29 | - BERBICARA YANG MENGANDUNG UNSUR SARA/UJARAN KEBENCIAN 30 | 31 | JIKA ADA PERTANYAAN / MASUKAN/ KRITIK 32 | SILAHKAN HUBUNGI ADMIN : 33 | 1. wa.me/6288233282599 34 | 2. wa.me/6285747528021` 35 | client.sendTextWithMentions(event.chat, capt) 36 | 37 | } 38 | } catch (err) { 39 | console.log(err) 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /lib/freedom.json: -------------------------------------------------------------------------------- 1 | ["6288233282599-1601304366@g.us","6285559038021-1603688917@g.us"] -------------------------------------------------------------------------------- /lib/functions.js: -------------------------------------------------------------------------------- 1 | const { default: got } = require('got/dist/source'); 2 | const fetch = require('node-fetch') 3 | const { getBase64 } = require("./fetcher") 4 | const request = require('request') 5 | const emoji = require('emoji-regex') 6 | const fs = require('fs-extra') 7 | 8 | const liriklagu = async (lagu) => { 9 | const response = await fetch(`http://scrap.terhambar.com/lirik?word=${lagu}`) 10 | if (!response.ok) throw new Error(`unexpected response ${response.statusText}`); 11 | const json = await response.json() 12 | if (json.status === true) return `Lirik ${lagu}\n\n${json.result.lirik}` 13 | return `[ Error ] Lirik Lagu ${lagu} tidak di temukan!` 14 | } 15 | 16 | // const ytmp3s = async (link3) => { 17 | // const response = await fetch(`http://scrap.terhambar.com/lirik?word=${lagu}`) 18 | // if (!response.ok) throw new Error(`unexpected response ${response.statusText}`); 19 | // const json = await response.json() 20 | // if (json.status === true) return `Lirik Lagu ${lagu}\n\n${json.result.lirik}` 21 | // return `[ Error ] Lirik Lagu ${lagu} tidak di temukan!` 22 | // } 23 | 24 | 25 | const quotemaker = async (quotes, author = 'EmditorBerkelas', type = 'random') => { 26 | var q = quotes.replace(/ /g, '%20').replace('\n','%5Cn') 27 | const response = await got.get(`https://api.i-tech.id/tools/qtm?key=ijmalalfafanajib&type=${type}&author=${author}&text=${q}`).json() 28 | // const response = await fetch(`https://terhambar.com/aw/qts/?kata=${q}&author=${author}&tipe=${type}`) 29 | // if (!response.ok) throw new Error(`unexpected response ${response.statusText}`) 30 | // const json = await response.json() 31 | if (response.status) { 32 | if (response.result !== '') { 33 | const base64 = response.result 34 | return base64 35 | } 36 | } 37 | } 38 | 39 | const emojiStrip = (string) => { 40 | return string.replace(emoji, '') 41 | } 42 | 43 | const fb = async (url) => { 44 | try { 45 | const response = await fetch(`https://mhankbarbar.herokuapp.com/api/epbe?url=${url}&apiKey=9eqNrrqr6UxSlck3uGDD`) 46 | if (!response.ok) throw new Error(`unexpected response ${response.statusText}`) 47 | const json = await response.json() 48 | if (json.status === 200) return { 49 | 'capt': `*Data berhasil ditemukan!*\n\n*Judul* : ${json.title}\n*Size* : ${json.filesize}`, 'exts': '.mp4', 'url': json.result 50 | } 51 | console.log(json) 52 | return { 53 | 'capt': '[ ERROR ] Not found!', 'exts': '.jpg', 'url': 'http://mrhrtz-wabot.000webhostapp.com/404.jpg' 54 | } 55 | console.log(json) 56 | } catch (err) { 57 | console.log(err) 58 | } 59 | } 60 | 61 | 62 | 63 | const twt = async (twturl) => { 64 | const response = await fetch(`http://keepsaveit.com/api/?api_key=3tgDBIOPAPl62b0zuaWNYog2wvRrc4V414AjMi5zdHbU4a&url=${twturl}`) 65 | if (!response.ok) throw new Error(`unexpected response ${response.statusText}`) 66 | const json = await response.json() 67 | if (json.status === true) return { 68 | 'exts': json.response.links.ext,'capt': `\n*Title* : ${json.response.title}\n*Resolusi* : ${json.response.links[0].resolution}\n*Size* : ${json.response.links[0].size}`, 'url': json.response.links[0].url 69 | } 70 | return { 71 | 'capt': '[ ERROR ] Not found! Hanya menerima link video twitter yang valid.', 'exts': '.jpg', 'url': 'http://mrhrtz-wabot.000webhostapp.com/404.jpg' 72 | } 73 | } 74 | 75 | const ig = async (igurl) => { 76 | try { 77 | const response = await got.get(`https://api.vhtear.com/instadl?link=${igurl}&apikey=botnolepbydandyproject`).json() 78 | //if (!response.ok) throw new Error(`unexpected response ${response.statusText}`) 79 | //const json = await response.json() 80 | //console.log(response) 81 | if (response.error) return response.error 82 | console.log(response) 83 | if (response.status !== 200) return { 84 | 'capt': `Video telah terkirim`, 'urlV': response.result.post[1].urlDownload, 'urlP': response.result.post[0].urlDownload, 'user': response.result.owner_username 85 | } 86 | return { 87 | 'capt': '[ ERROR ] Not found! Akunnya mungkin private.', 'exts': '.jpg', 'url': 'http://mrhrtz-wabot.000webhostapp.com/404.jpg' 88 | } 89 | } catch (e){ 90 | console.log(e) 91 | } 92 | } 93 | 94 | const ss = async(query) => { 95 | request({ 96 | url: "https://api.i-tech.id/tools/ssweb", 97 | encoding: "binary", 98 | qs: { 99 | key: "ZEL5ZL-Wm5Psl-66gG9x-W3FHEa-97bm8g", 100 | link: query 101 | } 102 | }, (error, response, body) => { 103 | if (error) { 104 | console.log(error); 105 | } else { 106 | fs.writeFile("./media/img/screenshot.jpg", body, "binary", error => { 107 | console.log(error); 108 | }) 109 | } 110 | }) 111 | } 112 | 113 | const tulis = async(kahayang) => { 114 | request({ 115 | url: "https://api.vhtear.com/write", 116 | encoding: "binary", 117 | qs: { 118 | text: kahayang, 119 | apikey: "botnolepbydandyproject" 120 | } 121 | }, (error, response, body) => { 122 | if (error) { 123 | console.log(error); 124 | } else { 125 | fs.writeFile("./media/img/nulez.jpg", body, "binary", error => { 126 | console.log(error); 127 | }) 128 | } 129 | }) 130 | } 131 | 132 | const randomNimek = async (type) => { 133 | var url = 'https://api.computerfreaker.cf/v1/' 134 | switch(type) { 135 | case 'nsfw': 136 | const nsfw = await got.get(url + 'nsfwneko').json() 137 | //if (!nsfw.ok) throw new Error(`unexpected response ${nsfw.statusText}`) 138 | //const resultNsfw = await nsfw.json() 139 | return nsfw.url 140 | break 141 | case 'hentai': 142 | const hentai = await got.get(url + 'hentai').json() 143 | //if (!hentai.ok) throw new Error(`unexpected response ${hentai.statusText}`) 144 | //const resultHentai = await hentai.json() 145 | return hentai.url 146 | break 147 | case 'anime': 148 | let anime = await got.get(url + 'anime').json() 149 | //if (!anime.ok) throw new Error(`unexpected response ${anime.statusText}`) 150 | //const resultNime = await anime.json() 151 | return anime.url 152 | break 153 | case 'neko': 154 | let neko = await got.get(url + 'neko').json() 155 | //if (!neko.ok) throw new Error(`unexpected response ${neko.statusText}`) 156 | //const resultNeko = await neko.json() 157 | return neko.url 158 | break 159 | case 'trap': 160 | let trap = await got.get(url + 'trap').json() 161 | //if (!trap.ok) throw new Error(`unexpected response ${trap.statusText}`) 162 | //const resultTrap = await trap.json() 163 | return trap.url 164 | break 165 | } 166 | } 167 | 168 | const sleep = async (ms) => { 169 | return new Promise(resolve => setTimeout(resolve, ms)); 170 | } 171 | 172 | const jadwalTv = async (query) => { 173 | const res = await got.get(`https://api.haipbis.xyz/jadwaltv/${query}`).json() 174 | if (res.error) return res.error 175 | switch(query) { 176 | case 'antv': 177 | return `\t\t[ ANTV ]\n${res.join('\n')}` 178 | break 179 | case 'gtv': 180 | return `\t\t[ GTV ]\n${res.join('\n')}` 181 | break 182 | case 'indosiar': 183 | return `\t\t[ INDOSIAR ]\n${res.join('\n')}` 184 | break 185 | case 'inewstv': 186 | return `\t\t[ iNewsTV ]\n${res.join('\n')}` 187 | break 188 | case 'kompastv': 189 | return `\t\t[ KompasTV ]\n${res.join('\n')}` 190 | break 191 | case 'mnctv': 192 | return `\t\t[ MNCTV ]\n${res.join('\n')}` 193 | break 194 | case 'metrotv': 195 | return `\t\t[ MetroTV ]\n${res.join('\n')}` 196 | break 197 | case 'nettv': 198 | return `\t\t[ NetTV ]\n${res.join('\n')}` 199 | break 200 | case 'rcti': 201 | return `\t\t[ RCTI ]\n${res.join('\n')}` 202 | break 203 | case 'sctv': 204 | return `\t\t[ SCTV ]\n${res.join('\n')}` 205 | break 206 | case 'rtv': 207 | return `\t\t[ RTV ]\n${res.join('\n')}` 208 | break 209 | case 'trans7': 210 | return `\t\t[ Trans7 ]\n${res.join('\n')}` 211 | break 212 | case 'transtv': 213 | return `\t\t[ TransTV ]\n${res.join('\n')}` 214 | break 215 | default: 216 | return '[ ERROR ] Channel TV salah! silahkan cek list channel dengan mengetik perintah *!listChannel*' 217 | break 218 | } 219 | } 220 | function between(min, max) { 221 | return Math.floor( 222 | Math.random() * (max - min) + min 223 | ) 224 | } 225 | 226 | exports.between = between 227 | exports.liriklagu = liriklagu 228 | exports.quotemaker = quotemaker 229 | exports.randomNimek = randomNimek 230 | exports.fb = fb 231 | exports.tulis = tulis 232 | exports.ig = ig 233 | exports.emojiStrip = emojiStrip 234 | exports.sleep = sleep 235 | exports.jadwalTv = jadwalTv 236 | exports.ss = ss 237 | exports.twt = twt -------------------------------------------------------------------------------- /lib/functions.js.bak: -------------------------------------------------------------------------------- 1 | const { default: got } = require('got/dist/source'); 2 | const fetch = require('node-fetch') 3 | const { getBase64 } = require("./fetcher") 4 | 5 | const Chordlagu = async (clagu) => { 6 | const response = await fetch(`https://mhankbarbar.herokuapp.com/api/chord?q=${clagu}`) 7 | if (!response.ok) throw new Error(`unexpected response ${response.statusText}`); 8 | const json = await response.json() 9 | if (json.status === 200) return `Chord Lagu ${clagu}\n\n${json.result}` 10 | return `[ Error ] Chord Lagu ${clagu} tidak di temukan!` 11 | } 12 | 13 | const liriklagu = async (lagu) => { 14 | const response = await fetch(`http://scrap.terhambar.com/lirik?word=${lagu}`) 15 | if (!response.ok) throw new Error(`unexpected response ${response.statusText}`); 16 | const json = await response.json() 17 | if (json.status === true) return `Lirik Lagu ${lagu}\n\n${json.result.lirik}` 18 | return `[ Error ] Lirik Lagu ${lagu} tidak di temukan!` 19 | } 20 | 21 | 22 | const quotemaker = async (quotes, author = 'EmditorBerkelas', type = 'random') => { 23 | var q = quotes.replace(/ /g, '%20').replace('\n','%5Cn') 24 | const response = await fetch(`https://terhambar.com/aw/qts/?kata=${q}&author=${author}&tipe=${type}`) 25 | if (!response.ok) throw new Error(`unexpected response ${response.statusText}`) 26 | const json = await response.json() 27 | if (json.status) { 28 | if (json.result !== '') { 29 | const base64 = await getBase64(json.result) 30 | return base64 31 | } 32 | } 33 | } 34 | 35 | const fb = async (url) => { 36 | const response = await fetch(`http://scrap.terhambar.com/fb?link=${url}`) 37 | if (!response.ok) throw new Error(`unexpected response ${response.statusText}`) 38 | const json = await response.json() 39 | console.log(json) 40 | if (json.status === true) return { 41 | 'capt': json.result.title, 'exts': '.mp4', 'url': json.result.linkVideo.sdQuality 42 | } 43 | return { 44 | 'capt': '[ ERROR ] Not found!', 'exts': '.jpg', 'url': 'https://c4.wallpaperflare.com/wallpaper/976/117/318/anime-girls-404-not-found-glowing-eyes-girls-frontline-wallpaper-preview.jpg' 45 | } 46 | } 47 | const randomNimek = async (type) => { 48 | var url = 'https://api.computerfreaker.cf/v1/' 49 | switch(type) { 50 | case 'nsfw': 51 | const nsfw = await fetch(url + 'nsfwneko') 52 | if (!nsfw.ok) throw new Error(`unexpected response ${nsfw.statusText}`) 53 | const resultNsfw = await nsfw.json() 54 | return resultNsfw.url 55 | break 56 | case 'hentai': 57 | const hentai = await fetch(url + 'hentai') 58 | if (!hentai.ok) throw new Error(`unexpected response ${hentai.statusText}`) 59 | const resultHentai = await hentai.json() 60 | return resultHentai.url 61 | break 62 | case 'anime': 63 | let anime = await fetch(url + 'anime') 64 | if (!anime.ok) throw new Error(`unexpected response ${anime.statusText}`) 65 | const resultNime = await anime.json() 66 | return resultNime.url 67 | break 68 | case 'neko': 69 | let neko = await fetch(url + 'neko') 70 | if (!neko.ok) throw new Error(`unexpected response ${neko.statusText}`) 71 | const resultNeko = await neko.json() 72 | return resultNeko.url 73 | break 74 | case 'trap': 75 | let trap = await fetch(url + 'trap') 76 | if (!trap.ok) throw new Error(`unexpected response ${trap.statusText}`) 77 | const resultTrap = await trap.json() 78 | return resultTrap.url 79 | break 80 | } 81 | } 82 | 83 | const sleep = async (ms) => { 84 | return new Promise(resolve => setTimeout(resolve, ms)); 85 | } 86 | 87 | const jadwalTv = async (query) => { 88 | const res = await got.get(`https://api.haipbis.xyz/jadwaltv/${query}`).json() 89 | if (res.error) return res.error 90 | switch(query) { 91 | case 'antv': 92 | return `\t\t[ ANTV ]\n${res.join('\n')}` 93 | break 94 | case 'gtv': 95 | return `\t\t[ GTV ]\n${res.join('\n')}` 96 | break 97 | case 'indosiar': 98 | return `\t\t[ INDOSIAR ]\n${res.join('\n')}` 99 | break 100 | case 'inewstv': 101 | return `\t\t[ iNewsTV ]\n${res.join('\n')}` 102 | break 103 | case 'kompastv': 104 | return `\t\t[ KompasTV ]\n${res.join('\n')}` 105 | break 106 | case 'mnctv': 107 | return `\t\t[ MNCTV ]\n${res.join('\n')}` 108 | break 109 | case 'metrotv': 110 | return `\t\t[ MetroTV ]\n${res.join('\n')}` 111 | break 112 | case 'nettv': 113 | return `\t\t[ NetTV ]\n${res.join('\n')}` 114 | break 115 | case 'rcti': 116 | return `\t\t[ RCTI ]\n${res.join('\n')}` 117 | break 118 | case 'sctv': 119 | return `\t\t[ SCTV ]\n${res.join('\n')}` 120 | break 121 | case 'rtv': 122 | return `\t\t[ RTV ]\n${res.join('\n')}` 123 | break 124 | case 'trans7': 125 | return `\t\t[ Trans7 ]\n${res.join('\n')}` 126 | break 127 | case 'transtv': 128 | return `\t\t[ TransTV ]\n${res.join('\n')}` 129 | break 130 | default: 131 | return '[ ERROR ] Channel TV salah! silahkan cek list channel dengan mengetik perintah *!listChannel*' 132 | break 133 | } 134 | } 135 | 136 | exports.Chordlagu = Chordlagu; 137 | exports.liriklagu = liriklagu; 138 | exports.quotemaker = quotemaker; 139 | exports.randomNimek = randomNimek 140 | exports.fb = fb 141 | exports.sleep = sleep 142 | exports.jadwalTv = jadwalTv 143 | -------------------------------------------------------------------------------- /lib/giphy.js: -------------------------------------------------------------------------------- 1 | const request = require('request') 2 | const fs = require('fs-extra') 3 | const uploadToGiphy = (filename) => { 4 | var postData = { 5 | api_key: '9LofYhiVHaU6y1Sf5RZ8M6asa6F5mHAS', 6 | file: { 7 | value: fs.createReadStream(filename), 8 | options: { 9 | filename: filename, 10 | contentType: 'image/gif' 11 | } 12 | } 13 | } 14 | var opt = { 15 | url: 'https://upload.giphy.com/v1/gifs?api_key=' + postData.api_key, 16 | formData: postData, 17 | json: true 18 | } 19 | const p = new Promise((resolve, reject) => { 20 | request.post(opt, function (e, resp, body) { 21 | if(e || resp.statusCode !== 200) return console.log('Upload giphy failed!') 22 | resolve('https://media.giphy.com/media/' + body.data.id + '/giphy.gif') 23 | }) 24 | }) 25 | return p 26 | } 27 | const opts = () => { 28 | return { 29 | duration: 5, 30 | rate: 8, 31 | width: 300, 32 | height: 300, 33 | } 34 | } 35 | exports.opts = opts 36 | exports.uploadToGiphy = uploadToGiphy -------------------------------------------------------------------------------- /lib/help.js: -------------------------------------------------------------------------------- 1 | 2 | function help() { 3 | return ` 4 | ▃▄▅▆▇█████╬██╬█████▇▆▅▄▃ 5 | ███ 🤖 *DGC ChatBotV3* 🤖 ███ 6 | 7 | 8 | Hi Nice to see you! ✨ 9 | ________________________________________ 10 | 11 | ❕ 〘 Info 〙 ❕ 12 | 13 | ➣ *!donasi* (Bisa request fitur dan jan lupa dukungannya) 14 | ➣ *!profil* 15 | ➣ *!snk* (Rules syarat dan ketentuan) 16 | ➣ *!info* 17 | 18 | ________________________________________ 19 | 20 | 🎶 〘 Social & Media 〙 📲 21 | 22 | ➣ *!igsearch* _@username_ 23 | ➣ *!igstalk* _@username_ 24 | ➣ *!play* 25 | ➣ *!tiktok* _linkTiktok_ 26 | ➣ *!musik* _Katakunci_ 27 | ➣ *!video* _KataKunci_ 28 | ➣ *!twt* _linkVideoTwitter_ 29 | ➣ *!ytmp3* _linkYt_ 30 | ➣ *!ytmp4* _linkYt_ 31 | ➣ *!ig* _linkIg_ 32 | ➣ *!fb* _linkFb_ 33 | 34 | ________________________________________ 35 | 36 | 📇 〘 Grup 〙 🛡️ 37 | 38 | ➣ *!antilink* 39 | ➣ *!deantilink* 40 | ➣ *!add* _62858xxxxx_ 41 | ➣ *!kick* _@tagmember_ 42 | ➣ *!promote* _@tagmember_ 43 | ➣ *!demote* _@tagadmin_ 44 | ➣ *!mutegrup* 45 | ➣ *!unmutegrup* 46 | ➣ *!mentionAll* 47 | ➣ *!adminList* 48 | ➣ *!ownerGroup* 49 | ➣ *!sambutan* _aktif/mati_ 50 | ➣ *!leave* 51 | ➣ *!linkGroup* 52 | ➣ *!delete* _tagPesanChatbot_ 53 | 54 | ________________________________________ 55 | 56 | 🕹️ 〘 Kontrol Bot 〙 📋 57 | 58 | ➣ *!mute* 59 | ➣ *!unmute* 60 | ➣ *!bug* _Pesan yang akan disampaikan_ 61 | 62 | ________________________________________ 63 | 64 | 🎤〘 Anonymous Chat 〙💺 65 | 66 | _Note : Khusus Private Chat!_ 67 | 68 | ➣ *!kirim _Teksnya_* 69 | ➣ *!daftar _62855xxxx_* 70 | ➣ *!hapus _62855xxxx_* 71 | ➣ *!list* 72 | 73 | ________________________________________ 74 | 75 | ☠️〘 Artikel DGC 〙🇮🇩 76 | 77 | 78 | ➣ *!artikelDgc* _Halaman_ 79 | ➣ *!read* _ID POST_ 80 | 81 | ________________________________________ 82 | 83 | 🎯〘 Gacha 〙🎲 84 | 85 | ➣ *!cecan* 86 | ➣ *!cogan* 87 | ➣ *!suit* 88 | ➣ *!pictquotes* 89 | ➣ *!loli* 90 | ➣ *!quotes* 91 | ➣ *!caklontong* 92 | ➣ *!ganteng* 93 | ➣ *!babi* 94 | 95 | ________________________________________ 96 | 97 | 🧭 〘 Stiker 〙 💡 98 | 99 | ➣ *!savestiker* _Namanya_ 100 | ➣ *!liststiker* 101 | ➣ *!getstiker* _Namanya_ 102 | ➣ *!toimage* 103 | ➣ *!tostiker* _Teksnya_ 104 | ➣ *!tostikergif* _Teksnya_ 105 | ➣ *!stiker* 106 | ➣ *!stikergif* 107 | ➣ *!stikerori* 108 | ➣ *!stikernobg* (VIP) 109 | 110 | ________________________________________ 111 | 112 | 🔭 〘 Search 〙 🔍 113 | 114 | ➣ *!ceklokasi* (tag lokasi anda, sharelok) 115 | ➣ *!gambar* _KataKunci_ 116 | ➣ *!cekjodoh* 117 | ➣ *!ramalanjodoh* 118 | ➣ *!fact* 119 | ➣ *!artinama* _namakamu_ 120 | ➣ *!search* _KataKunci_ 121 | ➣ *!nyanyi* _Lagunya_ 122 | ➣ *!brainly* _katakunci_ |_jumlahjawaban_ 123 | ➣ *!playstore* _NamaApp_ 124 | ➣ *!wiki* _Katakunci_ 125 | ➣ *!chord* _Lagu_ 126 | ➣ *!igStalk* _@username_ 127 | ➣ *!searchYT* _Katakunci_ 128 | ➣ *!wallpaper* _halaman_ _katakunci_ 129 | ➣ *!jadwalTvNow* 130 | ➣ *!jadwalShalat* _daerah_ 131 | ➣ *!jadwalTv* _channel_ 132 | ➣ *!cuaca* _Daerah_ 133 | ➣ *!lirik* _lagu_ 134 | 135 | ________________________________________ 136 | 137 | 🎯 〘 Fitur Lainnya 〙 🎳 138 | 139 | ➣ *!hilih* _(Tagpesan)_ 140 | ➣ *!ssweb* _LinkWebsite_ 141 | ➣ *$* _Masukan pesanmu_ (Fitur Chat Simsimi) 142 | ➣ *!qrcode* _Teksnya_ 143 | ➣ *!nulis* _Tulisannya_ 144 | ➣ *!translate* _data bahasa_ _teks_ 145 | ➣ *!SendOwner* 146 | ➣ *!tts* _kode bhs_ _teks_ 147 | ➣ *!quotemaker* |teks|pembuat|theme (tema dalam bahasa inggris) 148 | 149 | ________________________________________ 150 | 151 | ╰╼ _DGC_CHATBOT@3.0 ©2020_ 152 | 153 | 154 | Untuk perintah tidak memakai "_" dan "*" 155 | 156 | Contoh : _!gambar 1 office_ 157 | 158 | 159 | *Note : Apabila bot tidak merespon chat wa.me/6285559038021 (Owner bot) Untuk segera difix*` 160 | } 161 | exports.help = help() 162 | function bahasa_list() { 163 | return `*Data bahasa salah!* 164 | 165 | Gunakan perintah : 166 | _!translate [data bahasa] [teksnya]_ 167 | contoh : 168 | _!translate en bagaimana kabarmu_ 169 | 170 | Atau untuk TTS 171 | Gunakan perintah : 172 | _!tts [data bahasa] [teksnya]_ 173 | contoh : 174 | _!tts id Hari yang cerah_ 175 | 176 | *List data bahasa yang dikenal :* 177 | 178 | af: Afrikaans 179 | sq: Albanian 180 | ar: Arabic 181 | hy: Armenian 182 | ca: Catalan 183 | zh: Chinese 184 | hr: Croatian 185 | cs: Czech 186 | da: Danish 187 | nl: Dutch 188 | en: English 189 | eo: Esperanto 190 | fi: Finnish 191 | fr: French 192 | de: German 193 | el: Greek 194 | ht: Haitian Creole 195 | hi: Hindi 196 | hu: Hungarian 197 | is: Icelandic 198 | id: Indonesian 199 | it: Italian 200 | ja: Japanese 201 | ko: Korean 202 | la: Latin 203 | lv: Latvian 204 | mk: Macedonian 205 | no: Norwegian 206 | pl: Polish 207 | pt: Portuguese 208 | ro: Romanian 209 | ru: Russian 210 | sr: Serbian 211 | sk: Slovak 212 | es: Spanish 213 | sw: Swahili 214 | sv: Swedish 215 | ta: Tamil 216 | th: Thai 217 | tr: Turkish 218 | vi: Vietnamese 219 | cy: Welsh 220 | `} 221 | exports.bahasa_list = bahasa_list() 222 | function readme() { 223 | return ` 224 | *[linkYt]* Diisi dengan link YouTube yang valid tanpa tanda “[” dan “]” 225 | Contoh : *!ytmp3 https://youtu.be/Bskehapzke8* 226 | 227 | *[linkYt]* Diisi dengan link YouTube yang valid tanpa tanda “[” dan “]” 228 | Contoh : *!ytmp4 https://youtu.be/Bskehapzke8* 229 | 230 | *[linkIg]* Diisi dengan link Instagram yang valid tanpa tanda “[” dan “]” 231 | Contoh : *!ig https://www.instagram.com/p/CFqRZTlluAi/?igshid=1gtxkbdqhnbbe* 232 | 233 | *[linkFb]* Diisi dengan link Facebook yang valid tanpa tanda “[” dan “]” 234 | Contoh : *!fb https://www.facebook.com/EpochTimesTrending/videos/310155606660409* 235 | 236 | *[daerah]* Diisi dengan daerah yang valid, tanpa tanda “[” dan “]” 237 | Contoh : *!jadwalShalat Tangerang* 238 | 239 | *[channel]* Diisi dengan channel televisi yang valid, tanpa tanda “[” dan “]” 240 | Contoh : *!jadwalTv Indosiar* 241 | 242 | *[tempat]* Diisi dengan tempat/lokasi yang valid, tanpa tanda “[” dan “]“ 243 | Contoh : *!cuaca tangerang* 244 | 245 | *[kode bhs]* Diisi dengan kode bahasa, contoh *id*, *en*, dll. Dan *[teks]* Diisi dengan teks yang ingin di jadikan voice, Masih sama seperti di atas tanpa tanda “[” dan “]” 246 | Contoh : *!tts id Test* 247 | Note : Max 250 huruf 248 | 249 | *[@username]* Diisi dengan username Instagram yang valid, tanpa tanda “[” dan “]” 250 | Contoh : *!igStalk @duar_amjay* 251 | 252 | *[|teks|author|theme]* Diisi dengan teks, author, dan theme, tanpa tanda “[” dan “]” 253 | Contoh : *!quotemaker |Odading|Mang Oleh|Shark* 254 | 255 | *[linkGroup]* Diisi dengan link group whatsapp yang valid, tanpa tanda “[” dan “]”. 256 | Contoh : *!join https://chat.whatsapp.com/Bhhw77d5t2gjao8* 257 | 258 | *[optional]* Diisi dengan teks|title lirik lagu, tanpa tanda “[” dan “]”. 259 | Contoh : *!lirik aku bukan boneka*` 260 | } 261 | exports.readme = readme() 262 | function info() { 263 | return `Bot ini di buat dengan bahasa pemrograman Node.js / JavaScript 264 | Nama Bot : DGC ChatBotV3 265 | Tanggal Rilis : 2 Okt 2020 266 | Owner Bot : wa.me/6285559038021 267 | 268 | *MRHRTZ @ Leader DGC Team Attacker*` 269 | } 270 | exports.info = info() 271 | function snk() { 272 | return `Syarat dan Ketentuan Bot *DGC ChatBotV3* 273 | 274 | 1. Teks dan nama pengguna WhatsApp anda akan kami simpan di dalam server selama bot aktif 275 | 2. Data anda akan di hapus ketika bot Offline 276 | 3. Kami tidak menyimpan gambar, video, file, audio, dan dokumen yang anda kirim 277 | 4. Kami tidak akan pernah meminta anda untuk memberikan informasi pribadi 278 | 5. Jika menemukan Bug/Error silahkan langsung lapor ke Owner bot 279 | 6. Dilarang SPAMMING 280 | 7. Dilarang request yang berbau pornografi 281 | 9. Dilarang VC/CALL Bot (Autoblock) 282 | 10. Apapun yang anda perintah pada bot ini, KAMI TIDAK AKAN BERTANGGUNG JAWAB! 283 | 284 | _Jika terdeteksi melanggar rules bot akan ban dan out grup sesuai ketentuan_ 285 | 286 | Thanks !` 287 | } 288 | exports.snk = snk() 289 | function donate() { 290 | return `\nHaiii.. Mau donate ni? 291 | 292 | Untuk donate tf ke 085559038021 (GOPAY/DANA) jangan lupa kasih pesan untuk dukungannya yaa.. 😊 293 | 294 | Thanks!` 295 | } 296 | exports.donate = donate() 297 | function listChannel() { 298 | return `Daftar channel: 299 | 1. ANTV 300 | 2. GTV 301 | 3. Indosiar 302 | 4. iNewsTV 303 | 5. KompasTV 304 | 6. MNCTV 305 | 7. METROTV 306 | 8. NETTV 307 | 9. RCTI 308 | 10. SCTV 309 | 11. RTV 310 | 12. Trans7 311 | 13. TransTV` 312 | } 313 | exports.listChannel = listChannel() 314 | -------------------------------------------------------------------------------- /lib/imageProcessing.js: -------------------------------------------------------------------------------- 1 | const sharp = require('sharp') 2 | const { fromBuffer } = require('file-type') 3 | 4 | /** 5 | * Resize image to buffer or base64 6 | * @param {Buffer} bufferdata 7 | * @param {Boolean} encode 8 | * @param {String} mimType 9 | */ 10 | // eslint-disable-next-line no-async-promise-executor 11 | module.exports = resizeImage = (buff, encode) => new Promise(async (resolve, reject) => { 12 | console.log('Resizeing image...') 13 | const { mime } = await fromBuffer(buff) 14 | sharp(buff, { failOnError: false }) 15 | .resize(512, 512) 16 | .toBuffer() 17 | .then(resizedImageBuffer => { 18 | if (!encode) return resolve(resizedImageBuffer) 19 | console.log('Create base64 from resizedImageBuffer...') 20 | const resizedImageData = resizedImageBuffer.toString('base64') 21 | const resizedBase64 = `data:${mime};base64,${resizedImageData}` 22 | resolve(resizedBase64) 23 | }) 24 | .catch(error => reject(error)) 25 | }) 26 | -------------------------------------------------------------------------------- /lib/index.js: -------------------------------------------------------------------------------- 1 | exports.getLocationData = require('./location') -------------------------------------------------------------------------------- /lib/kontak_izin.json: -------------------------------------------------------------------------------- 1 | [ 2 | "6285864126273", 3 | "6285600144654", 4 | "6282281088789", 5 | "6285731353491", 6 | "6285864126273", 7 | "6285559038021", 8 | "6281213089927", 9 | "6285755364184", 10 | "6281247875578", 11 | "62895418310105", 12 | "6281241474822", 13 | "6282171309945", 14 | "6287857046112", 15 | "6282259218016", 16 | "628983961469", 17 | "6288295863159", 18 | "6282117048795", 19 | "6282117048795", 20 | "6283142321131", 21 | "6285725726747", 22 | "6285378968459", 23 | "6285875787276", 24 | "6285378968459", 25 | "628983961469", 26 | "6281210280216", 27 | "6283142321131", 28 | "62895606051646", 29 | "6282135304765", 30 | "6285864126273", 31 | "6285705756726", 32 | "6281223392936", 33 | "6287737641796", 34 | "6281393445913", 35 | "6281521738705", 36 | "6282268305363", 37 | "6289523731135", 38 | "6285156394894", 39 | "6285800701748", 40 | "6282312097249", 41 | "6285650822398", 42 | "6283805191681", 43 | "6285348251256", 44 | "6287742330986", 45 | "628873637358" 46 | ] -------------------------------------------------------------------------------- /lib/lib-igeh.js: -------------------------------------------------------------------------------- 1 | const Insta = require('scraper-instagram'); 2 | const InstaClient = new Insta(); 3 | 4 | 5 | function igpost(url) { 6 | return new Promise((resolve, reject) => { 7 | if (url.includes('instagram.com')) { 8 | const idRegex = /([-_0-9A-Za-z]{11})/ 9 | const id = url.match(idRegex) 10 | InstaClient.getPost(id[0]).then((a) => { 11 | const user = a.author.username 12 | const name = a.author.name 13 | const author_pic = a.author.pic 14 | let media = [] 15 | for (let i = 0; i < a.contents.length; i++) { 16 | const konten = a.contents[i] 17 | media.push({ 18 | tipe: konten.type, 19 | link: konten.url 20 | }) 21 | } 22 | let tagged = [] 23 | a.tagged.forEach(person => { 24 | tagged.push(person) 25 | }); 26 | const like = a.likes 27 | const caption = a.caption 28 | const publish = new Date(a.timestamp * 1000) 29 | resolve({ 30 | nama: name, 31 | username: user, 32 | author_pic: author_pic, 33 | timestamp: publish, 34 | like: like, 35 | caption: caption, 36 | media: media, 37 | tagged: tagged 38 | }) 39 | }).catch(reject) 40 | } else { 41 | reject('URL TIDAK VALID!') 42 | } 43 | }) 44 | } 45 | 46 | module.exports.igpost = igpost -------------------------------------------------------------------------------- /lib/limit.json: -------------------------------------------------------------------------------- 1 | {"id":"6285559038021@c.us","limit":0} -------------------------------------------------------------------------------- /lib/listadzan.json: -------------------------------------------------------------------------------- 1 | [ 2 | "6285559038021-1605869468@g.us" 3 | ] -------------------------------------------------------------------------------- /lib/location.js: -------------------------------------------------------------------------------- 1 | const { fetchJson } = require('../lib/fetcher') 2 | 3 | async function getZoneStatus (latitude, longitude, userId = '2d8ecc70-8310-11ea-84f8-13de98afc5a4') { 4 | return new Promise((resolve, reject) => { 5 | const options = { 6 | method: 'POST', 7 | headers: { 8 | Authorization: 'Basic dGVsa29tOmRhMWMyNWQ4LTM3YzgtNDFiMS1hZmUyLTQyZGQ0ODI1YmZlYQ== ', 9 | Accept: 'application/json' 10 | }, 11 | body: JSON.stringify({ 12 | latitude: latitude.toString(), 13 | longitude: longitude.toString(), 14 | userId 15 | }) 16 | } 17 | fetchJson('https://api.pedulilindungi.id/zone/v1', options) 18 | .then(json => { 19 | const result = { 20 | kode: json.data.zone, 21 | status: '', 22 | optional: '' 23 | } 24 | 25 | switch (json.data.zone) { 26 | case 'red': 27 | result.status = 'anda berada di Zona Merah penyebaran COVID-19.' 28 | result.optional = 'Zona Merah adalah area yang sudah terdapat kasus Positif COVID-19.' 29 | break 30 | case 'yellow': 31 | result.status = 'anda berada di Zona Kuning penyebaran COVID-19.' 32 | result.optional = 'Zona Kuning adalah area yang sudah terdapat kasus ODP atau PDP COVID-19.' 33 | break 34 | case 'green': 35 | result.status = 'anda berada di Zona Hijau penyebaran COVID-19.' 36 | result.optional = 'Zona Hijau adalah area yang belum terdapat kasus PDP atau Positif COVID-19.' 37 | break 38 | } 39 | 40 | if (!json.success && json.message == 'Anda berada di zona aman.') { 41 | result.kode = 'green' 42 | result.status = 'anda berada di Zona Hijau penyebaran COVID-19.' 43 | result.optional = 'Zona Hijau adalah area yang belum terdapat kasus PDP atau Positif COVID-19.' 44 | } 45 | resolve(result) 46 | }) 47 | .catch((err) => reject(err)) 48 | }) 49 | } 50 | 51 | async function getArea (latitude, longitude, size = 10) { 52 | return new Promise((resolve, reject) => { 53 | const options = { 54 | method: 'GET', 55 | headers: { 56 | Authorization: ' Basic dGVsa29tOmRhMWMyNWQ4LTM3YzgtNDFiMS1hZmUyLTQyZGQ0ODI1YmZlYQ== ', 57 | 'Content-Type': ' application/json ' 58 | } 59 | } 60 | fetchJson(`https://api.pedulilindungi.id/zone/v1/location/area?latitude=${latitude}&longitude=${longitude}&page=1&size=${size}`, options) 61 | .then(json => { 62 | if (json.success && json.code == 200) resolve(json) 63 | }) 64 | .catch((err) => reject(err)) 65 | }) 66 | }; 67 | 68 | module.exports = getLocationData = async (latitude, longitude) => { 69 | try { 70 | const responses = await Promise.all([getZoneStatus(latitude, longitude), getArea(latitude, longitude)]) 71 | const result = { 72 | kode: 200, 73 | status: responses[0].status, 74 | optional: responses[0].optional, 75 | data: [] 76 | } 77 | responses[1].data.map((x) => result.data.push(x)) 78 | return result 79 | } catch (err) { 80 | console.log(err) 81 | return { kode: 0 } 82 | } 83 | } -------------------------------------------------------------------------------- /lib/msgFilter.js: -------------------------------------------------------------------------------- 1 | const usedCommandRecently = new Set() 2 | 3 | /** 4 | * Check is number filtered 5 | * @param {String} from 6 | */ 7 | const isFiltered = (from) => !!usedCommandRecently.has(from) 8 | 9 | /** 10 | * Add number to filter 11 | * @param {String} from 12 | */ 13 | const addFilter = (from) => { 14 | usedCommandRecently.add(from) 15 | setTimeout(() => usedCommandRecently.delete(from), 5000) // 5sec is delay before processing next command 16 | } 17 | 18 | module.exports = { 19 | isFiltered, 20 | addFilter 21 | } -------------------------------------------------------------------------------- /lib/msgLimit.json: -------------------------------------------------------------------------------- 1 | {"id":"6285559038021@c.us","limit":0} -------------------------------------------------------------------------------- /lib/muted.json: -------------------------------------------------------------------------------- 1 | [ 2 | "6289628310364-1591412063@g.us", 3 | "6288279620103-1585830877@g.us" 4 | ] -------------------------------------------------------------------------------- /lib/pengguna.json: -------------------------------------------------------------------------------- 1 | ["6287823633325@c.us","6281328917586@c.us","6285821676621@c.us","6285858546502@c.us","62895391370804@c.us","6285236780647@c.us","6281339263184@c.us","27638747759@c.us","6283805191681@c.us","6281617401785@c.us","6285648417001@c.us","6282283333943@c.us","62895322019922@c.us","6283146279445@c.us","6281232642964@c.us","6281543457577@c.us","6285217930712@c.us","6281246160828@c.us","27724374162@c.us","6289667611900@c.us","62895711577997@c.us","62895600555028@c.us","62895341676556@c.us","6288231345003@c.us","628812672813@c.us","6289637429813@c.us","6287876888324@c.us","6282239905845@c.us","6281222508228@c.us","6281391709190@c.us","6289530876832@c.us","628813357204@c.us","6282363731984@c.us","6283143092516@c.us","6285336515046@c.us","6289653718845@c.us","6285331622522@c.us","6285227658383@c.us","6282320441905@c.us","6281213089927@c.us","6285366072446@c.us","6281584142535@c.us","6281256550804@c.us","62895353483046@c.us","6282112380502@c.us","6282230101101@c.us","6281318239792@c.us","6283169873901@c.us","6282169996532@c.us"] -------------------------------------------------------------------------------- /lib/perizinan.json: -------------------------------------------------------------------------------- 1 | [ 2 | "6285559038021-1603688917@g.us", 3 | "6288216811360-1560225436@g.us", 4 | "6285559038021-1605869468@g.us", 5 | "6287723637392-1608550210@g.us", 6 | "6283128425223-1601763624@g.us", 7 | "6285864126273-1609119412@g.us", 8 | "6285864126273@c.us", 9 | "6287723637392-1608737448@g.us", 10 | "62895321217901-1595865261@g.us", 11 | "6289502799316-1605194459@g.us", 12 | "6289652018855-1608729648@g.us", 13 | "6281311850715-1605290009@g.us", 14 | "6281776952371-1588857268@g.us", 15 | "27731052724-1606073820@g.us", 16 | "27632122007-1608630746@g.us", 17 | "6285755364184@c.us", 18 | "6285273146227-1608108981@g.us", 19 | "6289526924934-1608943263@g.us", 20 | "6285755364184-1607400259@g.us", 21 | "6289628310364-1591412063@g.us", 22 | "27795173021-1606226596@g.us", 23 | "6289637318547-1605458467@g.us", 24 | "62895418310105@c.us", 25 | "6287883365170-1606275946@g.us", 26 | "6282289728315-1602735390@g.us", 27 | "6282171309945-1608683575@g.us", 28 | "6282239506212-1601897780@g.us", 29 | "6289613141435-1590149954@g.us", 30 | "6289526924934@c.us", 31 | "6289526924934-1608943263@g.us", 32 | "6285559038021@c.us", 33 | "6285156902925-1594041349@g.us", 34 | "6288279620103-1585830877@g.us", 35 | "6288295863159-1604820077@g.us", 36 | "6283142321131-1609239189@g.us", 37 | "6285951662289-1602250054@g.us", 38 | "6285225413473@c.us", 39 | "6282281088789@c.us", 40 | "6283142321131-1597898245@g.us", 41 | "6283142321131-1609239189@g.us", 42 | "6283142321131-1609239189@g.us", 43 | "6281393483806@c.us", 44 | "6285883786063-1609034899@g.us", 45 | "6283142321131@c.us", 46 | "6282281088789@c.us", 47 | "6285860637879-1606305531@g.us", 48 | "6282333508462@c.us", 49 | "6285378968459-1609249959@g.us", 50 | "6288258030557-1597672927@g.us", 51 | "6285892766102-1608900013@g.us", 52 | "6282117048795-1606474677@g.us", 53 | "628983961469-1597687228@g.us", 54 | "6282171309945-1608683575@g.us", 55 | "6282117048795-1606474677@g.us", 56 | "6285559038021@c.us", 57 | "6285721733043@c.us", 58 | "6282117048795@c.us", 59 | "6288806852080@c.us", 60 | "6282171309945-1608683575@g.us", 61 | "6281275209364-1603954255@g.us", 62 | "34611455160-1475081533@g.us", 63 | "6282117048795-1604017820@g.us", 64 | "6282117048795-1604017820@g.us", 65 | "6283841972228-1606531344@g.us", 66 | "6289611838200@c.us", 67 | "6285378968459-1609249959@g.us", 68 | "6281213089927-1607788140@g.us", 69 | "6281213089927@c.us", 70 | "6285378968459-1609249959@g.us", 71 | "6285378968459-1609249959@g.us", 72 | "6283142321131-1609239189@g.us", 73 | "6283142321131-1609239189@g.us", 74 | "6285378968459-1607395988@g.us", 75 | "6285378968459-1607395988@g.us", 76 | "6285717729039@c.us", 77 | "6281213089927-1607788140@g.us", 78 | "6285378968459-1607395988@g.us", 79 | "6285378968459-1607395988@g.us", 80 | "6285378968459-1607395988@g.us", 81 | "6285378968459-1607395988@g.us", 82 | "6285767689101-1588546647@g.us", 83 | "6282335945249-1606217593@g.us", 84 | "6282335945249-1606217593@g.us", 85 | "628983961469-1609336789@g.us", 86 | "6285378968459-1609249959@g.us", 87 | "6282335945249-1606217593@g.us", 88 | "6285378968459@c.us", 89 | "6282375307705-1608367069@g.us", 90 | "6282375307705-1608367069@g.us", 91 | "6282335945249-1606217593@g.us", 92 | "6285378968459-1607395988@g.us", 93 | "6285559038021-1603588233@g.us", 94 | "6283123578415@c.us", 95 | "6289617354652-1605319669@g.us", 96 | "6285721733043-1609376612@g.us", 97 | "6288295863159-1604820077@g.us", 98 | "6288295863159-1604820077@g.us", 99 | "6285378968459-1607395988@g.us", 100 | "6285378968459-1607395988@g.us", 101 | "6281393483806-1599542177@g.us", 102 | "6281230783321-1609327825@g.us", 103 | "6281521738705-1607761069@g.us", 104 | "6281236755657-1608091070@g.us", 105 | "6281236755657-1608091070@g.us", 106 | "6282268305363-1609405880@g.us", 107 | "6281393445913-1608476973@g.us", 108 | "6287737641796-1609407342@g.us", 109 | "6287737641796-1609407342@g.us", 110 | "6282335945249-1606217593@g.us", 111 | "6288276274179-1604215866@g.us", 112 | "6289611838200-1606197196@g.us", 113 | "6281393483806-1599542177@g.us", 114 | "6282117048795-1605188136@g.us", 115 | "6282117048795-1605188136@g.us", 116 | "6285378968459-1607395988@g.us", 117 | "6281393445913@c.us", 118 | "6285378968459-1607395988@g.us", 119 | "6288806852080-1603843811@g.us", 120 | "6282117048795-1591949033@g.us", 121 | "6282117048795-1591949033@g.us", 122 | "6288270942642-1609411116@g.us", 123 | "6288270942642@c.us", 124 | "6288270942642-1609411116@g.us", 125 | "6288270942642@c.us", 126 | "6288270942642-1609411116@g.us", 127 | "6285378968459-1607395988@g.us", 128 | "6285378968459-1607395988@g.us", 129 | "6282335945249-1606217593@g.us", 130 | "6282117048795-1605188136@g.us", 131 | "6282117048795-1591949033@g.us", 132 | "6282117048795-1591949033@g.us", 133 | "6282333508462-1603361232@g.us", 134 | "6285711242744-1606007376@g.us", 135 | "6285378968459-1607395988@g.us", 136 | "6288295863159@c.us", 137 | "919025374268-1606401934@g.us", 138 | "6288295863159-1604820077@g.us", 139 | "6288295863159-1604820077@g.us", 140 | "6288295863159-1604820077@g.us", 141 | "6288295863159-1604820077@g.us", 142 | "628157750007-1600600141@g.us", 143 | "6285378968459-1607395988@g.us", 144 | "6282171309945-1608683575@g.us", 145 | "6289523731135-1607173666@g.us", 146 | "6283123578415-1606445005@g.us", 147 | "6289638302977-1600751890@g.us", 148 | "6282117048795-1606474677@g.us", 149 | "6287836414647-1608054010@g.us", 150 | "6287737641796-1609407342@g.us", 151 | "6287836414647-1607526025@g.us", 152 | "6282335945249-1606217593@g.us", 153 | "6285800701748-1607329744@g.us", 154 | "6283135657537-1604494601@g.us", 155 | "6285650822398-1603967898@g.us", 156 | "628872388382-1605931819@g.us", 157 | "6285721733043-1609557240@g.us", 158 | "6285721733043-1609557240@g.us", 159 | "6282171309945@c.us", 160 | "6283805191681-1604633071@g.us", 161 | "6281251841746-1576743478@g.us", 162 | "6285721733043-1609557240@g.us", 163 | "6285721733043-1609557240@g.us", 164 | "6283805191681@c.us", 165 | "6282335945249-1606217593@g.us", 166 | "6289523731135@c.us", 167 | "6285800701748@c.us", 168 | "6281547371314-1602209363@g.us", 169 | "6287840517249-1596691882@g.us", 170 | "6281294216382-1596372591@g.us", 171 | "6282335945249-1606217593@g.us", 172 | "6281213089927-1607788140@g.us", 173 | "6281213089927-1607788140@g.us", 174 | "6281247875578-1608741592@g.us", 175 | "6281247875578-1608741592@g.us", 176 | "6285712074383-1608813626@g.us", 177 | "6282335945249-1606217593@g.us" 178 | ] -------------------------------------------------------------------------------- /lib/random/anime/husbu.txt: -------------------------------------------------------------------------------- 1 | https://i.pinimg.com/originals/ad/de/a8/addea895a1e367dbb7ec77ed643441c2.jpg 2 | https://i.pinimg.com/originals/8c/5f/84/8c5f845ef47b196e364dbd55560abc7c.jpg 3 | https://i.pinimg.com/originals/c3/10/4b/c3104beed2932a1e6f24d592eade7d4b.jpg 4 | https://i.pinimg.com/originals/08/fd/8f/08fd8f049b790e1666713da3db2396fd.png 5 | https://i.pinimg.com/originals/5b/4d/3c/5b4d3c16ff93c5924fa6486519b675aa.jpg 6 | https://i.pinimg.com/originals/f2/95/42/f295423c8168af259ccb5f2acefaff1b.jpg 7 | https://i.pinimg.com/originals/c7/33/ce/c733ce7a89e3376e2e99e1988ae0416b.jpg 8 | https://i.pinimg.com/originals/92/73/44/927344aff0050e7214eff46d173967ec.jpg 9 | https://i.pinimg.com/originals/7b/16/df/7b16dfd42ce3f77522529365a8693ae6.jpg 10 | https://i.pinimg.com/originals/40/7c/1f/407c1ff2f73a327e17a366f84671d91e.jpg 11 | https://i.pinimg.com/originals/5c/ec/37/5cec3735d5ca352ac374eeaf10d0038f.jpg 12 | https://i.pinimg.com/originals/dc/95/9c/dc959c36c13f673056eb8899b1447551.jpg 13 | https://i.pinimg.com/originals/ec/57/a7/ec57a7ba11031e143b222c006235c2e4.jpg 14 | https://i.pinimg.com/originals/1d/b3/1e/1db31ecd2d58a2081fd85f201e8ba399.jpg 15 | https://i.pinimg.com/originals/d0/cd/2c/d0cd2c187f3c1c8748bd96631c1e5d00.jpg 16 | https://i.pinimg.com/originals/e5/52/e2/e552e29b43dd71ffd669fc73a13fcad4.jpg 17 | https://i.pinimg.com/originals/92/d8/c5/92d8c5f6f481747ab2d7645f2ef6b229.jpg 18 | https://i.pinimg.com/originals/f5/8c/d2/f58cd2b5806d80e7dd9b17e74df973ed.jpg 19 | https://i.pinimg.com/originals/63/e4/80/63e480ed67a44cc849e7d5cde18c73ef.jpg 20 | https://i.pinimg.com/originals/00/85/08/00850896f6fc90f95e7842dd01e0fd62.jpg 21 | https://i.pinimg.com/originals/0a/76/ce/0a76cebd989ceb8b7bef91fc84c5ac78.jpg 22 | https://i.pinimg.com/originals/dd/dc/02/dddc02414cefab0f5f009d73dc0c3431.jpg 23 | https://i.pinimg.com/originals/51/ea/16/51ea1678e225e5349be1d7515fb030c8.jpg 24 | https://i.pinimg.com/originals/74/4f/12/744f125cd6f78929737f573c55a9a6d4.jpg 25 | https://i.pinimg.com/originals/e8/ca/2f/e8ca2f775fd9ac9bd4d601c80ba9edab.jpg 26 | https://i.pinimg.com/originals/9d/dd/95/9ddd958462d7af0413985931b377cbee.jpg 27 | https://i.pinimg.com/originals/1b/fd/49/1bfd49d7fe6e976339252bc97e3c48e1.jpg 28 | https://i.pinimg.com/originals/6b/9d/ed/6b9ded92b2928c6345b391558a159d20.jpg 29 | https://i.pinimg.com/originals/f3/68/fa/f368fa2dc4d529fd0c3f98a4460f1b43.jpg 30 | https://i.pinimg.com/originals/00/bf/1f/00bf1fe39a252fd39ad45776c643b819.jpg 31 | https://i.pinimg.com/originals/86/7f/00/867f0064325224a2e58a0c7da65c09af.jpg 32 | https://i.pinimg.com/originals/92/25/98/922598da08af85de47a8b3ca5a109a62.png 33 | https://i.pinimg.com/originals/c6/6d/40/c66d404bf9e6664c18a04f1472de83e9.jpg 34 | https://i.pinimg.com/originals/8e/34/8f/8e348f6f2590ee75bc5672f12fae858c.jpg 35 | https://i.pinimg.com/originals/40/2d/f0/402df0219330e7cd0788ec4e4fecad04.jpg 36 | https://i.pinimg.com/originals/a7/4e/a5/a74ea5211dfeed371fddbe7b39b03785.jpg 37 | https://i.pinimg.com/originals/00/71/ba/0071bada0de4fc59afeb2526e5d341b4.png 38 | https://i.pinimg.com/originals/30/33/ef/3033efed9c5214e54ac67afa42886983.png 39 | https://i.pinimg.com/originals/0c/f8/a5/0cf8a59aeddc1c8c3699333d4ea50e38.jpg 40 | https://i.pinimg.com/originals/e5/1b/89/e51b898d2de941ca41c8d11dead6cf71.jpg 41 | https://i.pinimg.com/originals/98/25/4f/98254fa6c142314fb25ebd892484a7e5.jpg 42 | https://i.pinimg.com/originals/93/d0/b1/93d0b17e0459a8ca928e5f886abb2d0c.jpg 43 | https://i.pinimg.com/originals/d2/33/97/d2339772568a3d348d9ebedf4143d66a.jpg 44 | https://i.pinimg.com/originals/b7/3d/2b/b73d2b89c50def2dd26868b0c664abc6.png 45 | https://i.pinimg.com/originals/cc/c3/ea/ccc3ea05d34fdc434e64240c81e7c7e0.jpg 46 | https://i.pinimg.com/originals/5d/99/11/5d991124a92f6be7f33e9da4350a8094.jpg 47 | https://i.pinimg.com/originals/4f/41/3f/4f413fde71bf1d1995b3f19144bcec87.jpg 48 | https://i.pinimg.com/originals/b2/88/8f/b2888f2f7da853f0c8aeb61327595d42.jpg 49 | https://i.pinimg.com/originals/28/f6/08/28f6083b284fd7f2211a95e84a4d6ce5.jpg 50 | https://i.pinimg.com/originals/1a/61/4b/1a614b939d6da368a319bfcb7b65f670.png 51 | https://i.pinimg.com/originals/42/51/63/425163ee0a36fe3e2f38d8b950674daf.jpg 52 | https://i.pinimg.com/originals/0f/71/3d/0f713d539a84035f531a7236e8042e94.jpg 53 | https://i.pinimg.com/originals/74/82/03/7482030c89104e4e2945987330ac5498.png 54 | https://i.pinimg.com/originals/8b/78/8c/8b788ced48d8c01c608f26eb0db50b26.jpg 55 | https://i.pinimg.com/originals/8c/af/d2/8cafd2288610b29ad2584546a4dc92fa.jpg 56 | https://i.pinimg.com/originals/4b/d7/7c/4bd77cf2861a066ec3737e1217bc725e.jpg 57 | https://i.pinimg.com/originals/63/3c/78/633c7833cdfc306ce97f9a4eddf04be7.jpg 58 | https://i.pinimg.com/originals/be/7e/c3/be7ec332fd4431982fad18d8f7c3cf0d.jpg 59 | https://i.pinimg.com/originals/f4/31/67/f43167866d199ff61904670bcc83cc9c.jpg 60 | https://i.pinimg.com/originals/f2/95/42/f295423c8168af259ccb5f2acefaff1b.jpg 61 | https://i.pinimg.com/originals/cd/4d/02/cd4d026038988b7761eea52f63e6b454.png 62 | https://i.pinimg.com/originals/ad/36/27/ad3627193edbc882ba2e81e941f2fcb1.jpg 63 | https://i.pinimg.com/originals/59/97/7d/59977dd2811f76dffc6d2d76ee4fe6c1.jpg 64 | https://i.pinimg.com/originals/21/4f/f8/214ff8247de32c1dad6d7867b72ae587.jpg 65 | https://i.pinimg.com/originals/50/4a/00/504a003c1d35426946c9bf10a4b50322.jpg 66 | https://i.pinimg.com/originals/fb/85/68/fb8568e331629abb0809a5d5fd8021be.png 67 | https://i.pinimg.com/originals/70/11/1d/70111d48da5f1a80255935d519bc48f0.jpg 68 | https://i.pinimg.com/originals/d7/cf/36/d7cf364fa0630cf22a332fa89358a98c.jpg 69 | https://i.pinimg.com/originals/4a/32/ae/4a32aea32cda962b7c94d50dc02e7a5a.jpg 70 | https://i.pinimg.com/originals/c5/d9/94/c5d994bf34b265fadcbc56025ce9d50d.jpg 71 | https://i.pinimg.com/originals/da/e4/5f/dae45f01b319caf2bf05bdcd2ce9ec14.jpg 72 | https://i.pinimg.com/originals/9c/6b/08/9c6b08ccf136deac18df1d221010688c.jpg 73 | https://i.pinimg.com/originals/14/e0/1e/14e01edd089b5f8abc484879da89f69e.jpg 74 | https://i.pinimg.com/originals/95/f5/3f/95f53f18c44f7ff6462fe750ddeb3a3e.jpg 75 | https://i.pinimg.com/originals/c0/8e/6d/c08e6d15025cee7745d2115a32066a88.jpg 76 | https://i.pinimg.com/originals/26/40/50/2640500cfab8bbb9d24996327850f2ef.jpg 77 | https://i.pinimg.com/originals/81/de/91/81de9194b40ed497408429398b587186.jpg 78 | https://i.pinimg.com/originals/9e/b9/0a/9eb90a839c3bf58632637e7fb8384497.jpg 79 | https://i.pinimg.com/originals/57/58/70/5758705efbc448655baec384f0520f56.jpg 80 | https://i.pinimg.com/originals/1c/2f/23/1c2f233f01b6eb5b7b29dea0f3917b48.png 81 | https://i.pinimg.com/originals/06/a1/a7/06a1a72841ea4942b8a5226aa2b21ae6.jpg 82 | https://i.pinimg.com/originals/d8/bc/bc/d8bcbc5e74cbcfd610f3668a8e7f3fe4.jpg 83 | https://i.pinimg.com/originals/48/cd/26/48cd260f72922df0caba73fe8ac3572e.jpg 84 | https://i.pinimg.com/originals/23/ef/cf/23efcf02f1ac464ef3688cccf219b302.jpg 85 | https://i.pinimg.com/originals/83/2f/0f/832f0f8d5adf929e6ef6be9fa6f083d0.png 86 | https://i.pinimg.com/originals/6e/8b/02/6e8b025c8888cb6589151f0dbcf569d0.jpg 87 | https://i.pinimg.com/originals/7f/16/b0/7f16b05ab6cde6ac98402ca105bf3401.jpg 88 | https://i.pinimg.com/originals/83/b5/7b/83b57b9cb5c0b599da8e6c7515ffd599.jpg 89 | https://i.pinimg.com/originals/04/89/d3/0489d39dd3a5656656144736ce3662b7.jpg 90 | https://i.pinimg.com/originals/d6/11/d2/d611d2669573256d9862392a20f57e7f.png 91 | https://i.pinimg.com/originals/c2/98/cf/c298cf565da845f6485bc544cb4a7603.jpg 92 | https://i.pinimg.com/originals/25/66/5f/25665fb52cee8c6417ef70c70075cf52.jpg 93 | https://i.pinimg.com/originals/94/91/96/949196b6ec53ad06a0e5d89edd8a4fca.jpg 94 | https://i.pinimg.com/originals/c8/39/07/c839075e8a66afb5f3f784bc89c0744e.jpg 95 | https://i.pinimg.com/originals/41/c0/82/41c082a4d12f5d26c4a87d0e8b4a6ca0.jpg 96 | https://i.pinimg.com/originals/5e/31/b3/5e31b3bf1b31fe265021559acce88ba8.jpg 97 | https://i.pinimg.com/originals/6d/5a/e5/6d5ae5994b4b3da25559192a3e1160eb.jpg 98 | https://i.pinimg.com/originals/02/1c/07/021c07431026a37962e33e4d38c50481.png 99 | https://i.pinimg.com/originals/07/46/9d/07469d6936926103df4bc8824bc59fc8.jpg 100 | https://i.pinimg.com/originals/f4/fa/ad/f4faad335bc6296977cbbade347d1094.jpg 101 | -------------------------------------------------------------------------------- /lib/repeat.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /lib/setting.json: -------------------------------------------------------------------------------- 1 | { 2 | "sAdmin": "6285559038021@c.us", 3 | "restartState": false, 4 | "restartId": "undefined", 5 | "banChats": false, 6 | "Rest": true, 7 | "limitCount": 30, 8 | "memberLimit": 25, 9 | "groupLimit": 25, 10 | "prefix": "!", 11 | "mtc": false, 12 | "whitelist": [] 13 | } -------------------------------------------------------------------------------- /lib/sewa_bot.json: -------------------------------------------------------------------------------- 1 | [ 2 | "27731052724-1606073820@g.us", 3 | "6285796782622-1599401714@g.us", 4 | "6285340137116-1604642870@g.us", 5 | "6281288606414-1602045119@g.us", 6 | "18092566068-1607055744@g.us", 7 | "6289523258649-1604595598@g.us", 8 | "6288233282599-1601304366@g.us", 9 | "6288238221335-1599454500@g.us", 10 | "6289523731135-1607173666@g.us", 11 | "6285559038021-1603588233@g.us", 12 | "966572592040-1607332739@g.us", 13 | "6285382455124-1603093165@g.us", 14 | "6282164942592-1593576164@g.us", 15 | "6281339263184-1602325813@g.us", 16 | "6288279620103-1585830877@g.us", 17 | "27632122007-1608630746@g.us", 18 | "27798047077-1596577393@g.us", 19 | "6281584142535-1599968792@g.us", 20 | "447393449331-1606402794@g.us", 21 | "27727649602-1597074742@g.us", 22 | "6289502799316-1605194459@g.us", 23 | "6285559038021-1605869468@g.us", 24 | "6289628310364-1591412063@g.us", 25 | "6281776952371-1588857268@g.us", 26 | "6288258030557-1597672927@g.us", 27 | "6287723637392-1608550210@g.us", 28 | "6283142321131-1609239189@g.us", 29 | "6289652018855-1608729648@g.us", 30 | "919025374268-1606401934@g.us", 31 | "6285156902925-1594041349@g.us", 32 | "6285721733043-1609557240@g.us", 33 | "6285860637879-1606305531@g.us", 34 | "6283805191681-1604633071@g.us", 35 | "6285883786063-1609034899@g.us", 36 | { 37 | "id": "27632122007-1608630746@g.us", 38 | "nama": "⛓️✨ hip hop world✨⛓️", 39 | "count": "10" 40 | } 41 | ] -------------------------------------------------------------------------------- /lib/shortener.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch') 2 | 3 | module.exports = shortener = (url) => { 4 | return new Promise(async (resolve, reject) => { 5 | // console.log('Creating short url...') 6 | await fetch(`https://tinyurl.com/api-create.php?url=${url}`) 7 | .then(response => response.text()) 8 | .then(json => { 9 | resolve(json) 10 | }) 11 | .catch((err) => { 12 | reject(err) 13 | }); 14 | }) 15 | }; -------------------------------------------------------------------------------- /lib/tikel_makel.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch') 2 | 3 | const BikinTikel = (link) => new Promise((resolve, reject) => { 4 | fetch('http://api.areltiyan.site/sticker_maker?text='+encodeURIComponent(link), { 5 | method: 'GET', 6 | }) 7 | .then(async res => { 8 | const text = await res.json() 9 | resolve(text) 10 | }) 11 | .catch(err => reject(err)) 12 | }); 13 | exports.BikinTikel = BikinTikel -------------------------------------------------------------------------------- /lib/tiktod.js: -------------------------------------------------------------------------------- 1 | const tiktok = require('tiktok-scraper') 2 | const { exec } = require('child_process') 3 | 4 | // const url = 'https://vt.tiktok.com/ZSsY7d9S/' 5 | 6 | function tiktod(url) { 7 | return new Promise((resolve, reject) => { 8 | try { 9 | tiktok.getVideoMeta(url) 10 | .then((result) => { 11 | const data = result.collector[0] 12 | let Tag = [] 13 | for (let i = 0; i < data.hashtags.length; i++) { 14 | const name = data.hashtags[i].name 15 | Tag.push(name) 16 | } 17 | // console.log(data) 18 | const id = data.id 19 | const text = data.text 20 | const date = data.createTime 21 | const name = data.authorMeta.name 22 | const nick = data.authorMeta.nickName 23 | const music = data.musicMeta.musicName 24 | const thumb = data.imageUrl 25 | const hastag = Tag 26 | 27 | resolve({ 28 | id: id, 29 | name: name, 30 | nickname: nick, 31 | timestamp: date, 32 | thumb: thumb, 33 | text: text, 34 | music: music, 35 | hastag: hastag 36 | }) 37 | }) 38 | .catch(reject) 39 | } catch (error) { 40 | console.log(error) 41 | } 42 | }) 43 | } 44 | 45 | module.exports.tiktod = tiktod -------------------------------------------------------------------------------- /lib/translate.js: -------------------------------------------------------------------------------- 1 | const { default: translate } = require('google-translate-open-api') 2 | 3 | /** 4 | * Translate Text 5 | * @param {String} text 6 | * @param {String} lang 7 | */ 8 | 9 | module.exports = doing = (text, lang) => new Promise((resolve, reject) => { 10 | console.log(`Translate text to ${lang}...`) 11 | translate(text, { tld: 'cn', to: lang }) 12 | .then((text) => resolve(text.data[0])) 13 | .catch((err) => reject(err)) 14 | }) 15 | -------------------------------------------------------------------------------- /lib/vip.json: -------------------------------------------------------------------------------- 1 | ["6285559038021@c.us"] -------------------------------------------------------------------------------- /lib/welcome.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs-extra') 2 | 3 | module.exports = welcome = async (client, event) => { 4 | //console.log(event.action) 5 | const welkom = JSON.parse(fs.readFileSync('./lib/welcome.json')) 6 | const isWelkom = welkom.includes(event.chat) 7 | try { 8 | if (event.action == 'add' && isWelkom) { 9 | const gChat = await client.getChatById(event.chat) 10 | const pChat = await client.getContact(event.who) 11 | const { contact, groupMetadata, name } = gChat 12 | const pepe = await client.getProfilePicFromServer(event.who) 13 | const capt = `Halo member baru👋, Welcome to group *${name}* selamat bergabung dan juga semoga betah disini.` 14 | if (pepe == '' || pepe == undefined) { 15 | await client.sendFileFromUrl(event.chat, 'https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTQcODjk7AcA4wb_9OLzoeAdpGwmkJqOYxEBA&usqp=CAU', 'profile.jpg', capt) 16 | } else { 17 | await client.sendFileFromUrl(event.chat, pepe, 'profile.jpg', capt) 18 | } 19 | 20 | } 21 | } catch (err) { 22 | console.log(err) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/welcome.json: -------------------------------------------------------------------------------- 1 | ["6282281088789-1606212160@g.us","6282281088789-1606212160@g.us","6282281088789-1606212160@g.us","6281267536856-1598621588@g.us","6282385044446-1600663083@g.us","62895321217901-1595865261@g.us","6282281088789-1606212160@g.us","6282281088789-1606212160@g.us","6281245672346-1597324061@g.us","6285216490187-1558621310@g.us","6282281088789-1606444360@g.us","6285738845813-1604213967@g.us","6285738845813-1604213967@g.us","6285738845813-1604213967@g.us","6285738845813-1604213967@g.us","6288276539599-1605067578@g.us","6288276539599-1605067578@g.us","6288276539599-1605067578@g.us","6288276539599-1605067578@g.us","6288276539599-1605067578@g.us","62877166127360-1606545250@g.us","62877166127360-1606545250@g.us","6288276539599-1605067578@g.us","6283801142336-1603720043@g.us","6282247827347-1600514720@g.us","6288276539599-1605067578@g.us","6282281088789-1606212160@g.us","6288276539599-1605067578@g.us","6281946983575-1600418180@g.us","6282385044446-1600663083@g.us","6282244703558-1567690168@g.us","263773697172-1599303842@g.us","263773697172-1599303842@g.us","6285738845813-1604213967@g.us","6282244703558-1567690168@g.us","6285796782622-1599401714@g.us","6282385044446-1600663083@g.us","6289503455787-1601473776@g.us","6285232203745-1602849375@g.us","6289628310364-1591412063@g.us","62895321217901-1595865261@g.us","27731052724-1606073820@g.us","27731052724-1606073820@g.us","6285216810127-1602212654@g.us","6285340137116-1604642870@g.us","6281288606414-1602045119@g.us","6288233282599-1601304366@g.us","6289628310364-1591412063@g.us","6289628310364-1591412063@g.us","6289503455787-1601473776@g.us","6288238221335-1599454500@g.us","6281292263792-1606878236@g.us","6283801142336-1603720043@g.us","6285340137116-1604642870@g.us","6281292263792-1606878236@g.us","6281292263792-1606878236@g.us","6281291165261-1607413156@g.us","18123285271-1607405017@g.us","6281336286149-1607486309@g.us","6288292047176-1595334930@g.us","6285333817061-1602076017@g.us","6281292263792-1606878236@g.us","6281339263184-1602325813@g.us","6281339263184-1602325813@g.us","6281339263184-1602325813@g.us","6285706644628-1574845854@g.us","6282239506212-1601897780@g.us","6288292047176-1595334930@g.us","6281236755657-1608091070@g.us","6283803956685-1603183513@g.us","6289628310364-1591412063@g.us","6281213089927-1607788140@g.us","6281236755657-1608091070@g.us","6281776952371-1588857268@g.us","6289526924934-1608943263@g.us","6289526924934-1608943263@g.us","6282171309945-1608683575@g.us","6282171309945-1608683575@g.us","6288295863159-1604820077@g.us","6288295863159-1604820077@g.us","6289652018855-1608729648@g.us","6285378968459-1609249959@g.us","6285378968459-1607395988@g.us","6283142321131-1609239189@g.us","6283142321131-1609239189@g.us","6285860637879-1606305531@g.us","6283142321131-1609239189@g.us","6289652018855-1608729648@g.us","6289652018855-1608729648@g.us","6289617354652-1605319669@g.us","6282268305363-1609405880@g.us","6288295863159-1604820077@g.us","6289638302977-1600751890@g.us","6289638302977-1600751890@g.us","6282117048795-1591949033@g.us","6282117048795-1591949033@g.us","6288276274179-1604215866@g.us","6281547371314-1602209363@g.us","6281547371314-1602209363@g.us","6285721733043-1609557240@g.us","6281213089927-1607788140@g.us"] -------------------------------------------------------------------------------- /lib/ytdl.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch') 2 | const { JSDOM } = require('jsdom') 3 | const fs = require('fs') 4 | const os = require('os') 5 | const path = require('path') 6 | const util = require('util') 7 | const moment = require('moment-timezone') 8 | const time = moment().format('DD/MM HH:mm:ss') 9 | const color = require('./color') 10 | const { Readable, Writable } = require('stream') 11 | 12 | const ytIdRegex = /(?:http(?:s|):\/\/|)(?:(?:www\.|)youtube(?:\-nocookie|)\.com\/(?:watch\?.*(?:|\&)v=|embed\/|v\/)|youtu\.be\/)([-_0-9A-Za-z]{11})/ 13 | 14 | function INFOLOG(info) { 15 | return console.log('\x1b[1;34m~\x1b[1;37m>>', '[\x1b[1;33mINF\x1b[1;37m]', time, color(info)) 16 | } 17 | 18 | function post(url, formdata) { 19 | INFOLOG(Object.keys(formdata).map(key => `${key}=${encodeURIComponent(formdata[key])}`).join('&')) 20 | return fetch(url, { 21 | method: 'POST', 22 | headers: { 23 | accept: "*/*", 24 | 'accept-language': "en-US,en;q=0.9", 25 | 'content-type': "application/x-www-form-urlencoded; charset=UTF-8" 26 | }, 27 | body: Object.keys(formdata).map(key => `${key}=${encodeURIComponent(formdata[key])}`).join('&') 28 | }) 29 | } 30 | 31 | function ytv(url) { 32 | return new Promise((resolve, reject) => { 33 | if (ytIdRegex.test(url)) { 34 | let ytId = ytIdRegex.exec(url) 35 | url = 'https://youtu.be/' + ytId[1] 36 | post('https://www.y2mate.com/mates/en60/analyze/ajax', { 37 | url, 38 | q_auto: 0, 39 | ajax: 1 40 | }) 41 | .then(res => res.json()) 42 | .then(res => { 43 | INFOLOG('Scraping...') 44 | document = (new JSDOM(res.result)).window.document 45 | yaha = document.querySelectorAll('td') 46 | filesize = yaha[yaha.length - 23].innerHTML 47 | id = /var k__id = "(.*?)"/.exec(document.body.innerHTML) || ['', ''] 48 | thumb = document.querySelector('img').src 49 | title = document.querySelector('b').innerHTML 50 | 51 | post('https://www.y2mate.com/mates/en60/convert', { 52 | type: 'youtube', 53 | _id: id[1], 54 | v_id: ytId[1], 55 | ajax: '1', 56 | token: '', 57 | ftype: 'mp4', 58 | fquality: 360 59 | }) 60 | .then(res => res.json()) 61 | .then(res => { 62 | let KB = parseFloat(filesize) * (1000 * /MB$/.test(filesize)) 63 | resolve({ 64 | dl_link: / { 78 | if (ytIdRegex.test(url)) { 79 | let ytId = ytIdRegex.exec(url) 80 | url = 'https://youtu.be/' + ytId[1] 81 | post('https://www.y2mate.com/mates/en60/analyze/ajax', { 82 | url, 83 | q_auto: 0, 84 | ajax: 1 85 | }) 86 | .then(res => res.json()) 87 | .then(res => { 88 | let document = (new JSDOM(res.result)).window.document 89 | let type = document.querySelectorAll('td') 90 | let filesize = type[type.length - 10].innerHTML 91 | let id = /var k__id = "(.*?)"/.exec(document.body.innerHTML) || ['', ''] 92 | let thumb = document.querySelector('img').src 93 | let title = document.querySelector('b').innerHTML 94 | 95 | post('https://www.y2mate.com/mates/en60/convert', { 96 | type: 'youtube', 97 | _id: id[1], 98 | v_id: ytId[1], 99 | ajax: '1', 100 | token: '', 101 | ftype: 'mp3', 102 | fquality: 128 103 | }) 104 | .then(res => res.json()) 105 | .then(res => { 106 | let KB = parseFloat(filesize) * (1000 * /MB$/.test(filesize)) 107 | resolve({ 108 | dl_link: /} 202 | */ 203 | function stream2Buffer(cb = noop) { 204 | return new Promise(resolve => { 205 | let write = new Writable() 206 | write.data = [] 207 | write.write = function (chunk) { 208 | this.data.push(chunk) 209 | } 210 | write.on('finish', function () { 211 | resolve(Buffer.concat(this.data)) 212 | }) 213 | 214 | cb(write) 215 | }) 216 | } 217 | 218 | /** 219 | * Convert Buffer to Readable Stream 220 | * @param {Buffer} buffer 221 | * @returns {ReadableStream} 222 | */ 223 | function buffer2Stream(buffer) { 224 | return new Readable({ 225 | read() { 226 | this.push(buffer) 227 | this.push(null) 228 | } 229 | }) 230 | } 231 | 232 | /** 233 | * No Operation 234 | * */ 235 | function noop() { } 236 | 237 | module.exports.baseURI = baseURI 238 | module.exports.ytsr = ytsr 239 | module.exports.yta = yta 240 | module.exports.ytv = ytv 241 | module.exports.buffer2Stream = buffer2Stream 242 | module.exports.stream2Buffer = stream2Buffer 243 | module.exports.noop = noop -------------------------------------------------------------------------------- /media/CSstik.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/CSstik.png -------------------------------------------------------------------------------- /media/DGC.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/DGC.jpg -------------------------------------------------------------------------------- /media/Freedom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/Freedom.png -------------------------------------------------------------------------------- /media/adzan/adzan_bayati.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/adzan/adzan_bayati.mp3 -------------------------------------------------------------------------------- /media/adzan/magrib_bdg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/adzan/magrib_bdg.jpg -------------------------------------------------------------------------------- /media/adzan/shubuh_bdg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/adzan/shubuh_bdg.png -------------------------------------------------------------------------------- /media/aswu-stik.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/aswu-stik.jpeg -------------------------------------------------------------------------------- /media/aswu.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/aswu.jpeg -------------------------------------------------------------------------------- /media/aswu.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/aswu.mp4 -------------------------------------------------------------------------------- /media/freedom-qris.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/freedom-qris.jpeg -------------------------------------------------------------------------------- /media/gifstik.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/gifstik.mp4 -------------------------------------------------------------------------------- /media/img/Kaguya.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/img/Kaguya.png -------------------------------------------------------------------------------- /media/img/after.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/img/after.jpg -------------------------------------------------------------------------------- /media/img/before.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/img/before.jpg -------------------------------------------------------------------------------- /media/img/dgc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/img/dgc.jpg -------------------------------------------------------------------------------- /media/img/nimek.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/img/nimek.jpg -------------------------------------------------------------------------------- /media/img/nulez.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/img/nulez.jpg -------------------------------------------------------------------------------- /media/img/screenshot.jpeg: -------------------------------------------------------------------------------- 1 | Maximum api call count reached. -------------------------------------------------------------------------------- /media/img/tes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/img/tes.jpg -------------------------------------------------------------------------------- /media/img/tutod.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/img/tutod.jpg -------------------------------------------------------------------------------- /media/imgscale.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/imgscale.jpeg -------------------------------------------------------------------------------- /media/mp3yt/mp3nya.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/mp3yt/mp3nya.mp3 -------------------------------------------------------------------------------- /media/nyanyi/botnyanyi.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/nyanyi/botnyanyi.mp3 -------------------------------------------------------------------------------- /media/output-aa.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/output-aa.gif -------------------------------------------------------------------------------- /media/output-stik.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/output-stik.jpeg -------------------------------------------------------------------------------- /media/output.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/output.gif -------------------------------------------------------------------------------- /media/outputne.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/outputne.jpeg -------------------------------------------------------------------------------- /media/saved_stickers/Baushsns.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/Baushsns.jpg -------------------------------------------------------------------------------- /media/saved_stickers/DOIAING.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/DOIAING.jpg -------------------------------------------------------------------------------- /media/saved_stickers/Gass yuk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/Gass yuk.jpg -------------------------------------------------------------------------------- /media/saved_stickers/JUST4FUN😎.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/JUST4FUN😎.jpg -------------------------------------------------------------------------------- /media/saved_stickers/Kucing 1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/Kucing 1.jpg -------------------------------------------------------------------------------- /media/saved_stickers/Marah.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/Marah.jpg -------------------------------------------------------------------------------- /media/saved_stickers/Zikran Tolol.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/Zikran Tolol.jpg -------------------------------------------------------------------------------- /media/saved_stickers/abdillah.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/abdillah.jpg -------------------------------------------------------------------------------- /media/saved_stickers/bagi dua.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/bagi dua.jpg -------------------------------------------------------------------------------- /media/saved_stickers/bay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/bay.jpg -------------------------------------------------------------------------------- /media/saved_stickers/bokep.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/bokep.jpg -------------------------------------------------------------------------------- /media/saved_stickers/ciw.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/ciw.jpg -------------------------------------------------------------------------------- /media/saved_stickers/ciwi ciwi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/ciwi ciwi.jpg -------------------------------------------------------------------------------- /media/saved_stickers/ehan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/ehan.jpg -------------------------------------------------------------------------------- /media/saved_stickers/gurl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/gurl.jpg -------------------------------------------------------------------------------- /media/saved_stickers/hadeh.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/hadeh.jpg -------------------------------------------------------------------------------- /media/saved_stickers/hoo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/hoo.jpg -------------------------------------------------------------------------------- /media/saved_stickers/isi cakra.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/isi cakra.jpg -------------------------------------------------------------------------------- /media/saved_stickers/jadi sunda.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/jadi sunda.jpg -------------------------------------------------------------------------------- /media/saved_stickers/kamui.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/kamui.jpg -------------------------------------------------------------------------------- /media/saved_stickers/kaseglom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/kaseglom.jpg -------------------------------------------------------------------------------- /media/saved_stickers/kat soak.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/kat soak.jpg -------------------------------------------------------------------------------- /media/saved_stickers/kat whoah.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/kat whoah.jpg -------------------------------------------------------------------------------- /media/saved_stickers/ko tol.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/ko tol.jpg -------------------------------------------------------------------------------- /media/saved_stickers/lauk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/lauk.jpg -------------------------------------------------------------------------------- /media/saved_stickers/marea.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/marea.jpg -------------------------------------------------------------------------------- /media/saved_stickers/milik kita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/milik kita.jpg -------------------------------------------------------------------------------- /media/saved_stickers/mr beans.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/mr beans.jpg -------------------------------------------------------------------------------- /media/saved_stickers/mumut.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/mumut.jpg -------------------------------------------------------------------------------- /media/saved_stickers/nibba.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/nibba.jpg -------------------------------------------------------------------------------- /media/saved_stickers/pacaran ga perlu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/pacaran ga perlu.jpg -------------------------------------------------------------------------------- /media/saved_stickers/packk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/packk.jpg -------------------------------------------------------------------------------- /media/saved_stickers/pat botol.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/pat botol.jpg -------------------------------------------------------------------------------- /media/saved_stickers/pat hekel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/pat hekel.jpg -------------------------------------------------------------------------------- /media/saved_stickers/pat rik.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/pat rik.jpg -------------------------------------------------------------------------------- /media/saved_stickers/pattt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/pattt.jpg -------------------------------------------------------------------------------- /media/saved_stickers/saddd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/saddd.jpg -------------------------------------------------------------------------------- /media/saved_stickers/salah.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/salah.jpg -------------------------------------------------------------------------------- /media/saved_stickers/so sad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/so sad.jpg -------------------------------------------------------------------------------- /media/saved_stickers/sule.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/sule.jpg -------------------------------------------------------------------------------- /media/saved_stickers/tapi boong.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/tapi boong.jpg -------------------------------------------------------------------------------- /media/saved_stickers/test.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/test.jpg -------------------------------------------------------------------------------- /media/saved_stickers/thaqq.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/thaqq.jpg -------------------------------------------------------------------------------- /media/saved_stickers/ucok.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/ucok.jpg -------------------------------------------------------------------------------- /media/saved_stickers/uhhh.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/uhhh.jpg -------------------------------------------------------------------------------- /media/saved_stickers/wazowski.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/saved_stickers/wazowski.jpg -------------------------------------------------------------------------------- /media/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/screenshot.png -------------------------------------------------------------------------------- /media/sound/DGC-Sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/sound/DGC-Sound.mp3 -------------------------------------------------------------------------------- /media/sound/Dgc-sound-mut.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/sound/Dgc-sound-mut.mp3 -------------------------------------------------------------------------------- /media/suit/batu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/suit/batu.png -------------------------------------------------------------------------------- /media/suit/gunting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/suit/gunting.png -------------------------------------------------------------------------------- /media/suit/kertas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/suit/kertas.png -------------------------------------------------------------------------------- /media/tts/nope.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /media/tts/resAr.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/tts/resAr.mp3 -------------------------------------------------------------------------------- /media/tts/resEn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/tts/resEn.mp3 -------------------------------------------------------------------------------- /media/tts/resId.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/tts/resId.mp3 -------------------------------------------------------------------------------- /media/tts/resJp.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/tts/resJp.mp3 -------------------------------------------------------------------------------- /media/tts/resRu.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/tts/resRu.mp3 -------------------------------------------------------------------------------- /media/tts/tts.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/media/tts/tts.mp3 -------------------------------------------------------------------------------- /msgHndlr.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MRHRTZ/DGC-ChatBotV3/8a4e23464617981e6048ad1b09e409b5f8fdc5e2/msgHndlr.rar -------------------------------------------------------------------------------- /nandaz.data.json: -------------------------------------------------------------------------------- 1 | eyJXQUJyb3dzZXJJZCI6IlwieWNqUnQ3RHB3b0JWNSt0TlUzNGJjdz09XCIiLCJXQVNlY3JldEJ1bmRsZSI6IntcImtleVwiOlwiNFVTa29kMmhRWEl0V2drMjVYN0ExRjJmWTFzSHh5OTc1MjlHQ1VVbUhIZz1cIixcImVuY0tleVwiOlwicCs0cUxvOU9zdU55VnBuSStkVTBvMStNMVhJKzBJelNOSE1XWFNXdy9Jcz1cIixcIm1hY0tleVwiOlwiNFVTa29kMmhRWEl0V2drMjVYN0ExRjJmWTFzSHh5OTc1MjlHQ1VVbUhIZz1cIn0iLCJXQVRva2VuMSI6IlwiZ1Uzck9aNDhZVXB5aXRqd2YxUlVaTGc4YnR2ckpYTjF3clBMcWd6b1Y0ND1cIiIsIldBVG9rZW4yIjoiXCIxQDcrQ3VWVk1BdktwLzNOQlM0NGpWS2F1cVgvZ0xvZ1NVUHhFSGVvMUxySWxqSC95c2d5UFpMMExQQlVRMElObWkwTkZTcml3TmN6Y0M0dz09XCIifQ== -------------------------------------------------------------------------------- /newbot.js: -------------------------------------------------------------------------------- 1 | const wa = require('@open-wa/wa-automate') 2 | const { ev } = require('@open-wa/wa-automate') 3 | const welcome = require('./lib/welcome') 4 | const fs = require('fs-extra') 5 | const welcomeF = require('./lib/freedom') 6 | const color = require('./lib/color') 7 | const welcomeD = require('./lib/dmff') 8 | const moment = require('moment-timezone') 9 | //const msgHandler = require('./msgHndlr') 10 | const options = require('./options') 11 | 12 | //let setting = JSON.parse(fs.readFileSync('./lib/config.json')); 13 | //let {prefix, banChats, restartState: isRestart,mtc: mtcState, whitelist ,sAdmin, limitCount, memberLimit, groupLimit} = setting 14 | const sesi = process.argv[2] ? process.argv[2] : "MRHRTZ" 15 | 16 | moment.tz.setDefault('Asia/Jakarta').locale('id') 17 | const time = moment().format('DD/MM HH:mm:ss') 18 | // Cache handler and check for file change 19 | function INFOLOG(info) { 20 | return console.log('\x1b[1;31m~\x1b[1;37m>>', '[\x1b[1;33mINFO\x1b[1;37m]', time, color(info)) 21 | } 22 | 23 | require('./msgHndlr') 24 | nocache('./msgHndlr', module => INFOLOG(`${module} Telah diupdate!`)) 25 | 26 | const start = async (hurtz = new Hurtz()) => { 27 | console.log('[SERVER] Server Started!') 28 | // Force it to keep the current session 29 | hurtz.onStateChanged(state=>{ 30 | // console.log('statechanged', state) 31 | INFOLOG(`Status berubah ${state}`) 32 | if(state==="CONFLICT" || state==="UNLAUNCHED") hurtz.forceRefocus(); 33 | }) 34 | // cron.schedule('* * * * *', () => { 35 | // const obj = [{id: sAdmin, msg: 1}] 36 | // msgLimit = obj 37 | // fs.writeFileSync('./lib/msgLimit.json', JSON.stringify(obj)) 38 | // }); 39 | 40 | // listening on message 41 | 42 | 43 | hurtz.onMessage((async (message) => { 44 | hurtz.getAmountOfLoadedMessages() 45 | .then((msg) => { 46 | if (msg >= 500) { 47 | hurtz.cutMsgCache() 48 | } 49 | }) 50 | // msgHandler(hurtz, message) 51 | // Message Handler (Loaded from recent cache) 52 | require('./msgHndlr')(hurtz, message) 53 | })) 54 | 55 | hurtz.onGlobalParicipantsChanged((async (xixi) => { 56 | // await welcome(hurtz, xixi) 57 | //left(hurtz, heuh) 58 | if (xixi.action == 'remove' || xixi.action == 'leave') { 59 | hurtz.sendTextWithMentions(chat.id, `Semoga tenang dialam sana @${xixi.who} 😊`) 60 | } else if (xixi.action == 'add') { 61 | hurtz.sendTextWithMentions(chat.id, `Welcome new mem @${xixi.who} :)`) 62 | } 63 | console.log(xixi.action+'ing'+' '+xixi.who) 64 | })) 65 | 66 | hurtz.onAddedToGroup((async (chat) => { 67 | // const whitelist = ["6285216490187-1558621310@g.us","6285559038021-1603688917@g.us"] 68 | // if (sender.id === '6285559038021@c.us') return 69 | // let totalMem = await chat.groupMetadata.participants.length 70 | // if (totalMem < 20) { 71 | // hurtz.sendText(chat.id, `Yaampun member nya cuma ${totalMem}, Kalo mau invite bot, minimal jumlah mem ada 20 atau chat owner!`).then(() => hurtz.leaveGroup(chat.id)).then(() => hurtz.deleteChat(chat.id)) 72 | // } else { 73 | // hurtz.sendText(chat.groupMetadata.id, `Halo warga grup *${chat.contact.name}* terimakasih sudah menginvite bot ini, untuk melihat menu silahkan kirim *!menu*`) 74 | // } 75 | // if (!whitelist.include(chat.id)) { 76 | hurtz.sendText(chat.id, `Berhubungan Server terbatas bot ini hanya untuk grup DGC dan cabangnya!\n\nJika ada pihak yang membutuhkan bot ini untuk digrup donasi dan konfirmasi owner bot\n\nterima kasih.`) 77 | .then(() => hurtz.sendContact(chat.id, '6285559038021@c.us')) 78 | .then(() => hurtz.leaveGroup(chat.id)) 79 | .then(() => hurtz.deleteChat(chat.id)) 80 | // } else { 81 | // hurtz.sendText(chat.id, `Halo semua DGC ChatBot siap melayani semuanya, kecuali klo mati :'D`) 82 | // } 83 | })) 84 | 85 | 86 | /*hurtz.onAck((x => { 87 | const { from, to, ack } = x 88 | if (x !== 3) hurtz.sendSeen(to) 89 | }))*/ 90 | 91 | // listening on Incoming Call 92 | hurtz.onIncomingCall(( async (call) => { 93 | await hurtz.sendText(call.peerJid, 'Maaf, saya tidak bisa menerima panggilan. Telah ditetapkan telpon/vc = block') 94 | .then(() => hurtz.contactBlock(call.peerJid)) 95 | })) 96 | } 97 | 98 | 99 | /** 100 | * uncache if there is file change 101 | * @param {string} module module name or path 102 | * @param {function} cb when module updated 103 | */ 104 | function nocache(module, cb = () => { }) { 105 | console.log('Module', `'${module}'`, 'is now being watched for changes') 106 | require('fs').watchFile(require.resolve(module), async () => { 107 | await uncache(require.resolve(module)) 108 | cb(module) 109 | }) 110 | } 111 | 112 | /** 113 | * uncache a module 114 | * @param {string} module module name or path 115 | */ 116 | function uncache(module = '.') { 117 | return new Promise((resolve, reject) => { 118 | try { 119 | delete require.cache[require.resolve(module)] 120 | resolve() 121 | } catch (e) { 122 | reject(e) 123 | } 124 | }) 125 | } 126 | 127 | 128 | wa.create({ 129 | sessionId: sesi, 130 | ...options(false, start) 131 | }) 132 | .then(hurtz => start(hurtz)) 133 | .catch((error) => console.log(error)) -------------------------------------------------------------------------------- /options.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs-extra') 2 | 3 | module.exports.argsC = { 4 | 5 | } 6 | 7 | module.exports = options = (headless, start) => { 8 | const chromePath = { 9 | win32: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe', // Windows 32 bit 10 | win64: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', // Windows 64 bit 11 | linuxChrome: '/usr/bin/google-chrome-stable', // Linux - Chrome 12 | linuxChromium: '/usr/bin/chromium-browser', // Linux - Chromium 13 | darwin: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' // MacOS 14 | } 15 | 16 | if (fs.existsSync(chromePath.win32)) { 17 | execPath = chromePath.win32 18 | } else if (fs.existsSync(chromePath.win64)) { 19 | execPath = chromePath.win64 20 | } else if (fs.existsSync(chromePath.linuxChrome)) { 21 | execPath = chromePath.linuxChrome 22 | } else if (fs.existsSync(chromePath.linuxChromium)) { 23 | execPath = chromePath.linuxChromium 24 | } else if (process.platform === 'darwin') { 25 | execPath = chromePath.darwin 26 | } else { 27 | console.error(new Error('Google Chrome Is Not Installed')) 28 | process.exit(1) 29 | } 30 | 31 | let argsC = [ 32 | '--disable-2d-canvas-clip-aa', 33 | '--disable-2d-canvas-image-chromium', 34 | '--disable-3d-apis', 35 | '--disable-accelerated-2d-canvas', 36 | '--disable-accelerated-jpeg-decoding', 37 | '--disable-accelerated-mjpeg-decode', 38 | '--disable-accelerated-video-decode', 39 | '--disable-app-list-dismiss-on-blur', 40 | '--disable-audio-output', 41 | '--disable-background-timer-throttling', 42 | '--disable-backgrounding-occluded-windows', 43 | '--disable-breakpad', 44 | '--disable-canvas-aa', 45 | '--disable-client-side-phishing-detection', 46 | '--disable-component-extensions-with-background-pages', 47 | '--disable-composited-antialiasing', 48 | '--disable-default-apps', 49 | '--disable-dev-shm-usage', 50 | '--disable-extensions', 51 | '--disable-features=TranslateUI,BlinkGenPropertyTrees', 52 | '--disable-field-trial-config', 53 | '--disable-fine-grained-time-zone-detection', 54 | '--disable-geolocation', 55 | "--proxy-server='direct://'", 56 | '--proxy-bypass-list=*', 57 | '--disable-gl-extensions', 58 | '--disable-gpu', 59 | '--disable-gpu-early-init', 60 | '--disable-gpu-sandbox', 61 | '--disable-gpu-watchdog', 62 | '--disable-histogram-customizer', 63 | '--disable-in-process-stack-traces', 64 | '--disable-infobars', 65 | '--disable-ipc-flooding-protection', 66 | '--disable-notifications', 67 | '--disable-renderer-backgrounding', 68 | '--disable-session-crashed-bubble', 69 | '--disable-setuid-sandbox', 70 | '--disable-site-isolation-trials', 71 | '--disable-software-rasterizer', 72 | '--disable-sync', 73 | '--disable-threaded-animation', 74 | '--disable-threaded-scrolling', 75 | '--disable-translate', 76 | '--disable-webgl', 77 | '--disable-webgl2', 78 | '--enable-features=NetworkService', 79 | '--force-color-profile=srgb', 80 | '--headless', 81 | '--hide-scrollbars', 82 | '--ignore-certifcate-errors', 83 | '--ignore-certifcate-errors-spki-list', 84 | '--ignore-certificate-errors', 85 | '--ignore-certificate-errors-spki-list', 86 | '--ignore-gpu-blacklist', 87 | '--ignore-ssl-errors', 88 | '--log-level=3', 89 | '--metrics-recording-only', 90 | '--mute-audio', 91 | '--no-crash-upload', 92 | '--no-default-browser-check', 93 | '--no-experiments', 94 | '--no-first-run', 95 | '--no-sandbox', 96 | '--no-zygote', 97 | '--renderer-process-limit=1', 98 | '--safebrowsing-disable-auto-update', 99 | '--silent-debugger-extension-api', 100 | '--single-process', 101 | '--unhandled-rejections=strict', 102 | '--window-position=0,0' 103 | ] 104 | 105 | const argsO = [ 106 | '--no-sandbox', 107 | '--disable-setuid-sandbox', 108 | '--aggressive-cache-discard', 109 | '--disable-cache', 110 | '--disable-application-cache', 111 | '--disable-offline-load-stale-cache', 112 | '--disk-cache-size=0' 113 | ] 114 | const options = { 115 | headless: headless, 116 | autoRefresh: true, 117 | qrTimeout:600, //set to 0 to wait forever for a qr scan 118 | authTimeout:0, //set to 0 to wait forever for connection to phone 119 | restartOnCrash: start, 120 | cacheEnabled: false, 121 | useChrome: true, 122 | killProcessOnBrowserClose: true, 123 | throwErrorOnTosBlock: false, 124 | chromiumArgs: argsC 125 | } 126 | 127 | if (!headless) options['defaultViewport'] = null 128 | return options 129 | } 130 | 131 | // '--no-sandbox', 132 | // '--disable-setuid-sandbox', 133 | // '--aggressive-cache-discard', 134 | // '--disable-cache', 135 | // '--disable-application-cache', 136 | // '--disable-offline-load-stale-cache', 137 | // '--disk-cache-size=0' -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DGC-ChatBotV3", 3 | "version": "2.0.0", 4 | "description": "DGC-ChatBotV3 Adalah suatu bot yang direalisasikan dari suatu komunitas DeepGoreCreepypasta dan diprogram untuk respon tertentu", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node index.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "author": "MRHRTZ", 11 | "license": "Apache-2.0", 12 | "dependencies": { 13 | "@open-wa/wa-automate": "^3.1.12", 14 | "@open-wa/wa-decrypt": "^2.0.1", 15 | "@vitalets/google-translate-api": "^4.0.0", 16 | "axios": "^0.21.0", 17 | "brainly-scraper": "^1.0.2", 18 | "brainly-scraper-v2": "^1.1.0", 19 | "chalk": "^4.1.0", 20 | "download-file": "^0.1.5", 21 | "emoji-regex": "^9.2.0", 22 | "fs-extra": "^9.0.1", 23 | "g-i-s": "^2.1.6", 24 | "get-youtube-id": "^1.0.1", 25 | "gifify": "^2.4.3", 26 | "gify": "^0.2.0", 27 | "google-it": "^1.5.4", 28 | "got": "^11.8.0", 29 | "image-to-base64": "^2.1.1", 30 | "jsdom": "^16.4.0", 31 | "moment-timezone": "^0.5.31", 32 | "mysql": "^2.18.1", 33 | "needle": "^2.5.2", 34 | "nhentai-api": "^3.0.2", 35 | "nhentai-js": "^4.0.0", 36 | "node-cron": "^2.0.3", 37 | "node-fetch": "^2.6.1", 38 | "node-gtts": "^2.0.2", 39 | "performance-now": "^2.1.0", 40 | "pm2": "^4.5.0", 41 | "remove.bg": "^1.3.0", 42 | "request": "^2.88.2", 43 | "scraper-instagram": "^1.0.14", 44 | "sharp": "^0.26.3", 45 | "tiktok-scraper": "^1.4.8", 46 | "util": "^0.12.3", 47 | "version": "^0.1.2", 48 | "video-url-link": "^0.1.4", 49 | "youtube-v3-api": "^1.1.1" 50 | }, 51 | "directories": { 52 | "lib": "lib" 53 | }, 54 | "devDependencies": {}, 55 | "repository": { 56 | "type": "git", 57 | "url": "git+https://github.com/MRHRTZ/DGC-ChatBotV3" 58 | }, 59 | "keywords": [ 60 | "DGC-ChatBotV3" 61 | ], 62 | "bugs": { 63 | "url": "https://github.com/MRHRTZ/DGC-ChatBotV3/issues" 64 | }, 65 | "homepage": "https://github.com/MRHRTZ/DGC-ChatBotV3#readme" 66 | } 67 | -------------------------------------------------------------------------------- /ramdan.data.json: -------------------------------------------------------------------------------- 1 | eyJXQUJyb3dzZXJJZCI6IlwiMVI5STZTZUNwL3A0L205cGhCU1d0UT09XCIiLCJXQVNlY3JldEJ1bmRsZSI6IntcImtleVwiOlwiaVNzTHRSODMyTHBsTTlYWWo5dDUyajR1eGEyUjVGeFVMWUVqY08yU1ZzVT1cIixcImVuY0tleVwiOlwieVVhdmIrUTVXV3V0ek83UkxEUU9oME5DMzZldDRMMHQ2VHZhSDl1WDg4cz1cIixcIm1hY0tleVwiOlwiaVNzTHRSODMyTHBsTTlYWWo5dDUyajR1eGEyUjVGeFVMWUVqY08yU1ZzVT1cIn0iLCJXQVRva2VuMSI6IlwiTTZuTThqaUdPYW1CMTlnL1oxUmRsTU1SV3JHRHZzNDkvY2E0cGpGREdZbz1cIiIsIldBVG9rZW4yIjoiXCIxQG1FUlllSUlYM3FDckp5UWY2NGE1OW8vS0V6S2dKaG1Rb3hOTi9vSzdMVUMyYnd3T3hVMWhSb0szaEE3R29GcFlXeGI5VVpWa3JzelMyQT09XCIifQ== -------------------------------------------------------------------------------- /ramdan.js: -------------------------------------------------------------------------------- 1 | const wa = require('@open-wa/wa-automate') 2 | const { ev } = require('@open-wa/wa-automate') 3 | const welcome = require('./lib/welcome') 4 | const fs = require('fs-extra') 5 | const welcomeF = require('./lib/freedom') 6 | const color = require('./lib/color') 7 | const welcomeD = require('./lib/dmff') 8 | const moment = require('moment-timezone') 9 | //const msgHandler = require('./msgHndlr') 10 | const options = require('./options') 11 | let setting = JSON.parse(fs.readFileSync('./lib/config.json')); 12 | let {prefix, banChats, restartState: isRestart, mtc: mtcState, whitelist ,sAdmin, limitCount, memberLimit, groupLimit} = setting 13 | const sesi = process.argv[2] ? process.argv[2] : "MRHRTZ" 14 | 15 | moment.tz.setDefault('Asia/Jakarta').locale('id') 16 | const time = moment().format('DD/MM HH:mm:ss') 17 | // Cache handler and check for file change 18 | function INFOLOG(info) { 19 | return console.log('\x1b[1;34m~\x1b[1;37m>>', '[\x1b[1;33mINF\x1b[1;37m]', time, color(info)) 20 | } 21 | 22 | function restartAwal(hurtz){ 23 | setting.restartState = false 24 | isRestart = false 25 | hurtz.sendText(setting.restartId, '✅ _Reset config Completed!_') 26 | setting.restartId = 'undefined' 27 | fs.writeFileSync('./lib/setting.json', JSON.stringify(setting, null,2)); 28 | } 29 | 30 | require('./msgHndlr') 31 | nocache('./msgHndlr', module => INFOLOG(`${module} Telah diupdate!`)) 32 | 33 | const start = async (hurtz = new Hurtz()) => { 34 | 35 | if(isRestart){restartAwal(hurtz);} 36 | 37 | console.log('[SERVER] Server Started!') 38 | // Force it to keep the current session 39 | hurtz.onStateChanged(state=>{ 40 | // console.log('statechanged', state) 41 | INFOLOG(`Status berubah ${state}`) 42 | if(state==="CONFLICT" || state==="UNLAUNCHED") hurtz.forceRefocus(); 43 | }) 44 | // cron.schedule('* * * * *', () => { 45 | // const obj = [{id: sAdmin, msg: 1}] 46 | // msgLimit = obj 47 | // fs.writeFileSync('./lib/msgLimit.json', JSON.stringify(obj)) 48 | // }); 49 | 50 | // listening on message 51 | 52 | 53 | hurtz.onMessage((async (message) => { 54 | hurtz.getAmountOfLoadedMessages() 55 | .then((msg) => { 56 | if (msg >= 500) { 57 | hurtz.cutMsgCache() 58 | } 59 | }) 60 | // msgHandler(hurtz, message) 61 | // Message Handler (Loaded from recent cache) 62 | require('./msgHndlr')(hurtz, message) 63 | })) 64 | 65 | hurtz.onGlobalParicipantsChanged((async (xixi) => { 66 | // await welcome(hurtz, xixi) 67 | //left(hurtz, heuh) 68 | if (xixi.action == 'remove' || xixi.action == 'leave') { 69 | hurtz.sendTextWithMentions(chat.id, `Semoga tenang dialam sana @${xixi.who} 😊`) 70 | } else if (xixi.action == 'add') { 71 | hurtz.sendTextWithMentions(chat.id, `Welcome new mem @${xixi.who} :)`) 72 | } 73 | console.log(xixi.action+'ing'+' '+xixi.who) 74 | })) 75 | 76 | hurtz.onAddedToGroup((async (chat) => { 77 | // const whitelist = ["6285216490187-1558621310@g.us","6285559038021-1603688917@g.us"] 78 | // if (sender.id === '6285559038021@c.us') return 79 | // let totalMem = await chat.groupMetadata.participants.length 80 | // if (totalMem < 20) { 81 | // hurtz.sendText(chat.id, `Yaampun member nya cuma ${totalMem}, Kalo mau invite bot, minimal jumlah mem ada 20 atau chat owner!`).then(() => hurtz.leaveGroup(chat.id)).then(() => hurtz.deleteChat(chat.id)) 82 | // } else { 83 | // hurtz.sendText(chat.groupMetadata.id, `Halo warga grup *${chat.contact.name}* terimakasih sudah menginvite bot ini, untuk melihat menu silahkan kirim *!menu*`) 84 | // } 85 | // if (!whitelist.include(chat.id)) { 86 | hurtz.sendText(chat.id, `Berhubungan Server terbatas bot ini hanya untuk grup DGC dan cabangnya!\n\nJika ada pihak yang membutuhkan bot ini untuk digrup donasi dan konfirmasi owner bot\n\nterima kasih.`) 87 | .then(() => hurtz.sendContact(chat.id, '6285559038021@c.us')) 88 | .then(() => hurtz.leaveGroup(chat.id)) 89 | .then(() => hurtz.deleteChat(chat.id)) 90 | // } else { 91 | // hurtz.sendText(chat.id, `Halo semua DGC ChatBot siap melayani semuanya, kecuali klo mati :'D`) 92 | // } 93 | })) 94 | 95 | 96 | /*hurtz.onAck((x => { 97 | const { from, to, ack } = x 98 | if (x !== 3) hurtz.sendSeen(to) 99 | }))*/ 100 | 101 | // listening on Incoming Call 102 | hurtz.onIncomingCall(( async (call) => { 103 | await hurtz.sendText(call.peerJid, 'Maaf, saya tidak bisa menerima panggilan. Telah ditetapkan telpon/vc = block') 104 | .then(() => hurtz.contactBlock(call.peerJid)) 105 | })) 106 | } 107 | 108 | 109 | /** 110 | * uncache if there is file change 111 | * @param {string} module module name or path 112 | * @param {function} cb when module updated 113 | */ 114 | function nocache(module, cb = () => { }) { 115 | console.log('Module', `'${module}'`, 'is now being watched for changes') 116 | require('fs').watchFile(require.resolve(module), async () => { 117 | await uncache(require.resolve(module)) 118 | cb(module) 119 | }) 120 | } 121 | 122 | /** 123 | * uncache a module 124 | * @param {string} module module name or path 125 | */ 126 | function uncache(module = '.') { 127 | return new Promise((resolve, reject) => { 128 | try { 129 | delete require.cache[require.resolve(module)] 130 | resolve() 131 | } catch (e) { 132 | reject(e) 133 | } 134 | }) 135 | } 136 | 137 | 138 | wa.create({ 139 | sessionId: 'ramdan', 140 | ...options(false, start) 141 | }) 142 | .then(hurtz => start(hurtz)) 143 | .catch((error) => console.log(error)) -------------------------------------------------------------------------------- /tester.data.json: -------------------------------------------------------------------------------- 1 | eyJXQUJyb3dzZXJJZCI6IlwidS9NRythYTVhTDE0dkcxS3NWREFQZz09XCIiLCJXQVNlY3JldEJ1bmRsZSI6IntcImtleVwiOlwiS0lOaGRBUW40aG9ObzBTdnVlVnVSNjk3MmY2U3d2TDR4Q3BrdnRkRTg3ST1cIixcImVuY0tleVwiOlwiTmphcDRhWkhOS281Y01xU1RtSXRDa29vcXNxU1NCZXBoNm1RUUhvSFVHdz1cIixcIm1hY0tleVwiOlwiS0lOaGRBUW40aG9ObzBTdnVlVnVSNjk3MmY2U3d2TDR4Q3BrdnRkRTg3ST1cIn0iLCJXQVRva2VuMSI6IlwiOHZjVEhGdm5sQTcxcmRqbVp6MytEY05tL0RxNllJenhZWVBvcklQaUtzMD1cIiIsIldBVG9rZW4yIjoiXCIxQFdsTVFxUEExMk1JMHZNR2poM1NRR3B3UXEvMjdyeWo1Wi94MGgzNXU2b1NVSTQ3MURHQ1Qzcy9hUnZpTWxYYmVwci9vSExTT01KNHRUUT09XCIifQ== --------------------------------------------------------------------------------