Modifikasi kode di bawah ini agar dapat memproses file besar async function xm text const query jumlah = textsplit; if !query && jumlah return mreplyUsagen!gimage keywordamountnnExample n!g

Untuk memodifikasi kode agar dapat memproses file besar, kita dapat menggunakan library stream untuk mengirimkan data secara chunked (bergilir).

Berikut kode yang telah dimodifikasi:

const https = require('https'); const stream = require('stream');

async function x(m, { text, }) { const [query, jumlah] = text.split(','); if (!(query && jumlah)) return m.reply('Usage:\n!gimage keyword,amount\n\nExample: \n!gimage Tsukasa,5'); if (isNaN(jumlah)) return m.reply('Failed\nHanya bisa menerima input angka untuk jumlahnya'); if (jumlah > limit) return m.reply('Failed\nTidak bisa mengirimkan lebih dari 10 foto'); await m.reply(waitMsg); try { for (let i = 0; i < jumlah; i++) { const resp = await pickRandom(await googleImage(query)); https.get(resp, (res) => { const chunks = []; const stream = new stream.Transform(); res.on('data', (chunk) => { chunks.push(chunk); }); res.on('end', async () => { stream.end(Buffer.concat(chunks)); const urlnya = await uploadImage(stream.read()); await conn.sendFile(m.chat, urlnya, '', 'Link: \n' + resp, m); }); }).on('error', (err) => { console.error(err); }); } } catch (e) { m.reply(erMsg); } }

x.help = ['gimage < keyword,amount >']; x.tags = ['media']; x.command = ['image', 'googleimage', 'gimage']; x.kupon = true x.register = true; export default x;

Perubahan utama terdapat pada bagian pengambilan data dari https request. Kita menggunakan stream.Transform() untuk mengirimkan data secara bergilir daripada menunggu seluruh data terkumpul terlebih dahulu.

Setelah itu, kita menggunakan stream.read() untuk membaca data yang telah dikirimkan secara bergilir dan mengirimkannya ke fungsi uploadImage()

标签: 社会


原文地址: https://cveoy.top/t/topic/fLoV 著作权归作者所有。请勿转载和采集!