Skip to main content

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

Project description

DJ Press Bluesky Publisher

A plugin for DJ Press that automatically publishes your blog posts to your Bluesky account. When you publish a new post on your DJ Press site, this plugin will create a corresponding post on your Bluesky account with a customisable message.

Features

  • 🚀 Automatic posting to Bluesky when blog posts are published
  • 📝 Customisable post message
  • ✅ Keeps track of posts that have already been posted to Bluesky, so you don't get multiple posts for the same blog post.

Requirements

  • Python >= 3.10
  • Django >= 4.2
  • DJ Press >= 0.12.1
  • httpx>=0.28.0

Installation

  1. Install the package using pip:

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

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

    DJPRESS_SETTINGS = {
        # ... existing settings
        "PLUGIN_SETTINGS": {
            # ... existing plugins
            "djpress_publish_Bluesky": {
                "enabled": True,
                "handle": "username.bksy.social",  # check your Bluesky account profile for the full handle
                "app_password": "...",  # create an app password and preferably load from an environment variable or secrets manager
                "site_url": "https://example.com",  # the URL to your site so we can create the links properly
                "post_message": "🚀 I created a new blog post!",  # this can be ommitted if you're happy with the default message shown here
                "pds_url": "https://bsky.social",  # this can be ommitted if using the default bsky.social app
            }
        }
    }
    

Configuration

Getting Your Bluesky Password

  1. Log into your Bluesky account
  2. Go to Settings > Privacy and Security > App passwords
  3. Click "Add App Password"
  4. Give it a name (e.g., "My DJ Press Blog")
  5. Don't give it any additional permissions
  6. Copy and save the password into your DJPRESS_SETTINGS as described above.

Usage

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

Note that a published post will only be published to Bluesky once - the first time it is saved and with is_published = True. This plugin keeps track of which posts have been published to Bluesky 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 Bluesky:

  1. Check the Django logs for warning messages
  2. Verify your handle and app password is correct
  3. Ensure the plugin is enabled in settings
  4. Confirm your Bluesky pds_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_bluesky-1.2.0.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

djpress_publish_bluesky-1.2.0-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file djpress_publish_bluesky-1.2.0.tar.gz.

File metadata

  • Download URL: djpress_publish_bluesky-1.2.0.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.27.0 CPython/3.14.5 Linux/6.17.0-1018-azure

File hashes

Hashes for djpress_publish_bluesky-1.2.0.tar.gz
Algorithm Hash digest
SHA256 1887f528d9a56f979050d452d89bffd6fde3b01f9a70004c2d83a51581c0310c
MD5 6c7e713d41cc3db25fe9275800a1e012
BLAKE2b-256 8c21698d2ff3a67c371904675148fbbc8390591ff3f9b792d2494c3dc33d23ca

See more details on using hashes here.

File details

Details for the file djpress_publish_bluesky-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for djpress_publish_bluesky-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c97618f942a15fe352f70136478ec54b948b9d53f82b185ed3a76aa7b7ab6d0d
MD5 e7ffb7c78aff32ba066d9350d322f6d7
BLAKE2b-256 88d25ec370cbb6ee74ec08738c8a45d3fe47423ab31d25e227ca4f8b2dad19bd

See more details on using hashes here.

Supported by

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