Handle replies

This commit is contained in:
Elizabeth Cray 2025-01-31 23:22:23 -05:00
parent 756193c021
commit db6bf23fb5

View File

@ -152,7 +152,7 @@ client.get(`/accounts/${process.env.MASTODON_ID}/statuses`, {
],
});
text = text.replace(/@([^ ]+) \(http[s]?:\/\/([^\/]+)[^\)]+\)/g, '@$1@$2');
// TODO: Strip hashtag urls #tag (http://url)
text = text.replace(/(#[^ #]+) \(http[s]?:\/\/[^\)]+\)/g, '$1');
text = await replaceAsync(text, /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g, async (url) => {
if (url.length < 40){
return url;
@ -160,7 +160,14 @@ client.get(`/accounts/${process.env.MASTODON_ID}/statuses`, {
let r = await axios.get(`https://ulvis.net/api.php?url=${url}`);
return r.data?r.data:url;
})
});
if (status.mentions > 0 && status.in_reply_to_id !== null){
// Post is a reply
const replyTo = [...status.mentions].filter((mention) => mention.id === status.in_reply_to_account_id);
if (replyTo.length > 0){
text = `Reply to: ${replyTo[0].url}/@${replyTo[0].acct}/${status.in_reply_to_id}\n${text}`;
}
}
if (text.length > 300 && status.url.length < 300){
text = `${text.slice(0, -1 * (status.url.length + 4))}...\n${status.url}`;
}
@ -179,7 +186,6 @@ client.get(`/accounts/${process.env.MASTODON_ID}/statuses`, {
}
bskyPost(text, medias);
appendFileSync(historyFile, `\n${status.id}`);
// TODO: Rempve temp files
} else {
console.log(`ERROR: ${status.url} is too long and unable to be reposted`);
}