Right now the only place the screenshot is being deleted is after a Twitter post:
twitter.post('statuses/update', params, function(err) {
if (err) {
console.log(err)
}
})
fs.unlink(screenshot)
The screenshot needs to be deleted in the following cases: if the user only is posting to Mastodon and not Twitter, if the screenshot was not uploaded to Twitter successfully (the callback returns so the fs.unlink code is never hit).
I used async for the screenshot code before because it simplified the coordination of all these async network requests a lot.