add error-handling for Bluesky posting; truncate messages with more than 300 chars

This commit is contained in:
René Schimmelpfennig 2024-04-02 20:40:36 +02:00
parent 710c8b5089
commit 007a2793e2
No known key found for this signature in database
GPG key ID: EABA8F8CCF842F0B

26
main.js
View file

@ -58,6 +58,15 @@ function removeHtmlTags(input) {
return input.replace(/<[^>]*>/g, "");
}
function truncate(text, timestampId) {
if (text.length > 300) {
console.warn(`✂ post '${timestampId}' was truncated`)
return text.substring(0, 299) + '…'
}
return text
}
// Function to periodically fetch new Mastodon posts
async function fetchNewPosts() {
const response = await axios.get(
@ -74,13 +83,18 @@ async function fetchNewPosts() {
reversed.forEach((item) => {
const currentTimestampId = Date.parse(item.published);
if (currentTimestampId > newTimestampId) {
newTimestampId = currentTimestampId;
}
if (currentTimestampId > lastProcessedPostId && lastProcessedPostId != 0) {
const text = removeHtmlTags(item.object.content);
postToBluesky(text);
try {
console.log('📧 posting to BlueSky', currentTimestampId)
const text = truncate(removeHtmlTags(item.object.content), currentTimestampId);
postToBluesky(text);
if (currentTimestampId > newTimestampId) {
newTimestampId = currentTimestampId;
}
} catch (error) {
console.error('🔥 can\'t post to Bluesky', currentTimestampId, error)
}
}
});