ilhamdev commited on
Commit
c1a4ff8
·
verified ·
1 Parent(s): a4974b5

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +19 -30
index.js CHANGED
@@ -274,37 +274,26 @@ async function ytmp4(url, quality = 'highestvideo') {
274
  return null;
275
  }
276
  }
277
- async function uploadTemp(buffer, extension) {
278
- const {fileTypeFromBuffer} = await import('file-type')
279
- return new Promise(async (resolve, reject) => {
280
- let mime = await fileTypeFromBuffer(buffer)
281
- let headers = {
282
- 'User-Agent': generateRandomUserAgent(),
283
- 'X-Forwarded-For': generateRandomIP()
284
  }
285
- try {
286
- const server = await (await axios.get('https://neoxr.my.id/srv', {headers: headers})).data;
287
- let form = new FormData();
288
- try {
289
- var ext = mime.ext
290
- } catch (e) {
291
- var ext = 'txt';
292
- }
293
- form.append('someFiles', buffer, 'file.' + (extension || ext));
294
- const json = await (await axios.post(server.domain + '/api/upload', form, {
295
- headers: {
296
- ...form.getHeaders(),
297
- ...headers
298
- }
299
- })).data;
300
- resolve(json);
301
- } catch (e) {
302
- resolve({
303
- status: false,
304
- msg: e.message
305
- });
306
- }
307
  });
 
308
  }
309
  async function ytmp3(url, bitrate = 'lowestaudio') {
310
  try {
@@ -312,7 +301,7 @@ async function ytmp3(url, bitrate = 'lowestaudio') {
312
  data = await ytdl.getInfo('https://www.youtube.com/watch?v=' + ID)
313
  let format = ytdl.chooseFormat(data.formats, { filter: 'audioonly', quality: bitrate });
314
  let buffer = await (await fetch(format.url)).arrayBuffer();
315
- let upload = await uploadTemp(buffer)
316
 
317
  if (format) {
318
  return {
 
274
  return null;
275
  }
276
  }
277
+ async function neko(buffer) {
278
+ const maxSizeBytes = 1024 * 1024 * 1024;
279
+ if (buffer.length > maxSizeBytes) {
280
+ throw new Error('Ukuran file melebihi batas maksimal (1GB)');
 
 
 
281
  }
282
+ const tipe = await import('file-type');
283
+ const { ext, mime } = await tipe.fileTypeFromBuffer(buffer);
284
+ const disallowedExtensions = ['html', 'css', 'php', 'js']
285
+ if (disallowedExtensions.includes(ext)) {
286
+ throw new Error('Ekstensi file tidak diizinkan');
287
+ }
288
+ const blob = new Blob([buffer], { type: mime });
289
+ const formData = new FormData();
290
+ formData.append('file', blob, {filename: 'file' + ext});
291
+ const response = await axios.post('https://cdn.nekohime.xyz/upload', formData, {
292
+ headers: {
293
+ 'Content-Type': `multipart/form-data; boundary=${formData._boundary}`,
294
+ }
 
 
 
 
 
 
 
 
 
295
  });
296
+ return response.data
297
  }
298
  async function ytmp3(url, bitrate = 'lowestaudio') {
299
  try {
 
301
  data = await ytdl.getInfo('https://www.youtube.com/watch?v=' + ID)
302
  let format = ytdl.chooseFormat(data.formats, { filter: 'audioonly', quality: bitrate });
303
  let buffer = await (await fetch(format.url)).arrayBuffer();
304
+ let upload = await neko(buffer)
305
 
306
  if (format) {
307
  return {