diff --git a/src/command/add.ts b/src/command/add.ts index 609420b..f250a79 100644 --- a/src/command/add.ts +++ b/src/command/add.ts @@ -6,7 +6,7 @@ module.exports = { aliases: ['ad'], cooldown: 20, description: 'Untuk menambahkan orang ke group dengan nomor\nPenggunaan: !add 6285xxxx', - execute (client: any, chat: any, pesan: any, args:any) { + execute (client: any, chat: any, pesan: any, args: any) { if (!client.isGroup) return client.reply(pesan.error.group) if (!client.isGroupAdmins) return client.reply(pesan.hanya.admin) if (!client.isBotGroupAdmins) return client.reply(pesan.hanya.botAdmin) diff --git a/src/command/clearall.ts b/src/command/clearall.ts index 08bf39c..426d52c 100644 --- a/src/command/clearall.ts +++ b/src/command/clearall.ts @@ -2,7 +2,7 @@ module.exports = { name: 'clearall', aliases: ['ca'], description: 'Untuk benghapus semua chat _only owner_', - execute (client, chat, pesan) { + execute (client: any, chat: any, pesan: any) { if (!client.isOwner) return client.reply('Kamu siapa?') const chatAll = client.chats.all() client.setMaxListeners(25) diff --git a/src/command/demote.ts b/src/command/demote.ts index c161927..9e52608 100644 --- a/src/command/demote.ts +++ b/src/command/demote.ts @@ -3,7 +3,7 @@ module.exports = { aliases: ['dm'], cooldown: 10, description: 'Untuk manghapus admin anggota group\nPenggunaan: !demote _quoted/tag_', - execute (client, chat, pesan) { + execute (client: any, chat: any, pesan: any) { if (!client.isGroup) return client.reply(pesan.error.group) if (!client.isGroupAdmins) return client.reply(pesan.hanya.admin) if (!client.isBotGroupAdmins) return client.reply(pesan.hanya.botAdmin) diff --git a/src/command/fakereply.ts b/src/command/fakereply.ts index a89a746..9e5f3e4 100644 --- a/src/command/fakereply.ts +++ b/src/command/fakereply.ts @@ -6,7 +6,7 @@ module.exports = { aliases: ['fr', 'fake', 'fitnah'], cooldown: 35, description: 'Untuk memfitnah atau menjahili teman\nPenggunaan !fakereply _tag_', - execute (client, chat, pesan) { + execute (client: any, chat: any, pesan: any) { if (!client.isGroup) return client.reply(pesan.error.group) const arg = client.body.slice(9) const targets = arg.split('|')[1] diff --git a/src/command/gmium.ts b/src/command/gmium.ts index 1bb5044..32441c0 100644 --- a/src/command/gmium.ts +++ b/src/command/gmium.ts @@ -5,7 +5,7 @@ module.exports = { name: 'gmium', aliases: ['gm'], description: 'Untuk mengelola member premium group _only owner_', - async execute (client, chat, pesan, args) { + async execute (client: any, chat: any, pesan: any, args: any) { if (!client.isOwner && !client.isSudo) return client.reply(pesan.hanya.owner) const gid = args[1] if (args[0] === 'add') { @@ -17,7 +17,7 @@ module.exports = { databaseInput(`INSERT INTO gmium(gid, lifetime, signature) VALUES('${gid}', 'unlimited', '${sign}')`) .then(() => { client.reply(pesan.berhasil) - }).catch((err) => { + }).catch((err: string) => { client.reply(pesan.gagal) console.log(err) client.log(err) @@ -26,7 +26,7 @@ module.exports = { databaseInput(`INSERT INTO gmium(gid, lifetime, signature) VALUES('${gid}', 'standard', '${sign}')`) .then(() => { client.reply(pesan.berhasil) - }).catch((err) => { + }).catch((err: string) => { client.reply(pesan.gagal) console.log(err) client.log(err) @@ -36,14 +36,14 @@ module.exports = { databaseInput(`DELETE FROM gmium WHERE gid = '${gid}'`) .then(() => { client.reply(pesan.berhasil) - }).catch((err) => { + }).catch((err: string) => { client.reply(pesan.gagal) console.log(err) client.log(err) }) } else if (args.length === 0) { await databaseView('SELECT * FROM gmium') - .then((result) => { + .then((result: any) => { let text = '📝 Daftar *Premium* di bot ini\n' const mentioned = [] if (result.length > 0) { @@ -63,7 +63,7 @@ module.exports = { text += '- Belum ada member' client.reply(text) } - }).catch((err) => { + }).catch((err: string) => { client.reply('Error mengambil database') console.log(err) client.log(err) diff --git a/src/command/help.ts b/src/command/help.ts index d76c9e5..7168116 100644 --- a/src/command/help.ts +++ b/src/command/help.ts @@ -3,11 +3,11 @@ module.exports = { aliases: ['h'], cooldown: 10, description: 'Menampilkan semua perintah dan deskripsi', - execute (client, chat, pesan, args) { + execute (client: any, chat: any, pesan: any, args: any) { const commands = client.cmd.array() if (args.length == 0) { let text = 'Daftar perintah di bot ini\n\nPrefix: !\n' - commands.forEach((cmd) => { + commands.forEach((cmd: any) => { text += `- *${cmd.name}* ${cmd.aliases ? `(${cmd.aliases})` : ''}\n` }) text += '\nMasih bingung? ketik *!help * akan menampilkan penggunaan perintah tersebut' diff --git a/src/command/hidetag.ts b/src/command/hidetag.ts index 85610b3..62d2c33 100644 --- a/src/command/hidetag.ts +++ b/src/command/hidetag.ts @@ -3,7 +3,7 @@ module.exports = { aliases: ['ht'], cooldown: 45, description: 'Untuk mengetag semua orang tanpa @\nPenggunaan !hidetag _text_', - execute (client, chat, pesan) { + execute (client: any, chat: any, pesan: any) { if (!client.isGroup) return client.reply(pesan.error.group) if (!client.isGroupAdmins) return client.reply(pesan.hanya.admin) const value = client.body.slice(9) diff --git a/src/command/id.ts b/src/command/id.ts index ce06979..2c12279 100644 --- a/src/command/id.ts +++ b/src/command/id.ts @@ -2,7 +2,7 @@ module.exports = { name: 'id', cooldown: 10, description: 'Untuk menampilkan id group/user\nPenggunaan: !id', - execute (client, chat, pesan) { + execute (client: any, chat: any, pesan: any) { const uid = client.sender if (client.isGroup) { const gid = client.groupId diff --git a/src/command/kick.ts b/src/command/kick.ts index 4cde463..7b0d1fc 100644 --- a/src/command/kick.ts +++ b/src/command/kick.ts @@ -3,7 +3,7 @@ module.exports = { aliases: ['k'], cooldown: 10, description: 'Untuk mengeluarkan angota di group\nPenggunaan: !kick _quoted/tag_', - execute (client, chat, pesan) { + execute (client: any, chat: any, pesan: any) { if (!client.isGroup) return client.reply(pesan.error.group) if (!client.isGroupAdmins) return client.reply(pesan.hanya.admin) if (!client.isBotGroupAdmins) return client.reply(pesan.hanya.botAdmin) diff --git a/src/command/notes.ts b/src/command/notes.ts index 536b5d9..32d26e1 100644 --- a/src/command/notes.ts +++ b/src/command/notes.ts @@ -5,7 +5,7 @@ module.exports = { name: 'notes', cooldown: 15, description: 'Untuk menyimpan note atau catatan di group\nPenggunaan: !notes ', - async execute (client, chat, pesan, args) { + async execute (client: any, chat: any, pesan: any, args: any) { if (!client.isGroup) return client.reply(pesan.error.group) if (!client.isGmium) return client.reply(pesan.hanya.premium) if (!client.isGroupAdmins) return client.reply(pesan.hanya.admin) @@ -15,7 +15,7 @@ module.exports = { const res = arg.split('|')[2].trim() if (args == 0) { await databaseView('SELECT * FROM notes') - .then((hasil) => { + .then((hasil: any) => { let text = 'Daftar *notes* di group ini\n\n' if (hasil.length > 0) { for (const list of hasil) { diff --git a/src/command/nulis.ts b/src/command/nulis.ts index 9bd4cbf..79d638d 100644 --- a/src/command/nulis.ts +++ b/src/command/nulis.ts @@ -8,14 +8,14 @@ module.exports = { aliases: ['n'], cooldown: 50, description: 'Untuk menuliskan di buku bot\nPenggunaan !nulis _tulisan_', - execute (client, chat, pesan, args) { + execute (client: any, chat: any, pesan: any, args: any) { const value = args.slice().join(' ') fetchJson(`https://mhankbarbar.tech/nulis?text=${value}&apiKey=${client.apiKey}`, { method: 'get' }) - .then(async (hasil) => { + .then(async (hasil: any) => { client.reply(pesan.tunggu) const buffer = await getBuffer(hasil.result) client.sendMessage(client.from, buffer, MessageType.image, { quoted: chat, caption: pesan.berhasil }) - }).catch((err) => { + }).catch((err: string) => { console.log(err) client.log(err) }) diff --git a/src/command/nulis2.ts b/src/command/nulis2.ts index 456145e..d938886 100644 --- a/src/command/nulis2.ts +++ b/src/command/nulis2.ts @@ -7,13 +7,13 @@ module.exports = { aliases: ['n2'], cooldown: 50, description: 'Untuk menuliskan di buku bot\nPenggunaan !nulis2 _tulisan_', - execute (client, chat, pesan, args) { + execute (client: any, chat: any, pesan: any, args: any) { const value = args.slice().join(' ') getBuffer(`https://api.zeks.xyz/api/nulis?text=${value}&apikey=administrator`) - .then((hasil) => { + .then((hasil: any) => { client.reply(pesan.tunggu) client.sendMessage(client.from, hasil, MessageType.image, { quoted: chat, caption: pesan.berhasil }) - }).catch((err) => { + }).catch((err: string) => { console.log(err) client.log(err) }) diff --git a/src/command/nulis3.ts b/src/command/nulis3.ts index ce87976..2f65124 100644 --- a/src/command/nulis3.ts +++ b/src/command/nulis3.ts @@ -8,14 +8,14 @@ module.exports = { aliases: ['n3'], cooldown: 50, description: 'Untuk menuliskan di buku bot\nPenggunaan !nulis3 _tulisan_', - execute (client, chat, pesan, args) { + execute (client: any, chat: any, pesan: any, args: any) { const value = args.slice().join(' ') fetchJson(`https://tools.zone-xsec.com/api/nulis.php?q=${value}`) - .then(async (hasil) => { + .then(async (hasil: any) => { client.reply(pesan.tunggu) const image = await getBuffer(hasil.image) client.sendMessage(client.from, image, MessageType.image, { quoted: chat, caption: pesan.berhasil }) - }).catch((err) => { + }).catch((err: string) => { console.log(err) client.log(err) }) diff --git a/src/command/ping.ts b/src/command/ping.ts index 96feb5e..128396f 100644 --- a/src/command/ping.ts +++ b/src/command/ping.ts @@ -7,7 +7,7 @@ module.exports = { name: 'ping', cooldown: 10, description: 'Menampilkan rata-rata bot merespon', - execute (client) { + execute (client: any) { client.sendMessage(client.from, `Pong!!\n${processTime(client.pingStart, moment())} _detik_`, MessageType.text).catch(console.error) } } diff --git a/src/command/promote.ts b/src/command/promote.ts index 314aa93..9cf1f24 100644 --- a/src/command/promote.ts +++ b/src/command/promote.ts @@ -3,7 +3,7 @@ module.exports = { aliases: ['pm'], cooldown: 10, description: 'Untuk manjadikan admin anggota di group\nPenggunaan: !promote _quoted/tag_', - execute (client, chat, pesan) { + execute (client: any, chat: any, pesan: any) { if (!client.isGroup) return client.reply(pesan.error.group) if (!client.isGroupAdmins) return client.reply(pesan.hanya.admin) if (!client.isBotGroupAdmins) return client.reply(pesan.hanya.botAdmin) diff --git a/src/command/slap.ts b/src/command/slap.ts index bff9dc4..0224c2f 100644 --- a/src/command/slap.ts +++ b/src/command/slap.ts @@ -2,7 +2,7 @@ module.exports = { name: 'slap', cooldown: 10, description: 'Untuk menampol orang\nPenggunaan !slap _quoted/tag_', - execute (client, chat, pesan, args) { + execute (client: any, chat: any, pesan: any) { if (!client.isGroup) return client.reply(pesan.error.group) if (chat.message.extendedTextMessage === undefined || chat.message.extendedTextMessage === null) return client.reply('Tag target yang ingin di tonjok!') const mentions = client.quotedId || client.mentioned diff --git a/src/command/sticker.ts b/src/command/sticker.ts index a10e329..0ffe199 100644 --- a/src/command/sticker.ts +++ b/src/command/sticker.ts @@ -12,7 +12,7 @@ module.exports = { aliases: ['s', 'st'], cooldown: 600, description: 'Untuk menjadikan video atau gambar menjadi sticker\nPenggunaan: quoted gambar/vidio !sticker rbg: remove background, nobg: no background on sticker, default sticker dengan background', - async execute (client, chat, pesan, args) { + async execute (client: any, chat: any, pesan: any, args: any) { if ((client.isMedia && !chat.message.videoMessage || client.isQuotedImage) && args[0] == 'nobg') { if ((!client.isGroup && !client.isPmium) || (client.isGroup && !client.isGmium)) return client.reply(pesan.hanya.premium) const encmedia = client.isQuotedImage ? JSON.parse(JSON.stringify(chat).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo : chat @@ -21,10 +21,10 @@ module.exports = { client.reply(pesan.tunggu) await ffmpeg(`./${media}`) .input(media) - .on('start', function (cmd) { + .on('start', function (cmd: string) { console.log(`[INFO] Started : ${cmd}`) }) - .on('error', function (err) { + .on('error', function (err: string) { console.log(`[INFO] Error : ${err}`) fs.unlinkSync(media) client.reply('Error saat membuat sticker') @@ -47,10 +47,10 @@ module.exports = { client.reply(pesan.tunggu) await ffmpeg(`./${media}`) .inputFormat(media.split('.')[1]) - .on('start', function (cmd) { + .on('start', function (cmd: string) { console.log(`[INFO] Started : ${cmd}`) }) - .on('error', function (err) { + .on('error', function (err: string) { console.log(`[INFO] Error : ${err}`) fs.unlinkSync(media) const tipe = media.endsWith('.mp4') ? 'video' : 'gif' @@ -74,13 +74,13 @@ module.exports = { const ranp = getRandom('.png') client.reply(pesan.tunggu) const keyrmbg = process.env.KEY_REMOVEBG - await removeBackgroundFromImageFile({ path: media, apiKey: keyrmbg, size: 'auto', type: 'auto', ranp }).then(res => { + await removeBackgroundFromImageFile({ path: media, apiKey: keyrmbg, size: 'auto', type: 'auto', ranp }).then((res: any) => { fs.unlinkSync(media) const buffer = Buffer.from(res.base64img, 'base64') - fs.writeFileSync(ranp, buffer, (err) => { + fs.writeFileSync(ranp, buffer, (err: string) => { if (err) return client.reply('Gagal, Terjadi kesalahan, silahkan coba beberapa saat lagi.') }) - exec(`ffmpeg -i ${ranp} -vcodec libwebp -filter:v fps=fps=20 -lossless 1 -loop 0 -preset default -an -vsync 0 -s 512:512 ${ranw}`, (err) => { + exec(`ffmpeg -i ${ranp} -vcodec libwebp -filter:v fps=fps=20 -lossless 1 -loop 0 -preset default -an -vsync 0 -s 512:512 ${ranw}`, (err: string) => { fs.unlinkSync(ranp) if (err) return client.reply('Error saat membuat sticker') client.sendMessage(client.from, fs.readFileSync(ranw), MessageType.sticker, { quoted: chat }) @@ -91,10 +91,10 @@ module.exports = { const media = await client.downloadAndSaveMediaMessage(encmedia) const ranw = getRandom('.webp') await ffmpeg(`./${media}`) - .on('start', function (cmd) { + .on('start', function (cmd: any) { console.log('[INFO] Started :', cmd) }) - .on('error', function (err) { + .on('error', function (err: any) { fs.unlinkSync(media) console.log('[INFO] Error :', err) client.reply('Error saat membuat sticker') diff --git a/src/krypton.ts b/src/krypton.ts index a4b3725..c2b725f 100644 --- a/src/krypton.ts +++ b/src/krypton.ts @@ -24,30 +24,30 @@ async function krypton () { **/ // Black List databaseInput('CREATE TABLE IF NOT EXISTS blacklist( id VARCHAR(30) PRIMARY KEY NOT NULL , reason CHAR(225) DEFAULT \'No Reason\')') - .catch(err => console.log(err)) + .catch((err: string) => console.log(err)) // Filters databaseInput('CREATE TABLE IF NOT EXISTS filters( gid VARCHAR(50) NOT NULL , key VARCHAR(225) NOT NULL, res VARCHAR(225) NOT NULL )') - .catch(err => console.log(err)) + .catch((err: string) => console.log(err)) // Notes databaseInput('CREATE TABLE IF NOT EXISTS notes( gid VARCHAR(50) NOT NULL , key VARCHAR(225) NOT NULL, res VARCHAR(225) NOT NULL )') - .catch(err => console.log(err)) + .catch((err: string) => console.log(err)) // Premium databaseInput('CREATE TABLE IF NOT EXISTS gmium( gid VARCHAR(50) PRIMARY KEY NOT NULL, lifetime VARCHAR(10) NOT NULL, signature VARCHAR(30) NOT NULL, waktu TIMESTAMP NOT NULL DEFAULT now() )') - .catch(err => console.log(err)) + .catch((err: string) => console.log(err)) databaseInput('CREATE TABLE IF NOT EXISTS pmium( gid VARCHAR(50) PRIMARY KEY NOT NULL, waktu TIMESTAMP NOT NULL DEFAULT now() )') - .catch(err => console.log(err)) + .catch((err: string) => console.log(err)) // Blacklist text databaseInput('CREATE TABLE IF NOT EXISTS bllist( gid VARCHAR(50) NOT NULL , text VARCHAR(225) NOT NULL)') - .catch(err => console.log(err)) + .catch((err: string) => console.log(err)) // Blacklist user databaseInput('CREATE TABLE IF NOT EXISTS warn( gid VARCHAR(50) NOT NULL, uid VARCHAR(30) NOT NULL , warn VARCHAR(100) NOT NULL)') - .catch(err => console.log(err)) + .catch((err: string) => console.log(err)) // Sudo databaseInput('CREATE TABLE IF NOT EXISTS sudo( id VARCHAR(30) PRIMARY KEY NOT NULL )') - .catch(err => console.log(err)) + .catch((err: string) => console.log(err)) // Sudo databaseInput('CREATE TABLE IF NOT EXISTS afks( uid VARCHAR(30) PRIMARY KEY NOT NULL, afk VARCHAR(10) NOT NULL, reason CHAR(225) NOT NULL, timestart VARCHAR(100) NOT NULL )') - .catch(err => console.log(err)) + .catch((err: string) => console.log(err)) client.logger.level = 'warn' await client.on('qr', () => { @@ -82,7 +82,7 @@ async function krypton () { // Web api proses web(client) - await client.on('group-participants-update', async (greeting) => { + await client.on('group-participants-update', async (greeting: any) => { try { const num = greeting.participants[0] const mdata = await client.groupMetadata(greeting.jid) @@ -90,12 +90,12 @@ async function krypton () { const ppimg = await client.getProfilePicture(`${greeting.participants[0].split('@')[0]}@c.us`) if (greeting.action == 'add') { console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;32mEXEC\x1b[1;37m]', client.time, 'client', color(greeting.participants[0].split('@')[0]), 'Masuk ke group', color(mdata.subject)) - await welcome(name, mdata.subject, ppimg).then(async (hasil) => { + await welcome(name, mdata.subject, ppimg).then(async (hasil: Array) => { await client.sendMessage(mdata.id, hasil, MessageType.image) }) } else if (greeting.action == 'remove') { console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;32mEXEC\x1b[1;37m]', client.time, 'client', color(greeting.participants[0].split('@')[0]), 'Keluar dari group', color(mdata.subject)) - await goodbye(name, mdata.subject, ppimg).then(async (hasil) => { + await goodbye(name, mdata.subject, ppimg).then(async (hasil: Array) => { await client.sendMessage(mdata.id, hasil, MessageType.image) }) } @@ -104,7 +104,7 @@ async function krypton () { } }) - await client.on('chat-update', async (chat) => { + await client.on('chat-update', async (chat: any) => { client.time = moment.tz('Asia/Jakarta').format('DD/MM HH:mm:ss') client.pingStart = chat.t client.apiKey = process.env.API_KEY @@ -136,17 +136,17 @@ async function krypton () { client.isBotGroupAdmins = groupAdmins.includes(botNumber) || false client.isGroupAdmins = groupAdmins.includes(client.sender) || false client.isOwner = client.sender.includes(ownerNumber) - client.isUrl = (url) => { + client.isUrl = (url: string) => { // eslint-disable-next-line prefer-regex-literals return url.match(new RegExp(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)/, 'gi')) } - client.reply = (teks) => { + client.reply = (teks: string) => { client.sendMessage(client.from, teks, MessageType.text, { quoted: chat }) } - client.sendMess = (id, text) => { + client.sendMess = (id: number, text: string) => { client.sendMessage(id, text, MessageType.text) } - client.mentions = (teks, id, bolean) => { + client.mentions = (teks: string, id: number, bolean: boolean) => { (bolean == null || bolean == undefined || bolean == false) ? client.sendMessage(client.from, teks.trim(), MessageType.extendedText, { contextInfo: { mentionedJid: id } }) : client.sendMessage(client.from, teks.trim(), MessageType.extendedText, { quoted: chat, contextInfo: { mentionedJid: id } }) } client.log = (error: string) => { @@ -201,7 +201,7 @@ async function krypton () { /** * Import all commands */ - const commandFiles = readdirSync(join(__dirname, 'command')).filter((file) => file.endsWith('.js')) + const commandFiles = readdirSync(join(__dirname, 'command')).filter((file: string) => file.endsWith('.js')) for (const file of commandFiles) { const command = require(join(__dirname, 'command', `${file}`)) client.cmd.set(command.name, command) @@ -211,7 +211,7 @@ async function krypton () { const command = client.cmd.get(client.commandName) || - client.cmd.find((cmd) => cmd.aliases && cmd.aliases.includes(client.commandName)) + client.cmd.find((cmd: any) => cmd.aliases && cmd.aliases.includes(client.commandName)) if (!command) return diff --git a/src/utils/color.ts b/src/utils/color.ts index 9c796c3..5d72327 100644 --- a/src/utils/color.ts +++ b/src/utils/color.ts @@ -1,11 +1,11 @@ export {} const chalk = require('chalk') -const color = (text, color) => { +const color = (text: string, color: string) => { return !color ? chalk.green(text) : chalk.keyword(color)(text) } -const bgcolor = (text, bgcolor) => { +const bgcolor = (text: string, bgcolor: string) => { return !bgcolor ? chalk.green(text) : chalk.bgKeyword(bgcolor)(text) } diff --git a/src/utils/db.ts b/src/utils/db.ts index 1fcd51e..0ecabf3 100644 --- a/src/utils/db.ts +++ b/src/utils/db.ts @@ -7,8 +7,8 @@ const pool = new Pool({ max: 10000 }) -const databaseInput = (value) => new Promise((resolve, reject) => { - pool.query(value, (err, result) => { +const databaseInput = (value: string) => new Promise((resolve, reject) => { + pool.query(value, (err: string, result: any) => { if (err) { console.error(err) reject(err) @@ -17,8 +17,8 @@ const databaseInput = (value) => new Promise((resolve, reject) => { }) }) -const databaseView = (value) => new Promise((resolve, reject) => { - pool.query(value, (err, result) => { +const databaseView = (value: string) => new Promise((resolve, reject) => { + pool.query(value, (err: string, result: any) => { if (err) { console.error(err) reject(err) diff --git a/src/utils/fetcher.ts b/src/utils/fetcher.ts index e3f372d..0593a77 100644 --- a/src/utils/fetcher.ts +++ b/src/utils/fetcher.ts @@ -2,7 +2,7 @@ export {} const fetch = require('node-fetch') const fs = require('fs') -const getBase64 = async (url) => { +const getBase64 = async (url: string) => { const response = await fetch(url, { headers: { 'User-Agent': 'okhttp/4.5.0' } }) if (!response.ok) throw new Error(`unexpected response ${response.statusText}`) const buffer = await response.buffer() @@ -10,7 +10,7 @@ const getBase64 = async (url) => { if (buffer) { return videoBase64 } } -const getBuffer = async (url) => { +const getBuffer = async (url: string) => { const res = await fetch(url, { headers: { 'User-Agent': 'okhttp/4.5.0' }, method: 'GET' }) const anu = fs.readFileSync('./src/emror.jpg') if (!res.ok) return { type: 'image/jpeg', result: anu } @@ -18,26 +18,26 @@ const getBuffer = async (url) => { if (buff) { return { type: res.headers.get('content-type'), result: buff } } } -const fetchJson = (url, options) => new Promise((resolve, reject) => { +const fetchJson = (url: string, options: Array) => new Promise((resolve, reject) => { fetch(url, options) - .then(response => response.json()) - .then(json => { + .then((response: any) => response.json()) + .then((json: object) => { // console.log(json) resolve(json) }) - .catch((err) => { + .catch((err: string) => { reject(err) }) }) -const fetchText = (url, options) => new Promise((resolve, reject) => { +const fetchText = (url: string, options: Array) => new Promise((resolve, reject) => { fetch(url, options) - .then(response => response.text()) - .then(text => { + .then((response: any) => response.text()) + .then((text: string) => { // console.log(text) resolve(text) }) - .catch((err) => { + .catch((err: string) => { reject(err) }) }) diff --git a/src/utils/functions.ts b/src/utils/functions.ts index d12398b..de47b0d 100644 --- a/src/utils/functions.ts +++ b/src/utils/functions.ts @@ -21,7 +21,7 @@ const spinner = { ] } -let globalSpinner +let globalSpinner: string const getGlobalSpinner = (disableSpins = false) => { if (!globalSpinner) globalSpinner = new Spin({ color: 'blue', succeedColor: 'green', spinner, disableSpins }) @@ -30,11 +30,11 @@ const getGlobalSpinner = (disableSpins = false) => { Spin = getGlobalSpinner(false) -const start = (id, text) => { +const start = (id: number, text: string) => { Spin.add(id, { text: text }) } -const success = (id, text) => { +const success = (id: number, text: string) => { Spin.succeed(id, { text: text }) } @@ -43,12 +43,12 @@ const success = (id, text) => { * @param {Date} timestamp * @param {Date} now */ -const processTime = (timestamp, now) => { +const processTime = (timestamp: number, now: number) => { // timestamp => timestamp when message was received return moment.duration(now - moment(timestamp * 1000)).asSeconds() } -const getGroupAdmins = (participants) => { +const getGroupAdmins = (participants: Array) => { const admins = [] for (const i of participants) { i.isAdmin ? admins.push(i.jid) : '' @@ -56,7 +56,7 @@ const getGroupAdmins = (participants) => { return admins } -const getBuffer = async (url, options) => { +const getBuffer = async (url: string, options: Array) => { try { options || {} const res = await axios({ @@ -75,7 +75,7 @@ const getBuffer = async (url, options) => { } } -const getRandom = (ext) => { +const getRandom = (ext: string) => { return `${Math.floor(Math.random() * 10000)}${ext}` } diff --git a/src/utils/greeting.ts b/src/utils/greeting.ts index 40798cf..f3ca716 100644 --- a/src/utils/greeting.ts +++ b/src/utils/greeting.ts @@ -1,7 +1,7 @@ export {} const Canvas = require('wa-canvas') -const welcome = (pushname, gcname, picprofil) => new Promise((resolve, reject) => { +const welcome = (pushname: string, gcname: string, picprofil: string) => new Promise((resolve, reject) => { async function welcome () { const image = await new Canvas.Welcome() .setUsername(pushname) @@ -22,7 +22,7 @@ const welcome = (pushname, gcname, picprofil) => new Promise((resolve, reject) = }) }) -const goodbye = (pushname, gcname, picprofil) => new Promise((resolve, reject) => { +const goodbye = (pushname: string, gcname: string, picprofil: string) => new Promise((resolve, reject) => { async function goodbye () { const image = await new Canvas.Goodbye() .setUsername(pushname) diff --git a/src/utils/web.ts b/src/utils/web.ts index e3b2298..4e9db2d 100644 --- a/src/utils/web.ts +++ b/src/utils/web.ts @@ -12,24 +12,24 @@ const os = require('os') const io = require('socket.io')(httpServer) const { color } = require('./color') -const web = async (client) => { +const web = async (client: any) => { const apiKey = process.env.WEB_API // View Engine and static public folder app.set('view engine', 'ejs') app.use(express.static('./views')) // Root Route - app.get('/', (req, res) => { + app.get('/', (res: any) => { res.render('index.ejs') }) - app.get('/send/:id/:text/:api', (req, res) => { + app.get('/send/:id/:text/:api', (req: any, res: any) => { const { id, text, api } = req.params if (api !== apiKey) return res.json({ info: 'Api Key salah', status: 502 }) client.sendMessage(id, text, MessageType.text) .then(() => { res.json({ info: 'Berhasil mengirim', status: 200 }) - }).catch((err) => res.json({ info: err, status: 502 })) + }).catch((err: string) => res.json({ info: err, status: 502 })) }) // CPU USAGE @@ -40,7 +40,7 @@ const web = async (client) => { const osInfo = os.type() // SOCKET IO - io.on('connection', socket => { + io.on('connection', (socket: any) => { console.log(color(`[INFO] ${socket.id} Server socket connected`, 'green')) // USE SET INTERVAL TO CHECK RAM USAGE EVERY SECOND setInterval(async () => { @@ -53,7 +53,7 @@ const web = async (client) => { const uptime = Math.round(process.uptime()).toFixed(0) // CPU USAGE PERCENTAGE - cpu.usage().then(cpu => socket.emit('ram-usage', { ram, cpu, username, osInfo, chat, uptime, loging })) + cpu.usage().then((cpu: number) => socket.emit('ram-usage', { ram, cpu, username, osInfo, chat, uptime, loging })) }, 1000) }) @@ -64,7 +64,7 @@ const web = async (client) => { }) } -const loging = (client) => { +const loging = (client: any) => { let loging if (!client.isGroup && client.isCmd) loging = `=> ${client.time} ${client.commandName} from ${client.sender.split('@')[0]}` if (!client.isGroup && !client.isCmd) loging = `=> ${client.time} Message from ${client.sender.split('@')[0]}` diff --git a/tsconfig.json b/tsconfig.json index e01a5c7..4d13c70 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,6 +11,7 @@ "importHelpers": true, "incremental": true, "resolveJsonModule": true, + "strict": true }, "include": ["src/*/**.ts", "src/*.ts"] }