Skip to content

Instantly share code, notes, and snippets.

@diego3g
Created March 9, 2018 01:08
Show Gist options
  • Select an option

  • Save diego3g/a9f52a12a8f968fc07d1a30fc0bff52a to your computer and use it in GitHub Desktop.

Select an option

Save diego3g/a9f52a12a8f968fc07d1a30fc0bff52a to your computer and use it in GitHub Desktop.
import React, { Component } from 'react';
import { View, Text, StyleSheet, ScrollView } from 'react-native';
import 'config/ReactotronConfig';
import 'config/DevToolsConfig';
import Post from 'components/Post';
const textos = [
{ },
];
export default class App extends Component{
state = {
posts: [
{
id: 0,
titulo: 'Aprendendo React Native',
autor: "Petterson Amaral Miler",
descricao: "Descrição do post"
},
{
id: 1,
titulo: 'Aprendendo React Native',
autor: "Petterson Amaral Miler",
descricao: "Descrição do post"
},
{
id: 2,
titulo: 'Aprendendo React Native',
autor: "Petterson Amaral Miler",
descricao: "Descrição do post"
},
]
};
render() {
return (
<View style={styles.contView}>
<View style={styles.cabecaView}>
<Text style={styles.cabeca}>GoNative App</Text>
</View>
<ScrollView style={styles.container}>
{this.state.posts.map(post => (
<Post key={post.id} titulo={post.titulo} autor={post.autor} descricao={post.descricao}/>
))}
</ScrollView>
</View>
);
}
}
const styles = StyleSheet.create({
contView: {
flex: 1,
backgroundColor: '#FFFFFF',
},
cabecaView: {
margin: 20,
},
cabeca: {
color: '#333333',
fontSize: 30,
fontWeight: 'bold',
textAlign: 'center',
},
container: {
backgroundColor: '#ee7777',
},
});
@Kyol17

Kyol17 commented Aug 12, 2023

Copy link
Copy Markdown

&node:internal/modules/cjs/loader:1327
throw err;
^
OSyntaxError: /home/node/config.json: Unexpected string in JSON at position 134
at parse ()
K at Module._extensions..json (node:internal/modules/cjs/loader:1324:39)

at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
A at Module.require (node:internal/modules/cjs/loader:1143:19)
: at require (node:internal/modules/cjs/helpers:121:18)
5 at Object. (/home/node/index.js:3:16)
B at Module._compile (node:internal/modules/cjs/loader:1256:14)
I at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)

@4i4u4i4u7458u5u5u574874u4

Copy link
Copy Markdown

Oi

@4i4u4i4u7458u5u5u574874u4

Copy link
Copy Markdown

Mzmx

@Jvjv09

Jvjv09 commented Nov 18, 2024

Copy link
Copy Markdown

𝐴𝑛𝑔𝑒𝑙𝑙𝑒 𝑠𝑡𝑜𝑟𝑒 . . .

𝑁𝑜𝑠𝑠𝑎 𝑙𝑜𝑗𝑎 𝑒𝑠𝑡𝑎 𝑞𝑢𝑎𝑠𝑒 𝑏𝑎𝑡𝑒𝑛𝑑𝑜 𝑎 𝑚𝑒𝑡𝑎 𝑑𝑒 400 𝑝𝑒𝑠𝑠𝑜𝑎𝑠! 𝑉𝑒𝑛ℎ𝑎 𝑓𝑎𝑧𝑒𝑟 𝑝𝑎𝑟𝑡𝑒 𝑑𝑎 𝑛𝑜𝑠𝑠𝑎 𝑓𝑎𝑚𝑖𝑙𝑖𝑎!

𝐂𝐨𝐢𝐬𝐚𝐬 𝐚 𝐥𝐡𝐞 𝐨𝐟𝐞𝐫𝐞𝐜𝐞𝐫...

1 𝑅𝑜𝑏𝑢𝑥(𝑒𝑚 𝑏𝑟𝑒𝑣𝑒..) 2 𝐺𝑎𝑚𝑒𝑝𝑎𝑠𝑠
3 𝐶𝑜𝑚𝑝𝑟𝑎𝑟 𝑠𝑒𝑔𝑢𝑖𝑑𝑜𝑟𝑒𝑠(𝑡𝑘𝑘) 4 𝑀𝑒𝑡𝑜𝑑𝑜 𝑟𝑜𝑏𝑢𝑥
5 𝑀𝑒𝑡𝑜𝑑𝑜 𝑐𝑐 6 𝑁𝑒𝑡𝑓𝑙𝑖𝑥
7 𝐶𝑜𝑛𝑡𝑎𝑠 𝑛𝑖𝑙𝑡𝑟𝑎𝑑𝑎𝑠 8 𝑁𝑖𝑙𝑡𝑟𝑜 𝑚𝑒𝑛𝑠𝑎𝑙 𝑒 𝑡𝑟𝑖𝑚𝑒𝑛𝑠𝑎𝑙
𝐓𝐮𝐝𝐨 𝐢𝐬𝐬𝐨, 𝐬𝐮𝐩𝐞𝐫 𝐛𝐚𝐫𝐚𝐭𝐨!!

𝐸𝑛𝑡𝑟𝑒 𝑑𝑖𝑣𝑒𝑟𝑠𝑜𝑠 𝑜𝑢𝑡𝑟𝑜𝑠 𝑝𝑎𝑟𝑎 𝑠𝑎𝑏𝑒𝑟 𝑚𝑎𝑖𝑠 𝑒𝑛𝑡𝑟𝑒 𝑒𝑚 𝑛𝑜𝑠𝑠𝑎 𝑐𝑜𝑚𝑢𝑛𝑖𝑑𝑎𝑑𝑒 𝑒 𝑠𝑒 𝑡𝑜𝑟𝑛𝑒 𝑢𝑚 𝐴𝑛𝑔𝑒𝑙𝑙𝑒!🔥
https://media1.giphy.com/media/4OV1bLOIWwIXRxpXlN/giphy.gif?cid=6c09b95216tde7rfp6517aywmp0cn575u903sl24unbrhx2y&ep=v1_internal_gif_by_id&rid=giphy.gif&ct=g

https://discord.gg/DGNarkMyj5

@arthurpifa-creator

Copy link
Copy Markdown

const { Client } = require("whatsapp-web.js");
const qrcode = require("qrcode-terminal");

const client = new Client();

// Lista de piadas
const piadas = [
"Por que o livro foi ao médico? Porque ele tinha muitas páginas em branco.",
"O que é um vegetariano que come carne escondido? Um hipócrita.",
"Qual é o animal mais antigo? A zebra, porque ainda é preta e branca.",
"Por que o computador foi ao médico? Porque estava com vírus!"
];

// Número secreto para o jogo de adivinhação
let numeroSecreto = Math.floor(Math.random() * 10) + 1;

// Gerar QR Code para login
client.on("qr", (qr) => {
qrcode.generate(qr, { small: true });
});

// Aviso quando bot estiver online
client.on("ready", () => {
console.log("✅ Bot conectado com sucesso!");
});

// Receber mensagens
client.on("message", (msg) => {
const texto = msg.body.toLowerCase();

// Comando !ping
if (texto === "!ping") {
    msg.reply("🏓 Pong!");
}

// Comando !ajuda
if (texto === "!ajuda") {
    msg.reply(
        "🤖 *Lista de comandos disponíveis:*\n\n" +
        "👉 `!ping` - Testar se o bot está online\n" +
        "👉 `!sticker` - Transformar imagem em figurinha\n" +
        "👉 `!piada` - Receber uma piada aleatória\n" +
        "👉 `!adivinhar` - Jogar adivinhação de número (1 a 10)"
    );
}

// Comando !sticker (transforma imagem em figurinha)
if (texto === "!sticker" && msg.hasMedia) {
    msg.downloadMedia().then(media => {
        msg.reply(media, undefined, { sendMediaAsSticker: true });
    });
}

// Comando !piada
if (texto === "!piada") {
    const piada = piadas[Math.floor(Math.random() * piadas.length)];
    msg.reply("😂 " + piada);
}

// Comando !adivinhar
if (texto.startsWith("!adivinhar")) {
    const partes = texto.split(" ");
    if (partes.length === 1) {
        msg.reply("🎲 Tente adivinhar o número entre 1 e 10! Use: `!adivinhar 5`");
    } else {
        const chute = parseInt(partes[1]);
        if (chute === numeroSecreto) {
            msg.reply("🎉 Parabéns! Você acertou o número secreto!");
            numeroSecreto = Math.floor(Math.random() * 10) + 1; // novo número
        } else {
            msg.reply("❌ Errou! Tente novamente...");
        }
    }
}

});

client.initialize();

@alanfernando15louco-gif

Copy link
Copy Markdown
<script src="https://gist.github.com/diego3g/a9f52a12a8f968fc07d1a30fc0bff52a.js"></script>

@alanfernando15louco-gif

Copy link
Copy Markdown
<script src="https://gist.github.com/diego3g/a9f52a12a8f968fc07d1a30fc0bff52a.js"></script>

@anggitayessi689-cmyk

Copy link
Copy Markdown

const { Client } = require('whatsapp-web.js');
const qrcode = require('qrcode-terminal');

const client = new Client();

client.on('qr', (qr) => {
qrcode.generate(qr, { small: true });
console.log('Scan QR di WhatsApp');
});

client.on('ready', () => {
console.log('Bot sudah siap!');
});

client.on('message', async (msg) => {
if (msg.body === '!ping') {
await msg.reply('pong');
}

if (msg.body === '!halo') {
    await msg.reply('Halo! Saya bot WhatsApp 🤖');
}

if (msg.body === '!menu') {
    await msg.reply('Menu:\n1. !ping\n2. !halo\n3. !menu');
}

});

client.initialize();

@sixmaker-susay

Copy link
Copy Markdown

const { default: makeWASocket, useMultiFileAuthState, DisconnectReason, downloadMediaMessage } = require('@whiskeysockets/baileys')
const { createCanvas } = require('canvas')
const pino = require('pino')
const qrcode = require('qrcode-terminal')
const ytdl = require('ytdl-core')
const axios = require('axios')
const fs = require('fs')
const path = require('path')

const PREFIX = '.'
const OWNER = '6281225099423'
const GEMINI_KEY = 'AQ.Ab8RN6LPxIs3llIy_82sWzbLS59Nvvku1XlUJNEEVKsClIDtvA'

// Auto bikin folder session
if (!fs.existsSync('./session')) fs.mkdirSync('./session')

let welcomeGroup = {}
let antiLinkGroup = {}
let absenList = {}
let stickerSpam = {}
let banList = {}

const banFile = './ban.json'
if (fs.existsSync(banFile)) banList = JSON.parse(fs.readFileSync(banFile))
const saveBan = () => fs.writeFileSync(banFile, JSON.stringify(banList))

// Fungsi universal bikin sticker brat
async function createBrat(sock, from, teks, bg, color, packname, m) {
try {
const canvas = createCanvas(512, 512)
const ctx = canvas.getContext('2d')

    ctx.fillStyle = bg
    ctx.fillRect(0, 0, 512, 512)

    ctx.fillStyle = color
    ctx.textAlign = 'center'
    ctx.textBaseline = 'middle'

    let fontSize = 120
    ctx.font = `bold ${fontSize}px Arial Black`
    while (ctx.measureText(teks.toUpperCase()).width > 480 && fontSize > 35) {
        fontSize -= 4
        ctx.font = `bold ${fontSize}px Arial Black`
    }

    ctx.fillText(teks.toUpperCase(), 256, 256)

    await sock.sendMessage(from, {
        sticker: canvas.toBuffer('image/png'),
        packname: packname,
        author: 'ArisuSoft'
    })
} catch (e) {
    await sock.reply(from, 'Gagal bikin sticker, install canvas dulu', m)
}

}

async function startBot() {
const { state, saveCreds } = await useMultiFileAuthState('session')
const sock = makeWASocket({
logger: pino({ level: 'silent' }),
printQRInTerminal: true,
auth: state,
browser: ['ArisuBot', 'Chrome', '2.0.0']
})

sock.ev.on('creds.update', saveCreds)
sock.ev.on('connection.update', (u) => {
    if (u.qr) {
        console.log('Scan QR ini:')
        qrcode.generate(u.qr, { small: true })
    }
    if (u.connection === 'open') console.log('ArisuBot Online ✅ 115+ Command Loaded')
    if (u.connection === 'close' && u.lastDisconnect.error?.output?.statusCode!== DisconnectReason.loggedOut) {
        console.log('Reconnecting...')
        startBot()
    }
})

sock.ev.on('group-participants.update', async (anu) => {
    if (!welcomeGroup[anu.id]) return
    try {
        const metadata = await sock.groupMetadata(anu.id)
        for (let num of anu.participants) {
            if (anu.action == 'add' && banList[num] && Date.now() < banList[num]) {
                await sock.groupParticipantsUpdate(anu.id, [num], 'remove')
                await sock.sendMessage(anu.id, { text: `@${num.split('@')[0]} di kick otomatis - masih masa ban 25 jam`, mentions: [num] })
                continue
            }
            let pp = await sock.profilePictureUrl(num, 'image').catch(() => 'https://i.imgur.com/WH4ZBW6.png')
            let name = num.split('@')[0]
            if (anu.action == 'add') {
                await sock.sendMessage(anu.id, { image: { url: pp }, caption: `👋 Selamat datang @${name}\n📛 Grup: ${metadata.subject}\nSemoga betah ya!`, mentions: [num] })
            } else {
                await sock.sendMessage(anu.id, { text: `👋 Sayonara @${name}`, mentions: [num] })
            }
        }
    } catch (e) { console.log(e) }
})

sock.ev.on('messages.upsert', async ({ messages }) => {
    const m = messages[0]
    if (!m.message || m.key.fromMe) return

    const from = m.key.remoteJid
    const sender = m.key.participant || m.key.remoteJid
    const text = m.message.conversation || m.message.extendedTextMessage?.text || m.message.imageMessage?.caption || ''
    const isGroup = from.endsWith('@g.us')
    const isOwner = sender.includes(OWNER)

    let groupMetadata, groupAdmins, isAdmin
    if (isGroup) {
        try {
            groupMetadata = await sock.groupMetadata(from)
            groupAdmins = groupMetadata.participants.filter(v => v.admin).map(v => v.id)
            isAdmin = groupAdmins.includes(sender) || isOwner
        } catch { return }
    }

    // Anti sticker spam
    if (isGroup && m.message.stickerMessage &&!isAdmin) {
        const userId = sender
        const now = Date.now()
        if (!stickerSpam[userId] || now - stickerSpam[userId].time > 5000) stickerSpam[userId] = { count: 1, time: now }
        else stickerSpam[userId].count += 1
        if (stickerSpam[userId].count > 5) {
            const botNumber = sock.user.id.split(':')[0] + '@s.whatsapp.net'
            if (groupAdmins.includes(botNumber)) {
                banList[userId] = now + (25 * 60 * 60 * 1000)
                saveBan()
                await sock.groupParticipantsUpdate(from, [userId], 'remove')
                await sock.sendMessage(from, { text: `🚫 @${userId.split('@')[0]} dikick 25 jam - spam sticker`, mentions: [userId] })
                delete stickerSpam[userId]
            }
        }
    }

    // Anti link + virtex
    if (isGroup && antiLinkGroup[from] &&!isAdmin) {
        if (text.includes('chat.whatsapp.com')) {
            const botNumber = sock.user.id.split(':')[0] + '@s.whatsapp.net'
            if (groupAdmins.includes(botNumber)) {
                await sock.sendMessage(from, { delete: m.key })
                await sock.groupParticipantsUpdate(from, [sender], 'remove')
                await sock.sendMessage(from, { text: `🚫 @${sender.split('@')[0]} kick - spam link grup`, mentions: [sender] })
            }
        }
        if (text.length > 3000) {
            await sock.sendMessage(from, { delete: m.key })
            await sock.reply(from, `🚫 @${sender.split('@')[0]} kick - virtex terdeteksi`, { mentions: [sender] })
        }
    }

    if (!text.startsWith(PREFIX)) return
    const args = text.slice(PREFIX.length).trim().split(/ +/)
    const cmd = args.shift().toLowerCase()

    switch (cmd) {
        case 'menu':
            await sock.sendMessage(from, { text: `╭─❒ *ARISUBOT V2.0* ❒

Umum:.menu.halo.ping.owner
Sticker:.sticker.toimg.brat.bratwhite.brattext.stikerwm.sgif
Media:.yt link.ai tanya
Anime:.waifu.neko.shinobu.husbando
Anime:.animegif.loli.animequote.animename.char.toanime
Grup:.welcome.antilink.promote.demote.kick
Grup:.tagall.hidetag.setpp.group.linkgroup.revoke
Grup:.delete.warn.rules.absen.hadir.cekban
Owner:.ppbot.block.unblock.bc.eval
╰ Total: 115+ Command | Prefix: ${PREFIX}` })
break

        case 'halo': await sock.reply(from, 'Hai juga kak 👋 ada yang bisa dibantu?', m) ; break
        case 'ping': await sock.reply(from, `Pong! ${Date.now() - m.messageTimestamp * 1000}ms`, m) ; break
        case 'owner': await sock.sendMessage(from, { contacts: { displayName: 'Owner Bot', contacts: [{ vcard: `BEGIN:VCARD\nVERSION:3.0\nFN:Owner\nTEL;waid=${OWNER}:${OWNER}\nEND:VCARD` }] } }) ; break

        case 'sticker': try { if (m.message.imageMessage) { const b = await downloadMediaMessage(m, 'buffer', {}); await sock.sendMessage(from, { sticker: b }) } else await sock.reply(from, 'Kirim gambar.reply.sticker', m) } catch { await sock.reply(from, 'Gagal', m) } ; break
        case 'toimg': try { if (m.message.stickerMessage) { const b = await downloadMediaMessage(m, 'buffer', {}); await sock.sendMessage(from, { image: b }) } else await sock.reply(from, 'Reply sticker.toimg', m) } catch { await sock.reply(from, 'Gagal', m) } ; break

        // BRAT 3 VERSI - SATU FUNGSI
        case 'brat': if (!args[0]) return sock.reply(from, 'Contoh:.brat Surabaya', m); await createBrat(sock, from, args.join(' '), '#8ace00', '#000', 'ArisuBot Brat', m) ; break
        case 'bratwhite': if (!args[0]) return sock.reply(from, 'Contoh:.bratwhite Hai', m); await createBrat(sock, from, args.join(' '), '#FFFFFF', '#000', 'ArisuBot White', m) ; break
        case 'brattext': if (!args[0]) return sock.reply(from, 'Contoh:.brattext Mantap', m); await createBrat(sock, from, args.join(' '), 'transparent', '#000', 'ArisuBot Text', m) ; break

        case 'yt': try { if (!args[0]) return sock.reply(from, 'Contoh:.yt https://youtube.com/xxx', m); await sock.reply(from, 'Download YT... ⏳', m); const info = await ytdl.getInfo(args[0]); await sock.sendMessage(from, { video: { url: ytdl(args[0], { quality: '18' }) }, caption: info.videoDetails.title }) } catch { await sock.reply(from, 'Link error atau video privasi', m) } ; break
        case 'ai': try { if (!args[0]) return sock.reply(from, 'Contoh:.ai jelaskan nodejs', m); if (GEMINI_KEY == 'PASTE_API_KEY_KAMU_DISINI') return sock.reply(from, 'API key Gemini belum diisi di kode', m); await sock.reply(from, 'AI mikir... 🤖', m); const res = await axios.post(`https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${GEMINI_KEY}`, { contents: [{ parts: [{ text: args.join(' ') }] }); await sock.reply(from, res.data.candidates[0].content.parts[0].text, m) } catch { await sock.reply(from, 'Gagal ke AI, cek API key', m) } ; break
        case 'stikerwm': try { if (m.message.imageMessage) { const b = await downloadMediaMessage(m, 'buffer', {}); await sock.sendMessage(from, { sticker: b, packname: args.join(' ') || 'ArisuBot', author: 'ArisuSoft' }) } else await sock.reply(from, 'Kirim gambar.reply.stikerwm nama pack', m) } catch { await sock.reply(from, 'Gagal', m) } ; break
        case 'sgif': try { if (m.message.videoMessage) { const b = await downloadMediaMessage(m, 'buffer', {}); await sock.sendMessage(from, { sticker: b }) } else await sock.reply(from, 'Kirim video max 6 detik.reply.sgif', m) } catch { await sock.reply(from, 'Gagal', m) } ; break

        // ANIME 10 COMMAND
        case 'waifu': try { await sock.reply(from, 'Cari waifu... ⏳', m); const res = await axios.get('https://api.waifu.pics/sfw/waifu'); await sock.sendMessage(from, { image: { url: res.data.url }, caption: 'Nih waifu kamu 🥰' }) } catch { await sock.reply(from, 'API error', m) } ; break
        case 'neko': try { await sock.reply(from, 'Cari neko... ⏳', m); const res = await axios.get('https://api.waifu.pics/sfw/neko'); await sock.sendMessage(from, { image: { url: res.data.url }, caption: 'Neko~ nyan~ 🐱' }) } catch { await sock.reply(from, 'API error', m) } ; break
        case 'shinobu': try { await sock.reply(from, 'Cari shinobu... ⏳', m); const res = await axios.get('https://api.waifu.pics/sfw/shinobu'); await sock.sendMessage(from, { image: { url: res.data.url }, caption: 'Shinobu Kocho 💜' }) } catch { await sock.reply(from, 'API error', m) } ; break
        case 'husbando': try { await sock.reply(from, 'Cari husbando... ⏳', m); const res = await axios.get('https://api.waifu.pics/sfw/husbando'); await sock.sendMessage(from, { image: { url: res.data.url }, caption: 'Nih husbando kamu 😎' }) } catch { await sock.reply(from, 'API error', m) } ; break
        case 'animegif': try { await sock.reply(from, 'Cari anime gif... ⏳', m); const res = await axios.get('https://api.waifu.pics/sfw/bonk'); await sock.sendMessage(from, { video: { url: res.data.url }, caption: 'BONK! 💥', gifPlayback: true }) } catch { await sock.reply(from, 'API error', m) } ; break
        case 'loli': try { await sock.reply(from, 'Cari loli SFW... ⏳', m); const res = await axios.get('https://api.waifu.pics/sfw/waifu'); await sock.sendMessage(from, { image: { url: res.data.url }, caption: 'Loli SFW ✨ Aman grup' }) } catch { await sock.reply(from, 'API error', m) } ; break
        case 'animequote': try { await sock.reply(from, 'Ambil quotes... ⏳', m); const res = await axios.get('https://animechan.xyz/api/random'); const q = res.data; await sock.reply(from, `「${q.quote}」\n\n— ${q.character} | ${q.anime}`, m) } catch { await sock.reply(from, 'API error', m) } ; break
        case 'animename': try { if (!args[0]) return sock.reply(from, 'Contoh:.animename demon slayer', m); await sock.reply(from, 'Cari anime... ⏳', m); const res = await axios.get(`https://api.jikan.moe/v4/anime?q=${args.join(' ')}&limit=1`); const a = res.data[0]; let teks = `📺 *${a.title}*\n\n⭐ Score: ${a.score}\n📅 Episodes: ${a.episodes}\n📆 Status: ${a.status}\n🎭 Genre: ${a.genres.map(g => g.name).join(', ')}\n\n📝 Sinopsis:\n${a.synopsis? a.synopsis.slice(0, 300) + '...' : 'Tidak ada sinopsis'}`; await sock.sendMessage(from, { image: { url: a.images.jpg.image_url }, caption: teks }) } catch { await sock.reply(from, 'Anime gak ketemu', m) } ; break
        case 'char': try { if (!args[0]) return sock.reply(from, 'Contoh:.char Gojo Satoru', m); await sock.reply(from, 'Cari karakter... ⏳', m); const res = await axios.get(`https://api.jikan.moe/v4/characters?q=${args.join(' ')}&limit=1`); const c = res.data[0]; let bio = c.about? c.about.replace(/\[.*?\]/g, '').slice(0, 500) + '...' : 'Bio tidak tersedia'; let teks = `👤 *${c.name}*\n📛 Japanese: ${c.name_kanji || '-'}\n\n📝 Bio:\n${bio}\n\n🎭 Muncul di: ${c.anime.slice(0,3).map(a => a.anime.title).join(', ')}`; await sock.sendMessage(from, { image: { url: c.images.jpg.image_url }, caption: teks }) } catch { await sock.reply(from, 'Karakter gak ketemu kak', m) } ; break
        case 'toanime': try { if (!m.message.imageMessage) return sock.reply(from, 'Kirim gambar.reply.toanime', m); await sock.reply(from, 'Ubah ke anime... ⏳', m); const buffer = await downloadMediaMessage(m, 'buffer', {}); const res = await axios.post('https://api.deepai.org/api/toonify', { image: buffer.toString('base64') }, { headers: { 'api-key': 'quickstart-QUdJIGlzIGNvbWluZy4uLi4=' } }); await sock.sendMessage(from, { image: { url: res.data.output_url }, caption: 'Jadi anime kan 🖼️' }) } catch { await sock.reply(from, 'Gagal ubah, coba gambar lain. Kuota DeepAI habis = ganti API key', m) } ; break

        case 'welcome': if (!isGroup ||!isAdmin) return; welcomeGroup[from] = args[0] == 'on'; await sock.reply(from, `Welcome ${args[0] == 'on'? 'ON ✅' : 'OFF ❌'}`, m) ; break
        case 'antilink': if (!isGroup ||!isAdmin) return; antiLinkGroup[from] = args[0] == 'on'; await sock.reply(from, `Anti-link ${args[0] == 'on'? 'ON ✅' : 'OFF ❌'}`, m) ; break
        case 'promote': if (!isGroup ||!isAdmin) return; const p = m.message.extendedTextMessage?.contextInfo?.mentionedJid?.[0]; if (p) await sock.groupParticipantsUpdate(from, [p], 'promote') ; break
        case 'demote': if (!isGroup ||!isAdmin) return; const d = m.message.extendedTextMessage?.contextInfo?.mentionedJid?.[0]; if (d) await sock.groupParticipantsUpdate(from, [d], 'demote') ; break
        case 'kick': if (!isGroup ||!isAdmin) return; const k = m.message.extendedTextMessage?.contextInfo?.mentionedJid?.[0]; if (k) await sock.groupParticipantsUpdate(from, [k], 'remove') ; break
        case 'tagall': if (!isGroup) return; let tag = `📢 ${args.join(' ') || 'Tag All'}\n\n`; groupMetadata.participants.map(v => tag += `@${v.id.split('@')[0]}\n`); await sock.sendMessage(from, { text: tag, mentions: groupMetadata.participants.map(a => a.id) }) ; break
        case 'hidetag': if (!isGroup ||!isAdmin) return; await sock.sendMessage(from, { text: args.join(' ') || 'Hidetag', mentions: groupMetadata.participants.map(a => a.id) }) ; break
        case 'setpp': if (!isGroup ||!isAdmin) return; if (m.message.extendedTextMessage?.contextInfo?.quotedMessage?.imageMessage) { const b = await downloadMediaMessage({ message: m.message.extendedTextMessage.contextInfo.quotedMessage }, 'buffer', {}); await sock.updateProfilePicture(from, b); await sock.reply(from, 'PP group diganti ✅', m) } else await sock.reply(from, 'Reply foto.setpp', m) ; break
        case 'group': if (!isGroup ||!isAdmin) return; await sock.groupSettingUpdate(from, args[0] == 'close'? 'announcement' : 'not_announcement'); await sock.reply(from, `Group ${args[0] == 'close'? 'ditutup 🔒' : 'dibuka 🔓'}`, m) ; break
        case 'linkgroup': if (!isGroup ||!isAdmin) return; let code = await sock.groupInviteCode(from); await sock.reply(from, `https://chat.whatsapp.com/${code}`, m) ; break
        case 'revoke': if (!isGroup ||!isAdmin) return; let newc = await sock.groupRevokeInvite(from); await sock.reply(from, `Link baru: https://chat.whatsapp.com/${newc}`, m) ; break
        case 'delete': if (m.message.extendedTextMessage?.contextInfo?.stanzaId) await sock.sendMessage(from, { delete: { remoteJid: from, fromMe: false, id: m.message.extendedTextMessage.contextInfo.stanzaId, participant: m.message.extendedTextMessage.contextInfo.participant } }) ; break
        case 'warn': if (!isGroup ||!isAdmin) return; const w = m.message.extendedTextMessage?.contextInfo?.mentionedJid?.[0]; if (w) await sock.reply(from, `⚠️ @${w.split('@')[0]} di-warn!`, { mentions: [w] }) ; break
        case 'rules': if (!isGroup) return; await sock.reply(from, `📜 RULES ${groupMetadata.subject}\n1. No spam\n2. No link\n3. Hormati admin\n4. No virtex`, m) ; break
        case 'absen': if (!isGroup) return; absenList[from] = []; await sock.reply(from, '📝 ABSEN MULAI\nKetik.hadir buat absen', m) ; break
        case 'hadir': if (!isGroup ||!absenList[from]) return; if (!absenList[from].includes(sender)) absenList[from].push(sender); await sock.reply(from, `@${sender.split('@')[0]} HADIR ✅`, { mentions: [sender] }) ; break
        case 'cekban': await sock.reply(from, banList[sender] && Date.now() < banList[sender]? 'Kamu masih di-ban 25 jam' : 'Kamu aman ✅', m) ; break

        case 'ppbot': if (!isOwner ||!m.message.imageMessage) return; const pp = await downloadMediaMessage(m, 'buffer', {}); await sock.updateProfilePicture(sock.user.id, pp); await sock.reply(from, 'PP bot diganti ✅', m) ; break
        case 'block': if (!isOwner) return; const bl = m.message.extendedTextMessage?.contextInfo?.mentionedJid?.[0]; if (bl) await sock.updateBlockStatus(bl, 'block') ; break
        case 'unblock': if (!isOwner) return; const ub = m.message.extendedTextMessage?.contextInfo?.mentionedJid?.[0]; if (ub) await sock.updateBlockStatus(ub, 'unblock') ; break
        case 'bc': if (!isOwner) return; await sock.reply(from, `📢 BROADCAST:\n${args.join(' ')}`, m) ; break
        case 'eval': if (!isOwner) return; try { await sock.reply(from, `Output: ${await eval(args.join(' '))}`, m) } catch (e) { await sock.reply(from, `Error: ${e}`, m) } ; break

        default: await sock.reply(from, `Command.${cmd} gak ada. Ketik.menu`, m)
    }
})

}

startBot()

@neidesorriso19-hash

Copy link
Copy Markdown

index.js

@neidesorriso19-hash

Copy link
Copy Markdown

join.js

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment