forked from zeeoneofc/Alphab0t12
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuploadimage.js
89 lines (86 loc) · 2.62 KB
/
uploadimage.js
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
const fetch = require('node-fetch')
const { default: Axios } = require('axios')
const fs = require('fs')
const FormData = require('form-data')
const { fromBuffer } = require('file-type')
const uptotele = async (media) => new Promise(async (resolve, reject) => {
try {
let { ext } = await fromBuffer(media)
console.log('Uploading image to server telegra.ph')
let form = new FormData()
form.append('file', media, 'tmp' + ext)
await fetch('https://telegra.ph/upload', {
method: 'POST',
body: form
})
.then(res => res.json())
.then(res => {
if (res.error) return reject(res.error)
resolve('https://telegra.ph' + res[0].src)
console.log('ok sukses')
})
.catch(err => reject(err))
} catch (e) {
return console.log(e)
}
})
const uploadFile = async (buffer) => {
const { ext } = await fromBuffer(buffer) || {}
let form = new FormData
form.append('file', buffer, 'tmp' + ext)
let res = await fetch('https://file.io/?expires=1d', { // 1 Day Expiry Date
method: 'POST',
body: form
})
let json = await res.json()
if (!json.success) throw json
return json.link
}
const RESTfulAPI = async (inp) => {
let form = new FormData
let buffers = inp
if (!Array.isArray(inp)) buffers = [inp]
for (let buffer of buffers) {
form.append('file', buffer)
}
let res = await fetch('https://storage.restfulapi.my.id/upload', {
method: 'POST',
body: form
})
let json = await res.text()
try {
json = JSON.parse(json)
if (!Array.isArray(inp)) return json.files[0].url
return json.files.map(res => res.url)
} catch (e) {
throw json
}
}
const uploadImages = (buffData, type) => {
return new Promise(async (resolve, reject) => {
const { ext } = fromBuffer(buffData)
const filePath = 'stik' + ext
fs.writeFile(filePath, buffData, { encoding: 'base64' }, (err) => {
if (err) return reject(err)
console.log('Uploading image to server telegra.ph')
const fileData = fs.readFileSync(filePath)
const form = new FormData()
form.append('file', fileData, 'tmp' + ext)
fetch('https://telegra.ph/upload', {
method: 'POST',
body: form
})
.then(res => res.json())
.then(res => {
if (res.error) return reject(res.error)
resolve('https://telegra.ph' + res[0].src)
})
.then(() => fs.unlinkSync(filePath))
.catch(err => reject(err))
})
})
}
exports.RESTfulAPI = RESTfulAPI
exports.uploadImages = uploadImages
exports.uptotele = uptotele
exports.uploadFile = uploadFile