118 lines
4.3 KiB
Markdown
118 lines
4.3 KiB
Markdown
# 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](assets/screenshot_form.png)
|
|
|
|
# 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](cron_scripts) montrant un exemple de crontab.
|
|
Modifiez votre crontab avec votre éditeur préféré en ligne de commande:
|
|
|
|
```bash
|
|
crontab -e
|
|
```
|
|
|
|
### Remplir les variables du fichier .env à créer
|
|
|
|
```bash
|
|
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.
|
|
|
|
```dotenv
|
|
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.
|
|
|
|
```bash
|
|
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.
|
|
|
|
```dotenv
|
|
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_random_from_elements.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"
|
|
|
|
|
|
```
|