up composite de recommendations

This commit is contained in:
Tykayn 2024-02-07 18:25:49 +01:00 committed by tykayn
parent 9419acc0f5
commit 7ed103dba7
3 changed files with 2010 additions and 12 deletions

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 KiB

View File

@ -9,15 +9,18 @@ import Masto from 'mastodon'
* picture generation * picture generation
*/ */
import Jimp from 'jimp' import Jimp from 'jimp'
import { getRequestOptions, sendGetRequest } from '../helpers/libs/utils.mjs' import { getRequestOptions, randomIntFromInterval, sendGetRequest } from '../helpers/libs/utils.mjs'
import fs from 'fs' import fs from 'fs'
import path from 'path' import path from 'path'
let reallySendPost = false let reallySendPost = false
reallySendPost = true reallySendPost = true
async function getFollowers (username, instance) { async function getFollowers (username, instance) {
const url = `${instance}/api/v1/accounts/${username}/following` const rand = randomIntFromInterval(1, 30) * 1000
console.log('random max id x 1000', rand)
const url = `${instance}/api/v1/accounts/${username}/following?max_id=${rand}000`
try { try {
const response = await axios.get(url) const response = await axios.get(url)
@ -67,12 +70,13 @@ async function main () {
const userIdOnInstance = '1' const userIdOnInstance = '1'
const instance = 'mastodon.cipherbliss.com' const instance = 'https://mastodon.cipherbliss.com'
// TODO get the followers from a csv file if there is one in assets/data/follows.csv
const followers = await getFollowers(userIdOnInstance, instance) const followers = await getFollowers(userIdOnInstance, instance)
console.log('followers.length', followers.length) console.log('followers.length', followers.length)
const randomFollowers = followers?.sort(() => Math.random() - 0.5)?.slice(0, 3) const randomFollowers = followers?.sort(() => Math.random() - 0.5)?.slice(0, 3)
// console.log('Random followers:', randomFollowers) // console.log('Random followers:', randomFollowers)
@ -82,12 +86,13 @@ async function main () {
randomFollowers.forEach(account => { randomFollowers.forEach(account => {
message += '\n' + displayDataAboutFollower(account) message += '\n' + displayDataAboutFollower(account)
console.log('account', account) console.log('account', account.acct)
avatars_urls.push(account.avatar_static) avatars_urls.push(account.avatar_static)
}) })
message += '\n #fedifollows #curatorRecommendations' message += '\n #fedifollows #curatorRecommendations'
generateAvatarComposite(avatars_urls) await generateAvatarComposite(avatars_urls)
return message return message
} }
@ -176,10 +181,10 @@ function publishOnMastodon (folderUnpublished, configPost) {
api_url: process.env.INSTANCE_MASTODON + '/api/v1/', api_url: process.env.INSTANCE_MASTODON + '/api/v1/',
}) })
if (configPost.reallySendPost) { let imagePath = `${path.resolve()}/${compositeFileName}`
console.log('------- imagePath', imagePath)
let imagePath = path.resolve() + configPost.image if (configPost.reallySendPost) {
console.log('imagePath', imagePath)
/** /**
* poster le média, puis faire un toot avec le média lié * poster le média, puis faire un toot avec le média lié
*/ */
@ -187,7 +192,8 @@ function publishOnMastodon (folderUnpublished, configPost) {
.then(resp => { .then(resp => {
let id = resp.data.id let id = resp.data.id
configPost.media_ids = [id] configPost.media_ids = [id]
console.log('\n\n id du média pour le post:', id) console.log('\n\n id du média pour le post:', id, configPost)
masto.post('statuses', configPost).then(rep => { masto.post('statuses', configPost).then(rep => {
// console.log('rep', rep) // console.log('rep', rep)
console.log(`\n\n posté avec une nouvelle image, ${configPost.image} WOOT`) console.log(`\n\n posté avec une nouvelle image, ${configPost.image} WOOT`)
@ -210,19 +216,27 @@ function publishOnMastodon (folderUnpublished, configPost) {
main().then(message => { main().then(message => {
// let md_message = convertHTMLtoMD(message) // let md_message = convertHTMLtoMD(message)
let md_message = message.trim() + '\n' let md_message = message.trim() + '\n'
console.log('message', message)
console.log('md_message', md_message) console.log('md_message', md_message)
// upload de fileName et création du post par le Curator // upload de fileName et création du post par le Curator
let configPost = { let configPost = {
author: 'curator', author: 'curator',
website: 'cipherbliss', website: 'cipherbliss',
visibility: 'public',
language: 'fr',
sensitive: false,
postObject: {}, postObject: {},
folder_image: '.', folder_image: '.',
image: compositeFileName, scheduled_at: '',
scheduled_at_bool: false,
content_type: 'text/markdown',
// image: compositeFileName,
message: md_message, message: md_message,
reallySendPost reallySendPost
} }
publishOnMastodon(folderUnpublished, configPost) // publishOnMastodon(folderUnpublished, configPost)
}, err => { }, err => {
console.error(err) console.error(err)