4.3 KiB
Репост материалов из RSS ленты в Pleroma
Использование
Подготовка
Весь процесс описан в официальной документации к mastodon. Здесь приводится копия тех же шагов, но с указанными минимальными правами для публикации новых media-файлов и статусов.
Регистрация приложения
Производится один раз для сервера Pleroma.
$ curl -X POST \
> -F 'client_name=rss2pleroma' \
> -F 'redirect_uris=urn:ietf:wg:oauth:2.0:oob' \
> -F 'scopes=write:statuses write:media' \
> -F 'website=https://tildegit.org/continue/rss2pleroma' \
> https://pleroma.example/api/v1/apps > application.json
Проверка зарегистрированного приложения:
$ cat application.json
Из выведенного в консоль в дальнейшем будет использоваться значение client_id
как CLIENT_ID
и значение client_secret
как CLIENT_SECRET
.
Получение токена доступа для бота
Производится один раз для каждого пользователя Pleroma.
- создаем нового Pleroma пользователя и входим браузером этим аккаунтом
- открываем в браузере следующую ссылку
https://pleroma.example/oauth/authorize?client_id=CLIENT_ID&scope=write:statuses+write:media&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code
- в результате получаем значение
Token code
, которое в дальнейшем будет использовано какTOKEN_CODE
Получаем сам токен доступа для бота:
$ curl -X POST \
> -F 'client_id=CLIENT_ID' \
> -F 'client_secret=CLIENT_SECRET' \
> -F 'redirect_uri=urn:ietf:wg:oauth:2.0:oob' \
> -F 'grant_type=authorization_code' \
> -F 'code=TOKEN_CODE' \
> -F 'scope=write:statuses write:media' \
> https://pleroma.example/oauth/token > my_pleroma_account.json
Проверяем полученные данные:
$ cat my_pleroma_account.json
Из выведенного в консоль в дальнейшем будет использоваться значение access_token
как TOKEN
.
Инсталляция кода бота
Производится на той машине, где будет исполнятся бот. Далее приводится вариант инсталляции с использованием virtualenv.
- Устанавливаем virtualenv
$ python3 -m pip install --user virtualenv
- Создаем новое виртуальное python-окружение rss2pleroma:
$ python3 -m virtualenv rss2pleroma
- Устанавливаем пакет rss2pleroma в созданном окружении:
$ rss2pleroma/bin/pip install --extra-index-url https://tildegit.org/api/packages/continue/pypi/simple rss2pleroma
- Проверяем работоспособность установленного пакета:
rss2pleroma/bin/python rss2pleroma --help
Обновление установленного бота
rss2pleroma/bin/pip install --upgrade --extra-index-url https://tildegit.org/api/packages/continue/pypi/simple rss2pleroma
Запуск бота
Для корректной работы бота он должен запускаться с некоторой периодичностью. Для этого следующая команда может быть добавлена в crontab
:
rss2pleroma/bin/python rss2pleroma --db opennet --rss_url https://www.opennet.ru/opennews/opennews_full.rss --server_url https://pleroma.example --token TOKEN --publish
Запуск тестов
Перед первым запуском тестов необходимо установить дополнительные зависимости:
$ pip install pytest requests_mock
Затем тесты можно запускать с использованием pytest
:
$ pytest