splatoon3.ink/app/social/clients/ThreadsClient.mjs
2023-07-23 21:55:01 -07:00

39 lines
881 B
JavaScript

import sharp from "sharp";
import threads from "threads-api";
import Client from "./Client.mjs";
export default class ThreadsClient extends Client {
key = "threads";
name = "Threads";
#api;
constructor() {
super();
this.#api = new threads.ThreadsAPI({
// username: process.env.THREADS_USERNAME,
// password: process.env.THREADS_PASSWORD,
token: process.env.THREADS_TOKEN,
deviceID: process.env.THREADS_DEVICE_ID,
});
}
async canSend() {
// return process.env.THREADS_USERNAME
// && process.env.THREADS_PASSWORD;
return process.env.THREADS_TOKEN
&& process.env.THREADS_DEVICE_ID;
}
async send(status, generator) {
let jpeg = await sharp(status.media[0].file).jpeg().toBuffer();
await this.#api.publish({
text: status.status,
image: { type: "image/jpeg", data: jpeg },
});
}
}