Post to Mastodon
Project description
postodon
Randomly posts things to Mastadon from a pre-defined list, using the Mastodon API.
The list of posts is a JSON file:
[
{"content": "Text of the post", "id": 1, "status": "unposted"},
...,
]
The command postodon
randomly selects an unposted post, posts it to Mastodon,
and marks it as posted in the list. If there are no unposted items, an already-
posted item is used instead.
Requirements
Postodon requires Python 3.7+. It is tested on Linux and macOS.
Installation
Postodon is published as a Python package and can be installed with pipx
(recommended), or pip
within a virtual environment. Open up a terminal and
install with:
pipx install postodon
Configuration
-
Register an application on Mastodon as described here: https://docs.joinmastodon.org/client/token/#app
-
Get an access token as described here: https://docs.joinmastodon.org/client/authorized/#flow
-
Securely store the returned
access_token
for future reference -
Run
postodon init
to create an empty config file (note the location) -
Edit the config file to point to the name of the Mastodon instance (e.g.
botsin.space
) and the path to the posts file, e.g./path/to/posts.json
-
Put the access token in an environment variable called
AUTH_TOKEN
export AUTH_TOKEN=<your_access_token_here>
Usage
To publicly post a random post from the list (marked as English), and update the list (i.e. mark the post having been posted):
postodon
This is a shortcut for postodon post
. NB if there are no unposted items left
in the list, a randomly-selected item from the 'posted' selection will be
posted instead.
To randomly select an item from the list without either updating the list or posting (dry-run mode):
postodon post -n
To add new posts to the list for future posting:
postodon add "Text of post"
Development
To contribute to this library, first checkout the code. Then create a new virtual environment:
cd postodon
python -m venv .venv
source .venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[dev,tests]'
To run the tests:
pytest
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file postodon-0.0.5.tar.gz
.
File metadata
- Download URL: postodon-0.0.5.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.11.6 Darwin/22.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2458bb215cac7febcf3d2d3cf46ce8233373652a1c607a2c8a1244485d1c5ffe |
|
MD5 | cac90c56ae7dcf3d10048600cd553322 |
|
BLAKE2b-256 | b0c4b5f97c6fbe7aefcf15d0d954200cb7d1aa06356cf2c7edd6a62113c544f3 |
File details
Details for the file postodon-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: postodon-0.0.5-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.11.6 Darwin/22.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43ee09e52a42a4a282013c71674fc5bf890ad134b25068975c907141e34f8a50 |
|
MD5 | 2e71cd97e4094413d52ffd542019e5e6 |
|
BLAKE2b-256 | cb3d599625e17cd6272492b0ae02de8909ec0f81cdd87a8acecb8751c9a0d3da |