You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.0 KiB

import Mastodon from "mastodon-api";
import fs from "fs";
export class MastodonHandler extends Mastodon{
postStatus(status){
this.post('statuses', {status: status}).then((resp) => {
console.log("status posted => ");
console.log(resp.data);
});
}
postMedia(status, mediaPath, retry, onError, callback){
if (retry <= 0){
onError();
return;
}
this.post('media', { file: fs.createReadStream(mediaPath) }).then(resp => {
if (!resp.data.id){
this.postMedia(status, mediaPath, --retry, onError);
console.log("issue while uploading, retry")
return;
}
let id = resp.data.id;
console.log("media uploaded => ");
console.log(resp.data);
this.post('statuses', { status: status, media_ids: [id] }).then((resp) => {
console.log("media posted => ");
console.log(resp.data);
callback();
});
});
}
}