83 lines
2.7 KiB
JavaScript
83 lines
2.7 KiB
JavaScript
import fs from "fs";
|
|
import path from 'path';
|
|
import sendPostMastodon, {findFirstImageInContent, randomIntFromInterval, downloadImage} from './utils.mjs'
|
|
import Masto from "mastodon";
|
|
|
|
const __dirname = path.resolve();
|
|
const folderBlogPostsPreview = process.cwd() + '/assets/blog_posts_medias/'
|
|
const tkpostsjson = JSON.parse(fs.readFileSync(__dirname + "/assets/documents/tykayn_wptkblog_posts.json", 'utf-8'))
|
|
|
|
let reallySendPost = false;
|
|
|
|
reallySendPost = true;
|
|
|
|
|
|
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()
|
|
console.log("envoi de post par tykayn")
|
|
|
|
let filteredExcerpt = postObject.post_content.replace(/<[^>]+>/g, '')
|
|
let counterLength = filteredExcerpt.length;
|
|
let limitExcerpt = 250
|
|
filteredExcerpt = filteredExcerpt.substring(0, limitExcerpt)
|
|
if (filteredExcerpt && counterLength > limitExcerpt) {
|
|
filteredExcerpt = ' _ ' + filteredExcerpt + '… _'
|
|
}
|
|
|
|
let configPost = {
|
|
author: 'tykayn',
|
|
image: 'tk_blog_bannieres_oct2010-' + randomIntFromInterval(1, 10) + '.jpg',
|
|
message: `# [${postObject.post_title}](${postObject.guid})
|
|
|
|
* ${postObject.post_date} - ${postObject.guid}
|
|
${filteredExcerpt}
|
|
* #tykayn #tkblog #blog`,
|
|
reallySendPost
|
|
}
|
|
|
|
// 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)
|
|
}
|
|
|
|
|
|
}
|
|
|
|
postLink(); |