Skip to content

Commit cf4b0d9

Browse files
authored
Update tool-ocr.js
1 parent a3f3eb0 commit cf4b0d9

File tree

1 file changed

+44
-8
lines changed

1 file changed

+44
-8
lines changed

plugins/tool-ocr.js

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,55 @@
11
import uploadImage from '../lib/uploadImage.js'
22
import ocrapi from 'ocr-space-api-wrapper'
33
const { MessageType } = (await import('@adiwajshing/baileys')).default
4-
let handler = async (m, { conn, text }) => {
5-
let q = m.quoted ? m.quoted : m
4+
5+
async function performOCR(url) {
6+
try {
7+
return await ocrapi.ocrSpace(url)
8+
} catch (error) {
9+
console.error(error)
10+
return null
11+
}
12+
}
13+
14+
let handler = async (m, { conn, text, command, usedPrefix }) => {
15+
try {
16+
let q = m.quoted ? m.quoted : m
617
let mime = (q.msg || q).mimetype || ''
7-
if (!mime) throw `balas gambar dengan perintah .ocr`
8-
if (!/image\/(jpe?g|png)/.test(mime)) throw `_*jenis ${mime} tidak didukung!*_`
18+
19+
if (!mime) throw `Balas gambar dengan perintah ${usedPrefix}${command}`
20+
if (!/image\/(jpe?g|png)/.test(mime)) throw `Jenis ${mime} tidak didukung`
21+
922
let img = await q.download()
1023
let url = await uploadImage(img)
11-
let hasil = await ocrapi.ocrSpace(url)
12-
await m.reply(hasil.ParsedResults[0].ParsedText)
24+
25+
m.reply('tunggu sebentar...')
26+
27+
let maxRetries = 99
28+
let retryCount = 0
29+
let hasil
30+
31+
do {
32+
hasil = await performOCR(url)
33+
retryCount++
34+
} while (!hasil && retryCount < maxRetries)
35+
36+
if (hasil && hasil.ParsedResults && hasil.ParsedResults.length > 0) {
37+
38+
let parsedText = hasil.ParsedResults[0].ParsedText;
39+
40+
await m.reply(`${parsedText}`);
41+
42+
} else {
43+
throw 'Tidak dapat menemukan teks dalam gambar'
44+
}
45+
} catch (error) {
46+
console.error(error)
47+
m.reply('Terjadi kesalahan dalam melakukan OCR')
48+
}
1349
}
1450

15-
handler.help = ['ocr', 'totext']
51+
handler.help = ['ocr', 'totext','keteks', 'ketext', 'ketulisan']
1652
handler.tags = ['tools']
17-
handler.command = /^(ocr|totext)$/i
53+
handler.command = /^(ocr|totext|keteks|ketext|ketulisan)$/i
1854

1955
export default handler

0 commit comments

Comments
 (0)