No project description provided
Project description
Pystodon
A hybrid between a framework for building Mastodon bots and a standalone bot. You can see this bot in action on Mastodon (not always running).
Usage
Prerequisites
- A Mastodon account
- Preferably a bot account, but a normal account will work as well
- A Mastodon application
- Log into your Mastodon account on the respective instance's web interface
- Navigate to Preferences > Development > Your applications
- Click "New application"
- Set an application name (e.g. "Rather Curious Bot")
- For basic usage, allow the application to read and write to your account
- You can also try specifying more granular permissions but this is not tested (yet)
- Click "Submit"
- Make sure you are in the respective application's details page
- Copy "Your access token"
- This is your bot's access token
- You will need this later
- Do not share this token as it allows access to your account
Basic Configuration
- Configuration is handled through environment variables, a
.envfile, or command-line arguments (--helpfor more information) - To see an example configuration, see
.env.example - This can be copied to
.envand edited to suit your needs
Poetry
Specific Prerequisites
- Python (3.11+)
- Poetry
- Poetry is a package manager for Python that manages dependencies and virtual environments
Installation
- Clone the repository
git clone https://github.com/slashtechno/pystodon
- Change directory into the repository
cd pystodon
- Install dependencies
poetry install
Running
- Confirm the bot has been configured correctly
poetry run python -m pystodon
Docker
Recommended, especially if you want to use commands that depend on a database (e.g. #remindme)
Specific Prerequisites
- Docker
- Docker is a platform for developing, shipping, and running applications in containers
- Docker Compose
- Docker Compose is a tool for defining and running multi-container Docker applications
Running
- Clone the repository
git clone https://github.com/slashtechno/pystodon
- Change directory into the repository
cd pystodon
- Confirm the bot has been configured correctly
docker-compose up -d- The
-dflag runs the containers in the background
- The
Specific Prerequisites
- Python (3.11+)
- See the Poetry section for more information
PyPi
Not recommended as you can't modify the commands
Requirements
- Python (3.11+)
- Read the Poetry section for more information
Installation
pip install pystodon- You may need to use
pip3instead ofpipdepending on your system - In addition, you may want to try
python -m pip install pystodonorpython3 -m pip install pystodonif the above commands do not work
- You may need to use
Running
- Assuming programs installed by
pipare in your PATH, you can run the bot withpystodon
Usage
- By default, the bot will use the commands configured in
pystodon/commands.py- Commands include
#remindme,#timezone,#weather, and/test - The command
help(note the lack of a prefix) will list all available commands and can be used to get more information on a specific command - These commands can be modified, removed, or added to suit your needs
- Look in
pystodon/__main__.pyto see how commands are added - When running with Docker, run
docker compose --buildto rebuild the image with the new commands
- Look in
- Commands include
- The syntax for commands is
@bot_username@example.com command [arguments]- For example,
@rathercurious #remindme in 1h30m - The bot will match the visibility of the command to the visibility of the message it is replying to
- If the message is public, the bot will reply with a public message
- If the message is unlisted, the bot will reply with an unlisted message
- If the message is direct, the bot will reply with a direct message
- It's recommended to set
RC_ALWAYS_MENTIONtoTruein the.env(or use--always-mention) to ensure the user is mentioned in the reply
- For example,
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pystodon-0.1.0.tar.gz.
File metadata
- Download URL: pystodon-0.1.0.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.2 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
977272bec6aa610b808285faf40652eb837bb92ed674fce30c37fdfa273f12bc
|
|
| MD5 |
d14badafa76120bf2ff2422e38dfc03f
|
|
| BLAKE2b-256 |
0bf9cbce7438ad55f4635e369818f0e6e77a18cd9ba535541053592c2ac449e4
|
File details
Details for the file pystodon-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pystodon-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.2 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b14527274023bbf26fd161a285a32586eb7aa6ad1dd1bd7fd57941f2f473018
|
|
| MD5 |
07e0284a7fc6bd318e44372b4ea5e55f
|
|
| BLAKE2b-256 |
f7f5a5fd1843e5cd4c98b3308d3374b700752ae883fac5a9e9e3b9be83ac974f
|