Kembali ke katalog plugin
search
ssweb
Ambil screenshot halaman web
Take a screenshot of a web page
plugins/search/ssweb.js
Lokasi file di repo kana-md
3
Perintah termasuk alias
2.4 KB
Ukuran file sumber
4/11/2026
Update terakhir, commit 5e7e0e7
Daftar perintah
Ketuk tombol salin untuk menyalin perintah, lalu tempel di chat WhatsApp bot KANA.
.ssweb.screenshot.ssCara pakai
.ssweb <link web>
Contoh
.ssweb https://example.com
Kode sumber plugin
Cara pasang: simpan file ini ke folder plugins/search/ di bot KANA kamu, lalu restart bot. Pemilik source code lain bisa mengambil update plugin terbaru dari halaman ini kapan saja.
import { getScreenshot } from '../../src/scrapers/search/ssweb.js'
import { sendImage } from '../../src/ui/media.js'
import { sendButtons } from '../../src/ui/buttons.js'
export const config = {
name: 'ssweb',
alias: ['screenshot', 'ss'],
category: 'search',
description: { id: 'Ambil screenshot halaman web', en: 'Take a screenshot of a web page' },
usage: '.ssweb <link web>',
example: '.ssweb https://example.com',
cooldown: 10,
limit: 5,
}
export const i18n = {
id: {
ssweb: {
needUrl: 'Kirim link webnya dulu yaa, contoh: .ssweb https://example.com~',
invalidUrl: 'Mouu, link itu nggak valid atau nggak aman. Pastikan formatnya lengkap yaa~',
failed: 'Mouu, screenshot-nya gagal: {message}. Coba lagi nanti ya~',
caption: 'Screenshot {url}',
hint: 'Catatan: kalau gambarnya masih bertuliskan Generating Preview, itu tandanya layanan screenshot lagi menyiapkan tampilannya. Tunggu sebentar lalu coba lagi yaa~',
btnAgain: 'Ambil lagi',
btnShort: 'Pendekkan link',
},
},
en: {
ssweb: {
needUrl: 'Send the web link first, example: .ssweb https://example.com~',
invalidUrl: 'Mouu, that link is not valid or not safe. Make sure the format is complete~',
failed: 'Mouu, the screenshot failed: {message}. Try again later~',
caption: 'Screenshot of {url}',
hint: 'Note: if the image still says Generating Preview, the screenshot service is preparing the view. Wait a bit and try again~',
btnAgain: 'Take again',
btnShort: 'Shorten link',
},
},
}
export const test = { input: '.ssweb https://omnidevv.vercel.app', expect: /Screenshot/i }
export async function handler(ctx) {
const raw = ctx.args[0]
if (!raw) return ctx.reply(ctx.t('ssweb.needUrl'))
let shot
try {
shot = await getScreenshot(raw)
} catch (err) {
if (/tidak valid|http atau https|tidak diizinkan|privat/i.test(err.message)) {
return ctx.reply(ctx.t('ssweb.invalidUrl'))
}
return ctx.reply(ctx.t('ssweb.failed', { message: err.message }))
}
await sendImage(ctx, shot.buffer, { caption: ctx.t('ssweb.caption', { url: shot.target }) })
const hint = ctx.t('ssweb.hint')
await sendButtons(ctx.sock, ctx.chat, {
title: 'KANA',
body: hint,
footer: ctx.t('menu.footer'),
replies: [
{ text: ctx.t('ssweb.btnAgain'), id: `.ssweb ${shot.target}` },
{ text: ctx.t('ssweb.btnShort'), id: `.shortlink ${shot.target}` },
],
textFallback: hint,
})
}
