post function in utils

This commit is contained in:
Tykayn 2022-08-05 14:57:53 +02:00 committed by tykayn
parent a9680ccaaf
commit 70e4dce6ea
2 changed files with 93 additions and 89 deletions

View File

@ -6,95 +6,10 @@ import Masto from "mastodon";
import path from 'path'; import path from 'path';
const __dirname = path.resolve(); const __dirname = path.resolve();
const tkpostsjson = JSON.parse(fs.readFileSync(__dirname +"/assets/documents/tykayn_wptkblog_posts.json", 'utf-8')) const tkpostsjson = JSON.parse(fs.readFileSync(__dirname +"/assets/documents/tykayn_wptkblog_posts.json", 'utf-8'))
import {sendPostMastodon} from './utils.js'
let nowDate = new Date()
let defaultConfigMasto = {
author: 'curator',
visibility: 'public',
language: 'fr',
sensitive: false,
reallySendPost: false,
message: "Hey coucou! on est le" + nowDate,
scheduled_at: ""
}
export function sendPostMastodon(config) {
// override defaults with input argument
config = {
...defaultConfigMasto,
...config,
}
// require('dotenv').config();
if (process.env['TOKEN_' + config.author.toUpperCase()]) {
let visibility = 'public';
let language = 'fr';
let sensitive = false;
let accessToken = process.env['TOKEN_' + config.author.toUpperCase()]
const masto = new Masto({
access_token: accessToken,
api_url: process.env.INSTANCE_MASTODON + '/api/v1/',
});
let params = {
status: config.message,
visibility,
language,
sensitive
}
if (config.cw) {
params['spoiler_text'] = config.cw
}
if (config.scheduled_at && config.scheduled_at_bool) {
let dateschedule = new Date(config.scheduled_at)
params['scheduled_at'] = dateschedule.toISOString()
}
console.log(config)
/**
* envoi sans fichier joint
*/
if (!config.fichier) {
if (config.reallySendPost) {
masto.post('statuses', params).then(rep => {
// console.log('rep', rep)
console.log("posté, yay!")
}, err => {
console.error(err)
})
}
}
/**
* envoi avec fichier,
* on doit d'abord faire un upload du fichier,
* puis relier son id de media au nouveau post.
*/
// if (config.fichier) {
//
// masto.post('statuses', params).then(rep => {
// console.log('rep', rep)
// }, err => {
// console.error(err)
// })
// res.render('index', {bodyReq: config})
// }
} else {
console.error('pas de token pour ' + config.author, process.env.TOKEN_curator)
}
}
export function getRandomElementOfArray(listItems) { export function getRandomElementOfArray(listItems) {
return listItems[Math.floor(Math.random() * listItems.length)] return listItems[Math.floor(Math.random() * listItems.length)]
} }
@ -126,8 +41,8 @@ function postLink() {
* ${postObject.post_date} - ${postObject.guid} * ${postObject.post_date} - ${postObject.guid}
${filteredExcerpt} ${filteredExcerpt}
* #tykayn #tkblog #blog`, * #tykayn #tkblog #blog`,
reallySendPost: true, // reallySendPost: true,
// reallySendPost: false, reallySendPost: false,
} }
console.log("configPost.message", configPost.message) console.log("configPost.message", configPost.message)
sendPostMastodon(configPost) sendPostMastodon(configPost)

View File

@ -6,3 +6,92 @@ export function randomIntFromInterval(min, max) { // min and max included
export function getRandomElementOfArray(listItems) { export function getRandomElementOfArray(listItems) {
return listItems[Math.floor(Math.random() * listItems.length)] return listItems[Math.floor(Math.random() * listItems.length)]
} }
let nowDate = new Date()
export let defaultConfigMasto = {
author: 'curator',
visibility: 'public',
language: 'fr',
sensitive: false,
reallySendPost: false,
message: "Hey coucou! on est le" + nowDate,
scheduled_at: ""
}
export function sendPostMastodon(config) {
// override defaults with input argument
config = {
...defaultConfigMasto,
...config,
}
// require('dotenv').config();
if (process.env['TOKEN_' + config.author.toUpperCase()]) {
let visibility = 'public';
let language = 'fr';
let sensitive = false;
let accessToken = process.env['TOKEN_' + config.author.toUpperCase()]
const masto = new Masto({
access_token: accessToken,
api_url: process.env.INSTANCE_MASTODON + '/api/v1/',
});
let params = {
status: config.message,
visibility,
language,
sensitive
}
if (config.cw) {
params['spoiler_text'] = config.cw
}
if (config.scheduled_at && config.scheduled_at_bool) {
let dateschedule = new Date(config.scheduled_at)
params['scheduled_at'] = dateschedule.toISOString()
}
console.log(config)
/**
* envoi sans fichier joint
*/
if (!config.fichier) {
if (config.reallySendPost) {
masto.post('statuses', params).then(rep => {
// console.log('rep', rep)
console.log("posté, yay!")
}, err => {
console.error(err)
})
}
}
/**
* envoi avec fichier,
* on doit d'abord faire un upload du fichier,
* puis relier son id de media au nouveau post.
*/
// if (config.fichier) {
//
// masto.post('statuses', params).then(rep => {
// console.log('rep', rep)
// }, err => {
// console.error(err)
// })
// res.render('index', {bodyReq: config})
// }
} else {
console.error('pas de token pour ' + config.author, process.env.TOKEN_curator)
}
}