83 lines
2.7 KiB
JavaScript
Raw Normal View History

2022-08-04 23:07:59 +02:00
import fs from "fs";
import path from 'path';
2022-12-07 23:15:07 +01:00
import sendPostMastodon, {findFirstImageInContent, randomIntFromInterval, downloadImage} from './utils.mjs'
import Masto from "mastodon";
2022-08-04 23:07:59 +02:00
2022-08-08 18:43:26 +02:00
const __dirname = path.resolve();
2022-12-07 23:15:07 +01:00
const folderBlogPostsPreview = process.cwd() + '/assets/blog_posts_medias/'
2022-08-08 18:43:26 +02:00
const tkpostsjson = JSON.parse(fs.readFileSync(__dirname + "/assets/documents/tykayn_wptkblog_posts.json", 'utf-8'))
2022-12-07 23:15:07 +01:00
2022-12-07 17:39:46 +01:00
let reallySendPost = false;
2022-12-07 23:15:07 +01:00
2022-12-07 17:39:46 +01:00
reallySendPost = true;
2022-08-04 23:07:59 +02:00
export function getRandomElementOfArray(listItems) {
return listItems[Math.floor(Math.random() * listItems.length)]
}
function getRandomLink() {
let filteredLinks = tkpostsjson.filter(elem => elem.post_status === 'publish')
return getRandomElementOfArray(filteredLinks)
}
function postLink() {
let postObject = getRandomLink()
2022-12-07 23:15:07 +01:00
console.log("envoi de post par tykayn")
2022-08-04 23:07:59 +02:00
let filteredExcerpt = postObject.post_content.replace(/<[^>]+>/g, '')
let counterLength = filteredExcerpt.length;
let limitExcerpt = 250
filteredExcerpt = filteredExcerpt.substring(0, limitExcerpt)
2022-08-08 18:43:26 +02:00
if (filteredExcerpt && counterLength > limitExcerpt) {
2022-08-08 22:33:06 +02:00
filteredExcerpt = ' _ ' + filteredExcerpt + '… _'
2022-08-04 23:07:59 +02:00
}
let configPost = {
2022-08-08 18:25:37 +02:00
author: 'tykayn',
2022-12-07 23:15:07 +01:00
image: 'tk_blog_bannieres_oct2010-' + randomIntFromInterval(1, 10) + '.jpg',
2022-08-04 23:07:59 +02:00
message: `# [${postObject.post_title}](${postObject.guid})
* ${postObject.post_date} - ${postObject.guid}
${filteredExcerpt}
* #tykayn #tkblog #blog`,
2022-08-08 18:43:26 +02:00
reallySendPost
2022-08-04 23:07:59 +02:00
}
2022-12-07 23:15:07 +01:00
// ajouter la première image du post de blog
let firstPictureSource = findFirstImageInContent(postObject.post_content);
if (firstPictureSource) {
console.log("firstPictureSource found", firstPictureSource)
downloadImage(firstPictureSource, folderBlogPostsPreview + 'media_post_' + postObject.post_name + '.jpg')
.then((res) => {
// suite du poste avec upload d'image
console.log('on envoie le media et l image')
configPost.image = 'media_post_' + postObject.post_name + '.jpg';
sendPostMastodon(configPost)
},
(err) => {
console.log('pas dimage trouvée pour l URL ', firstPictureSource, err)
sendPostMastodon(configPost)
}
)
.catch((err) => {
console.log('erreur avec cette URL ', firstPictureSource, err)
sendPostMastodon(configPost)
})
} else {
// no image provided
console.log("pas d'image dans le corps du texte")
// on envoie avec l'image par défaut
sendPostMastodon(configPost)
}
2022-08-04 23:07:59 +02:00
}
postLink();