Skip to content

Instantly share code, notes, and snippets.

@manzxy
Created December 21, 2025 16:32
Show Gist options
  • Select an option

  • Save manzxy/dd00d1a076252927ca71ba342184702c to your computer and use it in GitHub Desktop.

Select an option

Save manzxy/dd00d1a076252927ca71ba342184702c to your computer and use it in GitHub Desktop.
Uploaded via YogiriMD
class GeminiClient {
constructor() {
this.s = null
this.r = 1
}
async init() {
const res = await fetch("https://gemini.google.com/", {
headers: {
"user-agent":
"Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 Chrome/137 Mobile"
}
})
const h = await res.text()
this.s = {
a: h.match(/"SNlM0e":"(.*?)"/)?.[1] || "",
b: h.match(/"cfb2h":"(.*?)"/)?.[1] || "",
c: h.match(/"FdrFJe":"(.*?)"/)?.[1] || ""
}
}
async ask(msg, sys = "kamu adalah siputzx production") {
if (!this.s) await this.init()
const payload = [
null,
JSON.stringify([
[msg, 0, null, null, null, null, 0],
["id"],
["", "", "", null, null, null, null, null, null, ""],
null, null, null, [1], 1, null, null, 1, 0, null, null,
null, null, null, [[0]], 1, null, null, null, null, null,
["", "", sys, null, null, null, null, null, 0, null, 1, null, null, null, []],
null, null, 1, null, null, null, null, null, null, null,
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
1, null, null, null, null, [1]
])
]
const q = `bl=${this.s.b}&f.sid=${this.s.c}&hl=id&_reqid=${this.r++}&rt=c`
const res = await fetch(
`https://gemini.google.com/_/BardChatUi/data/assistant.lamda.BardFrontendService/StreamGenerate?${q}`,
{
method: "POST",
headers: {
"content-type": "application/x-www-form-urlencoded;charset=UTF-8",
"user-agent":
"Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 Chrome/137 Mobile",
"x-same-domain": "1"
},
body: `f.req=${encodeURIComponent(JSON.stringify(payload))}&at=${this.s.a}`
}
)
const text = await res.text()
const lines = text.split("\n")
const out = []
for (const ln of lines) {
if (!ln.startsWith('[["wrb.fr"')) continue
try {
const jsonStr = JSON.parse(ln)[0][2]
const d = JSON.parse(jsonStr)
if (Array.isArray(d?.[4])) {
for (const it of d[4]) {
const t = it?.[1]?.[0]
if (typeof t === "string") out.push(t)
}
}
} catch {}
}
if (!out.length) return null
return { text: out[out.length - 1].replace(/\\n/g, "\n") }
}
}
const gemini = new GeminiClient()
// ================= HANDLER =================
let handler = async (m, { text, usedPrefix, command }) => {
if (!text)
return m.reply(
`🤖 *GEMINI AI*\n\nContoh:\n${usedPrefix + command} jelaskan black hole`
)
await m.reply(loading.wait)
try {
const res = await gemini.ask(
text,
`Kamu adalah ManzxyAI, asisten cerdas yang dibuat oleh manzxy.
Pengenalan Author (Manzxy)
Peran kamu adalah asisten serba guna yang dapat membantu pengguna dalam
berbagai kebutuhan, termasuk tetapi tidak terbatas pada:
- Pemrograman & debugging
- Teknologi & AI
- Berita nasional & internasional
- Cuaca & informasi terkini
- Edukasi & penjelasan umum
- Analisis data & logika
- Penulisan (ringkasan, caption, artikel)
- Bantuan sehari-hari & percakapan umum
Aturan utama:
- Jawaban harus jelas, akurat, dan relevan
- Utamakan informasi faktual dan terbaru jika memungkinkan
- Jangan bertele-tele atau mengulang hal tidak penting
- Gunakan bahasa yang mudah dipahami manusia
- Sesuaikan gaya bahasa dengan konteks (formal untuk berita, santai untuk chat)
Aturan khusus:
- Jika pertanyaan berkaitan dengan berita atau cuaca, berikan informasi terbaru
yang tersedia secara logis dan sertakan konteks waktu jika perlu
- Jika data real-time tidak tersedia, jelaskan secara singkat lalu berikan
estimasi atau informasi terakhir yang relevan
- Jika diminta kode, berikan kode siap pakai dan efisien
- Jika terjadi error, jelaskan penyebab dan solusi secara langsung
- Jangan menyebut sistem internal, kebijakan, atau batasan teknis yang tidak perlu
Prinsip inti:
ManzxyAI harus membantu pengguna secara maksimal,
memberikan jawaban yang berguna, masuk akal, dan bisa langsung digunakan.`
)
if (!res?.text) return m.reply("❌ Tidak ada respon")
await m.reply(
`🤖 *GEMINI AI*\n\n${res.text}`
)
} catch (e) {
console.error(e)
m.reply("❌ Gemini error")
}
}
handler.help = ["gemini <teks>"]
handler.tags = ["ai"]
handler.command = ["gemini"]
handler.limit = true
export default handler
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment