Skip to main content

A plugin for DJ Press that publishes new posts to Mastodon.

Project description

DJ Press Mastodon Publisher

A plugin for DJ Press that automatically publishes your blog posts to your Mastodon server. When you publish a new post on your Django blog, this plugin will create a corresponding post on your Mastodon account with a customizable status message.

Features

  • 🚀 Automatic posting to Mastodon when blog posts are published
  • 📝 Customizable post message
  • ✅ Keeps track of posts that have already been posted to Mastodon, so you don't get multiple Mastodon posts

Requirements

  • Python >= 3.10
  • Django >= 4.2
  • DJ Press >= 0.12.1
  • Mastodon.py >= 1.8.1

Installation

  1. Install the package using pip:

    pip install djpress-publish-mastodon
    
  2. Add the plugin to your DJPRESS_SETTINGS in settings.py:

    DJPRESS_SETTINGS = {
        # ... existing settings
        "PLUGINS": [
            # ... existing plugins
            "djpress_publish_mastodon",
        ]
    }
    
  3. Add the plugin settings to your DJPRESS_SETTINGS in settings.py:

    DJPRESS_SETTINGS = {
        # ... existing settings
        "PLUGIN_SETTINGS": {
            # ... existing plugins
            "djpress_publish_mastodon": {
                "instance_url": "https://mastodon.social",  # or the instance you are using
                "access_token": "...",  # or preferably load from an environment variable or secrets manager
                "status_message": "🚀 I created a new blog post!",  # keep this brief
                "base_url": "https://example.com",  # The base URL to your site
            }
        }
    }
    

Configuration

Getting Your Mastodon Access Token

  1. Log into your Mastodon instance
  2. Go to Preferences > Development
  3. Click "New Application"
  4. Give it a name (e.g., "My DJ Press Blog")
  5. Select the following permissions:
    • write:statuses
  6. Save and copy the access token into the DJPRESS_SETTINGS.

Usage

Once configured, the plugin works automatically. When you publish a new blog post, it will be posted to your Mastodon account using the configured message.

Note that a published post will only be published to Mastodon once - the first time it is saved and with is_published = True. This plugin keeps track of which posts have been published to Mastodon and won't publish them again. The list of published posts is stored in the plugin storage model.

Troubleshooting

If posts aren't appearing on Mastodon:

  1. Check the Django logs for error messages
  2. Verify your access token is correct
  3. Ensure the plugin is enabled in settings
  4. Confirm your Mastodon instance URL is correct
  5. Check that your posts are marked as published

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

Distributed under the MIT License. See LICENSE for more information.

Credits

Created by Stuart Maxwell Powered by DJ Press

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

djpress_publish_mastodon-1.0.0.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

djpress_publish_mastodon-1.0.0-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file djpress_publish_mastodon-1.0.0.tar.gz.

File metadata

File hashes

Hashes for djpress_publish_mastodon-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2563bb37e9ea80b36965b2e3863c143db343b6becfd4c74c6d7735657e0432c0
MD5 a62708f80bfe374cb163d0066bcda026
BLAKE2b-256 7acbe6d8933231a5c580e48fc42acfec440bbc5fcfef976a63a23b6a0f258bd3

See more details on using hashes here.

File details

Details for the file djpress_publish_mastodon-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for djpress_publish_mastodon-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f243972b96b09d431d3d9a185847629b6db0759e19633f08d6e7f4a5d94fdb31
MD5 9d7283a630470a83f368ddbad1489c84
BLAKE2b-256 78c985baffeb3fa1b56c95087204bdaf5e31173305ca46352a49a0e3c9c6be8c

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