feat: add error-handling for Bluesky posting; truncate messages with more than 300 chars (#7)

This commit is contained in:
René Schimmelpfennig 2024-04-03 10:01:54 +02:00 committed by GitHub
parent 710c8b5089
commit 032677e371
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

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)
}
}
});