Skip to main content

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
    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

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

pystodon-0.1.0.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

pystodon-0.1.0-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

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

Hashes for pystodon-0.1.0.tar.gz
Algorithm Hash digest
SHA256 977272bec6aa610b808285faf40652eb837bb92ed674fce30c37fdfa273f12bc
MD5 d14badafa76120bf2ff2422e38dfc03f
BLAKE2b-256 0bf9cbce7438ad55f4635e369818f0e6e77a18cd9ba535541053592c2ac449e4

See more details on using hashes here.

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

Hashes for pystodon-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3b14527274023bbf26fd161a285a32586eb7aa6ad1dd1bd7fd57941f2f473018
MD5 07e0284a7fc6bd318e44372b4ea5e55f
BLAKE2b-256 f7f5a5fd1843e5cd4c98b3308d3374b700752ae883fac5a9e9e3b9be83ac974f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page