Skip to main content

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
    1. Log into your Mastodon account on the respective instance's web interface
    2. Navigate to Preferences > Development > Your applications
    3. Click "New application"
    4. Set an application name (e.g. "Rather Curious Bot")
    5. 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)
    6. Click "Submit"
    7. Make sure you are in the respective application's details page
    8. 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 .env file, or command-line arguments (--help for more information)
  • To see an example configuration, see .env.example
  • This can be copied to .env and edited to suit your needs

Poetry

Specific Prerequisites

  • Python (3.11+)
    • pyenv assists with installing and managing multiple versions of Python and may be helpful if you have an incompatible version of Python installed
  • Poetry
    • Poetry is a package manager for Python that manages dependencies and virtual environments

Installation

  1. Clone the repository
    • git clone https://github.com/slashtechno/pystodon
  2. Change directory into the repository
    • cd pystodon
  3. Install dependencies
    • poetry install

Running

  1. Confirm the bot has been configured correctly
  2. 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

  1. Clone the repository
    • git clone https://github.com/slashtechno/pystodon
  2. Change directory into the repository
    • cd pystodon
  3. Confirm the bot has been configured correctly
  4. docker-compose up -d
    • The -d flag runs the containers in the background

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

  1. pip install pystodon
    • You may need to use pip3 instead of pip depending on your system
    • In addition, you may want to try python -m pip install pystodon or python3 -m pip install pystodon if the above commands do not work

Running

  • Assuming programs installed by pip are in your PATH, you can run the bot with pystodon

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__.py to see how commands are added
      • When running with Docker, run docker compose --build to rebuild the image with the new commands
  • 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_MENTION to True in the .env (or use --always-mention) to ensure the user is mentioned in the reply

Release files for pystodon 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pystodon 0.1.0
File Size Uploaded
pystodon-0.1.0.tar.gz 12.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pystodon 0.1.0
File Interpreter ABI Platform
pystodon-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.2 kB

Release files / pystodon-0.1.0.tar.gz

Download URL pystodon-0.1.0.tar.gz
Size 12.4 kB
Tags Source
SHA-256 checksum
How to use checksums
977272bec6aa610b808285faf40652eb837bb92ed674fce30c37fdfa273f12bc
BLAKE2b-256 checksum
How to use checksums
0bf9cbce7438ad55f4635e369818f0e6e77a18cd9ba535541053592c2ac449e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.12.2 Windows/11

Release files / pystodon-0.1.0-py3-none-any.whl

Download URL pystodon-0.1.0-py3-none-any.whl
Size 14.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3b14527274023bbf26fd161a285a32586eb7aa6ad1dd1bd7fd57941f2f473018
BLAKE2b-256 checksum
How to use checksums
f7f5a5fd1843e5cd4c98b3308d3374b700752ae883fac5a9e9e3b9be83ac974f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.12.2 Windows/11

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page