diff options
author | Volpeon <git@volpeon.ink> | 2021-10-19 12:20:56 +0200 |
---|---|---|
committer | Volpeon <git@volpeon.ink> | 2021-10-19 12:20:56 +0200 |
commit | 1adb1b9d24c66732dd94f2a7120d1f93b08abdf5 (patch) | |
tree | 1eef1e85ce30fa6153002db525d7d239a0a76cfb /src/index.ts | |
parent | Fix dedupe (diff) | |
download | feralbot-1adb1b9d24c66732dd94f2a7120d1f93b08abdf5.tar.gz feralbot-1adb1b9d24c66732dd94f2a7120d1f93b08abdf5.tar.bz2 feralbot-1adb1b9d24c66732dd94f2a7120d1f93b08abdf5.zip |
Compress files > 9 MB
Diffstat (limited to 'src/index.ts')
-rw-r--r-- | src/index.ts | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/index.ts b/src/index.ts index 3b8b0a8..e7bb328 100644 --- a/src/index.ts +++ b/src/index.ts | |||
@@ -1,7 +1,8 @@ | |||
1 | import * as e621 from "./api/e621"; | 1 | import * as e621 from "./api/e621"; |
2 | import * as mastodon from "./api/mastodon"; | 2 | import * as mastodon from "./api/mastodon"; |
3 | import config from "./config"; | 3 | import config from "./config"; |
4 | import * as cliArgs from 'ts-command-line-args'; | 4 | import Sharp from "sharp"; |
5 | import * as cliArgs from "ts-command-line-args"; | ||
5 | 6 | ||
6 | const args = cliArgs.parse<{ | 7 | const args = cliArgs.parse<{ |
7 | id?: number; | 8 | id?: number; |
@@ -9,11 +10,11 @@ const args = cliArgs.parse<{ | |||
9 | }>( | 10 | }>( |
10 | { | 11 | { |
11 | id: { type: Number, optional: true }, | 12 | id: { type: Number, optional: true }, |
12 | help: { type: Boolean, optional: true, alias: 'h' }, | 13 | help: { type: Boolean, optional: true, alias: "h" }, |
13 | }, | 14 | }, |
14 | { | 15 | { |
15 | helpArg: 'help', | 16 | helpArg: "help", |
16 | }, | 17 | } |
17 | ); | 18 | ); |
18 | 19 | ||
19 | async function postRandomPicture() { | 20 | async function postRandomPicture() { |
@@ -24,7 +25,7 @@ async function postRandomPicture() { | |||
24 | const post = await e621.getRandomPost(query); | 25 | const post = await e621.getRandomPost(query); |
25 | 26 | ||
26 | console.log(`Got ${post.id} via query ${queryIndex}`); | 27 | console.log(`Got ${post.id} via query ${queryIndex}`); |
27 | 28 | ||
28 | await handlePost(post); | 29 | await handlePost(post); |
29 | } | 30 | } |
30 | 31 | ||
@@ -34,7 +35,7 @@ async function postSpecificPicture(id: number) { | |||
34 | const post = await e621.getPostById(id); | 35 | const post = await e621.getPostById(id); |
35 | 36 | ||
36 | console.log(`Got ${post.id}`); | 37 | console.log(`Got ${post.id}`); |
37 | 38 | ||
38 | await handlePost(post); | 39 | await handlePost(post); |
39 | } | 40 | } |
40 | 41 | ||
@@ -44,7 +45,16 @@ async function handlePost(post: e621.Post) { | |||
44 | 45 | ||
45 | console.log(`Downloading image...`); | 46 | console.log(`Downloading image...`); |
46 | 47 | ||
47 | const file = await e621.client.get(post.file.url).buffer(); | 48 | let file = await e621.client.get(post.file.url).buffer(); |
49 | |||
50 | if (Buffer.byteLength(file) > 1024 * 1024 * 9) { | ||
51 | console.log(`Compressing...`); | ||
52 | |||
53 | file = await Sharp(file) | ||
54 | .resize(1000, 1000, { fit: "inside", withoutEnlargement: true }) | ||
55 | .jpeg({ quality: 80, mozjpeg: true }) | ||
56 | .toBuffer(); | ||
57 | } | ||
48 | 58 | ||
49 | console.log(`Uploading...`); | 59 | console.log(`Uploading...`); |
50 | 60 | ||