Utiliser Mastodon

Updated 19 Juillet 2019

Configuration du serveur mandataire

Il est possible de configurer l'accès à d'autres ressources fédérées via un serveur mandataire. Ajoutez les paramètres nécessaires :

/var/calculate/www/mastodon/live/.env.production

http_proxy=http://proxy.example.org:8888

Redémarrez Mastodon :

/etc/init.d/mastodon-web restart

Utiliser les bots pour gérer les groupes

Un bot [mastodon-bot-autoresponder] (https://github.com/drequivalent/mastodon-bot-autoresponder) sera utilisé pour gérer les groupes.

Créer et configurer un bot

Créez l'utilisateur mastodonbot :

useradd -d /var/calculate/mastodonbot mastodonbot

Clônez le dépôt contenant le code source du bot pour l'utilisateur :

su - mastodonbot

git clone https://github.com/drequivalent/mastodon-bot-autoresponder mastodon-group-bot

Configurez un environnement virtuel pour Python et mettez-le en service.

cd mastodon-group-bot

python3 -m venv env

source env/bin/activate

Définissez les dépendances du bot.

pip install Mastodon.py beautifulsoup4==4.6.0

Créez un script simple de démarrage pour le démon :

/etc/init.d/mastodon-group-bot
#!/sbin/openrc-run
# Copyright 2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

name="Mastodon Group Bot daemon"
description="Mastodon Group Bot daemon"
BOTNAME=${SVCNAME#*.}
supervisor=supervise-daemon
output_log=/var/log/mastodon-group-bot-$BOTNAME.log
error_log=/var/log/mastodon-group-bot-$BOTNAME.log
command_user=mastodonbot
command="/var/calculate/mastodonbot/mastodon-group-bot/env/bin/python3"
command_args="autoresponder.py -c config.$BOTNAME.json"
directory="/var/calculate/mastodonbot/mastodon-group-bot"
pidfile="/run/mastodon-group-bot-$BOTNAME.pid"
command_background=true

depend() {
    use net
}

start_pre() {
    checkpath -f -o mastodonbot -m 0600 /var/log/mastodon-group-bot-$BOTNAME.log
}

Configurez les droits pour que le démon puisse démarrer :

chmod 755 /etc/init.d/mastodon-group-bot

Ajouter votre bot à Mastodon

Enregistrez le bot comme application sur votre serveur. Pour ce faire, ouvrez votre navigateur et connectez-vous à Mastodon sous le pseudo utilisé par le bot. Maintenant exécutez tokentool.py:

su - mastodonbot

cd mastodon-group-bot

source env/bin/activate

python tokentool.py
Choose your action:
[r]: register an app to get client_id and client_secret
[a]: authenticate to get access_token
if you're setting up a bot for the first time, choose [r].
> r
App name [autoresponder]: examplebot
Instance base URL [https://mastodon.social]: https://mastodon.example.org
App registered.
client_id: eidNondeabryievrewkasfakuvcorigovpefNifZibr
client_secret: jokpinshedCauHalsishpEbodIatsilyethjuOvtyfs
While you're at it, do you want to also authenticate?
y/n> y
Visit the following link, authenticate, and bring back the code that the page gives you afterwards.
NB: that code is *not* your access token.
https://mastodon.example.org/oauth/authorize?client_id=eidNondeabryievrewkasfakuvcorigovpefNifZibr&response_type=code&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=read+write
> MT-afgOKW4wffDpGjXUEB1dm135mcSwX9zql4c3ictM
Got access token: cNsH2V8AVJrrovdePEK7GFy6PA7ywHErU1xkwuIX5UM
Testing...
Success, authenticated as newbot.

Note

Pour obtenir le code d'accès, ~~MT-afgOKW4wffDpGjXUEB1dm135mcSwX9zql4c3ictM~ cliquez sur le lien.

Confirmation de l'accès pour le bot

Obtenir un jeton pour le bot

Au moment de l'inscription, les réglages seront les suivants :

  • client_id = eidNondeabryievrewkasfakuvcorigovpefNifZibr
  • client_secret = jokpinshedCauHalsishpEbodIatsilyethjuOvtyfs
  • access_token = cNsH2V8AVJrrovdePEK7GFy6PA7ywHErU1xkwuIX5UM

Configurez votre bot :

/var/calculate/mastodonbot/mastodon-group-bot/config.examplebot.json
{
    "base_url": "https://mastodon.example.org",
    "client_id": "eidNondeabryievrewkasfakuvcorigovpefNifZibr",
    "client_secret": "oeCMH9L_OeuuuV699334Rgea3o_0R3kYhfCKu9ZYCh4",
    "access_token": "cNsH2V8AVJrrovdePEK7GFy6PA7ywHErU1xkwuIX5UM",
    "message": "Hello, I'm a group bot. Follow me and then write something, and I will boost it. The admins of the group are:",
    "message_welcome": "Welcome our new member: ",
    "admins": [],
    "state_file": "/var/calculate/mastodonbot/mastodon-group-bot/state.examplebot"
}

Créez un lien symbolique pointant vers examplebot :

ln -sf mastodon-group-bot /etc/init.d/mastodon-group-bot.examplebot

Lancez votre bot et ajoutez-le au démarrage automatique :

/etc/init.d/mastodon-group-bot.examplebot start

rc-update add mastodon-group-bot.examplebot