Pouvoir faire de la planification de posts de plusieurs comptes mastodon en créant une app pour chacun d'eux dans son compte masto, et en reportant les accès dans un fichier d'environnement de cette app nodejs.
Go to file
2023-03-04 10:30:20 +01:00
.idea hop 2022-12-07 17:07:52 +01:00
assets gather mentions of multi accounts 2023-03-04 10:30:20 +01:00
bin add bash scripts 2022-08-09 16:38:07 +02:00
cron_scripts gather mentions of multi accounts 2023-03-04 10:30:20 +01:00
helpers gather mentions of multi accounts 2023-03-04 10:30:20 +01:00
public display home 2022-09-07 10:04:24 +02:00
routes gather mentions of multi accounts 2023-03-04 10:30:20 +01:00
views gather mentions of multi accounts 2023-03-04 10:30:20 +01:00
.env.example gather mentions of multi accounts 2023-03-04 10:30:20 +01:00
.gitignore gather mentions of multi accounts 2023-03-04 10:30:20 +01:00
.yarnrc.yml add docs 2022-11-28 09:39:07 +01:00
app.mjs gather mentions of multi accounts 2023-03-04 10:30:20 +01:00
Makefile fetch recent blog posts as json in makefile 2022-08-08 22:10:36 +02:00
mastodon_multi_accounts.db hop, ajout a la file d'attente de messages 2022-07-10 22:38:47 +02:00
osm_wiki_description_page.jpg up post picture wiki osm 2022-12-14 18:18:34 +01:00
package-lock.json afis science scripts 2023-03-03 14:08:18 +01:00
package.json group days for adl events 2023-03-03 18:54:50 +01:00
publisher.js up 2022-08-04 16:40:19 +02:00
README.md up scripts 2022-12-07 17:39:46 +01:00
scrapper.mjs hop 2022-12-07 17:07:52 +01:00
wget-log group days for adl events 2023-03-03 18:54:50 +01:00
yarn.lock group days for adl events 2023-03-03 18:54:50 +01:00

Mastodon Multi account posting

Permet de poster sur mastodon selon le compte que l'on souhaite multi-account-post-schedule-mastodon et de réaliser des bots d'autopost de liens et d'images.

Pouvoir faire de la planification de posts de plusieurs comptes mastodon en créant une app pour chacun d'eux dans son compte masto, et en reportant les accès dans un fichier d'environnement de cette app nodejs. screenshot form

Getting started

Scripts d'autopost

Utiliser un cronjob pour lancer les scripts bash, qui s'occupent de faire fonctionner les scripts JS avec les bonnes variables d'environnement. Voir le dossier cron_scripts montrant un exemple de crontab. Modifiez votre crontab avec votre éditeur préféré en ligne de commande:

crontab -e 

Remplir les variables du fichier .env à créer

cp .env.example .env

Et ajoutez les token de bot pour faire de l'autopost. Vous trouverez ces token dans vos comptes d'utilisateur Mastodon, partie "développement", créer un token pour chaque compte.

TOKEN_account_UTILISATEUR_MACHIN=MON_TOKEN_SDZERTYYRUTKIOUL46577OUKI?FXGDSGTGH_EXEMPLE

Installez les dépendances NPM avec Yarn. Récupérez les fichiers de blog wordpress via l'interface wp-json, mettez les json dans le dossier source. Modifiez les scripts dans le dossier helpers pour les faire convenir à votre présentation de Toot Mastodn. Exécutez les scripts node.

Interface Web multi compte

Requirements: avoir nodeJS sur sa machine et un navigateur.

yarn
cp .env.example .env

Pour débuter il va falloir copier le fichier d'environnement, installer les packages npm, aller créer une application dans les comptes mastodon pour chaque compte que l'on souhaite gérer

Exemple https://mastodon.cipherbliss.com/settings/applications

Créer une nouvelle application, copier les codes d'app id, secret et token. Et les mettre dans un fichier .env à la base de ce projet.

TOKEN_account_machin=ABCD

TOKEN_account_bidule=ABCD

Chaque info d'API doit correspondre à un compte pour lequel vous avez obtenu des jetons d'API. Si vous sélectionnez un compte Toto, il faut que vous ayez dans le fichier .env un TOKEN_Toto=XXXXXYYYYZZZZZZZ, avec la bonne valeur donnée par votre instance mastodon.

lancer le serveur local avec un npm start aller sur localhost 8000 et zou, on peut créer la base de données, et commencer à sauver de nouveaux messages. http://localhost:8000

Planifier ses posts

yes we can

  • on peut ajouter des posts avec un fichier attaché

on ne peut pas encore:

  • poster maintenant un nouveau post sans passer par la file d'attente
  • configurer les comptes à choisir dynamiquement
  • redistribuer les schedule des posts
  • publier une image au hasard parmi un dossier
  • publier en suivant les nouveautés dans un flux RSS
  • publier en scrapant les données d'un site
  • publier un lien au hasard parmi une liste préenregistrée de liens correspondant à un compte.
  • pas de correspondance dynamique entre plusieurs instances, on fait tout avec une seule instance pour le moment
  • avoir en base l'information de quand est ce qu'un post a été envoyé à son instance par API.

Notes

ce site n'a pas besoin d'être hébergé sur le serveur de l'instance qu'il utilise Venez causer sur mastodon! Ceci utilise un fichier sqlite comme base de données, vous pouvez faire des ajouts en base avec un bon IDE sans avoir à développer d'interface web. Les merge requests sont bienvenues.

par tykayn: contact at cipherbliss.com, https://www.cipherbliss.com

https://mastodon.cipherbliss.com

Cronjob

12 12-14 * * *      cd /home/tykayn/www/mastodon_multi_account && nvm use 16 && node helpers/tykayn_blog.mjs | tee -a /home/tykayn/log_autopost.txt  2>&1
0 7 * * *      cd /home/tykayn/www/mastodon_multi_account && nvm use 16 && node helpers/wiki_osm.mjs | tee -a /home/tykayn/log_autopost.txt  2>&1
0 0 * * *      cd /home/tykayn/www/mastodon_multi_account && nvm use 16 && node helpers/qzine_article.mjs | tee -a /home/tykayn/log_autopost.txt  2>&1
# version avec scripts bash
0 7 * * *      su tykayn -c "bash /home/tykayn/wiki_osm.sh"
*/30 * * * *    su tykayn -c "bash /home/tykayn/meme_poster_random.sh"
0 0 * * *      su tykayn -c "bash /home/tykayn/post_qzine.sh"
14 12-14 * * *  su tykayn -c "bash /home/tykayn/tkblog_post.sh"