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": {
                "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.0.1.tar.gz (9.2 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.0.1-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: djpress_publish_bluesky-1.0.1.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.0

File hashes

Hashes for djpress_publish_bluesky-1.0.1.tar.gz
Algorithm Hash digest
SHA256 ccc6ecdf98f6b343f254f3f1e7aedef08f746d9c3616830ccc132708f430ee87
MD5 7af000281ac641fe06c46b33264e70cf
BLAKE2b-256 d6a9e95afbe678a8a1cb8c633947c64c1a127c1e62c2a0083a127bb593e02759

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for djpress_publish_bluesky-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 97dc6a8c6aa7d60f7e0ffecde0c62077e27fa7d2e7e9193867104749d6849f1a
MD5 2821156d5d7191b5a666149afd75a6b0
BLAKE2b-256 9ceb362095f1684fc4a185ef1ad895a823e89eb22d4da72496e020b5983772fd

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