File size: 3,252 Bytes
8de10f9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import axios from 'axios';
import FormData from 'form-data';
import fetch from 'node-fetch';
import fs from 'fs';
import * as cheerio from 'cheerio';
import mime from 'mime';

export const TelegraPh = async (path) => {
  return new Promise(async (resolve, reject) => {
    if (!fs.existsSync(path)) return reject(new Error("File not Found"));
    try {
      const form = new FormData();
      form.append("file", fs.createReadStream(path));
      const { data } = await axios({
        url: "https://telegra.ph/upload",
        method: "POST",
        headers: {
          ...form.getHeaders()
        },
        data: form
      });
      resolve("https://telegra.ph" + data[0].src);
    } catch (err) {
      reject(new Error(String(err)));
    }
  });
};

export const UploadFileUgu = async (input) => {
  return new Promise(async (resolve, reject) => {
    try {
      const form = new FormData();
      form.append("files[]", fs.createReadStream(input));
      const { data } = await axios({
        url: "https://uguu.se/upload.php",
        method: "POST",
        headers: {
          "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36",
          ...form.getHeaders()
        },
        data: form
      });
      resolve(data.files[0]);
    } catch (err) {
      reject(err);
    }
  });
};

export const webp2mp4File = async (path) => {
  return new Promise(async (resolve, reject) => {
    try {
      const form = new FormData();
      form.append('new-image-url', '');
      form.append('new-image', fs.createReadStream(path));
      const { data: step1Data } = await axios({
        method: 'post',
        url: 'https://s6.ezgif.com/webp-to-mp4',
        data: form,
        headers: {
          'Content-Type': `multipart/form-data; boundary=${form._boundary}`
        }
      });
      const $ = cheerio.load(step1Data);
      const file = $('input[name="file"]').attr('value');
      const formThen = new FormData();
      formThen.append('file', file);
      formThen.append('convert', "Convert WebP to MP4!");
      const { data: step2Data } = await axios({
        method: 'post',
        url: `https://ezgif.com/webp-to-mp4/${file}`,
        data: formThen,
        headers: {
          'Content-Type': `multipart/form-data; boundary=${formThen._boundary}`
        }
      });
      const $2 = cheerio.load(step2Data);
      const result = 'https:' + $2('div#output > p.outfile > video > source').attr('src');
      resolve({
        status: true,
        message: "Created By Ethix-MD",
        result: result
      });
    } catch (err) {
      reject(err);
    }
  });
};

export const floNime = async (path, options = {}) => {
  const ext = mime.getType(path);
  if (!ext) throw new Error('Unknown file type');
  
  const form = new FormData();
  form.append('file', fs.createReadStream(path), `tmp.${ext}`);
  const response = await fetch('https://flonime.my.id/upload', {
    method: 'POST',
    body: form
  });
  const json = await response.json();
  return json;
};

export default { TelegraPh, UploadFileUgu, webp2mp4File, floNime };