splatoon3.ink/app/social/clients/ThreadsClient.mjs
2024-03-17 10:20:17 -07:00

40 lines
916 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_USERNAME
&& 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 },
});
}
}