rippanteq7
commited on
Commit
•
fa1ba63
1
Parent(s):
bde188c
default send as buffer
Browse files
index.js
CHANGED
@@ -63,7 +63,7 @@ app.all('/carbon', async (req, res) => {
|
|
63 |
...obj, puppeteer: { executablePath: process.env.CHROME_BIN }
|
64 |
})
|
65 |
const resultUrl = `https://${req.hostname}/${image.replace(tmpDir, 'file')}`
|
66 |
-
isTrue(obj.json) ? res.json({ success: true, result: resultUrl }) : res[isTrue(obj.
|
67 |
} catch (e) {
|
68 |
console.log(e)
|
69 |
res.status(500).json({ error: true, message: getError(e) })
|
@@ -85,7 +85,7 @@ app.all('/topdf', async (req, res) => {
|
|
85 |
await fs.promises.writeFile(`${tmpDir}/${fileName}`, bufferPDF)
|
86 |
|
87 |
const resultUrl = `https://${req.hostname}/file/${fileName}`
|
88 |
-
isTrue(obj.json) ? res.json({ success: true, result: resultUrl }) : res[isTrue(obj.
|
89 |
} catch (e) {
|
90 |
console.log(e)
|
91 |
res.status(500).json({ error: true, message: getError(e) })
|
@@ -107,7 +107,7 @@ app.all(/^\/webp2(gif|mp4|png)/, async (req, res) => {
|
|
107 |
await fs.promises.writeFile(`${tmpDir}/${fileName}`, fileBuffer)
|
108 |
|
109 |
const resultUrl = `https://${req.hostname}/file/${fileName}`
|
110 |
-
isTrue(obj.json) ? res.json({ success: true, result: resultUrl }) : res[isTrue(obj.
|
111 |
return
|
112 |
} else {
|
113 |
const fileName = randomName('.webp')
|
@@ -124,7 +124,7 @@ app.all(/^\/webp2(gif|mp4|png)/, async (req, res) => {
|
|
124 |
resultUrl = `https://${req.hostname}/file/${fileName.replace('webp', 'mp4')}`
|
125 |
}
|
126 |
|
127 |
-
isTrue(obj.json) ? res.json({ success: true, result: resultUrl }) : res[isTrue(obj.
|
128 |
}
|
129 |
} catch (e) {
|
130 |
console.log(e)
|
@@ -161,27 +161,32 @@ function randomName(ext = '') {
|
|
161 |
|
162 |
function toPDF(urls) {
|
163 |
return new Promise(async (resolve, reject) => {
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
for (let x = 0; x < urls.length; x++) {
|
168 |
-
if (!/https:\/\//.test(urls[x])) continue
|
169 |
-
const url = new URL(urls[x])
|
170 |
-
let image = await fetch(url.toString(), { headers: { referer: url.origin } })
|
171 |
-
if (!image.ok) continue
|
172 |
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
|
178 |
-
doc.
|
179 |
-
|
|
|
|
|
|
|
|
|
|
|
180 |
}
|
181 |
-
|
182 |
-
doc.on('data', (chunk) => buffs.push(chunk))
|
183 |
-
doc.on('end', () => resolve(Buffer.concat(buffs)))
|
184 |
-
doc.on('error', (err) => reject(err))
|
185 |
-
doc.end()
|
186 |
})
|
187 |
}
|
|
|
63 |
...obj, puppeteer: { executablePath: process.env.CHROME_BIN }
|
64 |
})
|
65 |
const resultUrl = `https://${req.hostname}/${image.replace(tmpDir, 'file')}`
|
66 |
+
isTrue(obj.json) ? res.json({ success: true, result: resultUrl }) : res[isTrue(obj.raw) ? 'send' : 'redirect'](resultUrl)
|
67 |
} catch (e) {
|
68 |
console.log(e)
|
69 |
res.status(500).json({ error: true, message: getError(e) })
|
|
|
85 |
await fs.promises.writeFile(`${tmpDir}/${fileName}`, bufferPDF)
|
86 |
|
87 |
const resultUrl = `https://${req.hostname}/file/${fileName}`
|
88 |
+
isTrue(obj.json) ? res.json({ success: true, result: resultUrl }) : res[isTrue(obj.raw) ? 'send' : 'redirect'](resultUrl)
|
89 |
} catch (e) {
|
90 |
console.log(e)
|
91 |
res.status(500).json({ error: true, message: getError(e) })
|
|
|
107 |
await fs.promises.writeFile(`${tmpDir}/${fileName}`, fileBuffer)
|
108 |
|
109 |
const resultUrl = `https://${req.hostname}/file/${fileName}`
|
110 |
+
isTrue(obj.json) ? res.json({ success: true, result: resultUrl }) : res[isTrue(obj.raw) ? 'send' : 'redirect'](resultUrl)
|
111 |
return
|
112 |
} else {
|
113 |
const fileName = randomName('.webp')
|
|
|
124 |
resultUrl = `https://${req.hostname}/file/${fileName.replace('webp', 'mp4')}`
|
125 |
}
|
126 |
|
127 |
+
isTrue(obj.json) ? res.json({ success: true, result: resultUrl }) : res[isTrue(obj.raw) ? 'send' : 'redirect'](resultUrl)
|
128 |
}
|
129 |
} catch (e) {
|
130 |
console.log(e)
|
|
|
161 |
|
162 |
function toPDF(urls) {
|
163 |
return new Promise(async (resolve, reject) => {
|
164 |
+
try {
|
165 |
+
const doc = new PDFDocument({ margin: 0, size: 'A4' })
|
166 |
+
const buffs = []
|
|
|
|
|
|
|
|
|
|
|
167 |
|
168 |
+
for (let x = 0; x < urls.length; x++) {
|
169 |
+
if (!/https:\/\//.test(urls[x])) continue
|
170 |
+
const url = new URL(urls[x])
|
171 |
+
let image = await fetch(url.toString(), { headers: { referer: url.origin } })
|
172 |
+
if (!image.ok) continue
|
173 |
+
|
174 |
+
const type = image.headers.get('content-type')
|
175 |
+
if (!/image/.test(type)) continue
|
176 |
+
image = Buffer.from(await image.arrayBuffer())
|
177 |
+
if (/(gif|webp)$/.test(type)) image = await sharp(image).png().toBuffer()
|
178 |
+
|
179 |
+
doc.image(image, 0, 0, { fit: [595.28, 841.89], align: 'center', valign: 'center' })
|
180 |
+
if (urls.length != x + 1) doc.addPage()
|
181 |
+
}
|
182 |
|
183 |
+
doc.on('data', (chunk) => buffs.push(chunk))
|
184 |
+
doc.on('end', () => resolve(Buffer.concat(buffs)))
|
185 |
+
doc.on('error', (err) => reject(err))
|
186 |
+
doc.end()
|
187 |
+
} catch (e) {
|
188 |
+
console.log(e)
|
189 |
+
reject(e)
|
190 |
}
|
|
|
|
|
|
|
|
|
|
|
191 |
})
|
192 |
}
|