Skip to content

4uffin/bluesky-status-maker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bluesky Status Maker

A simple command-line tool written in Python to post statuses to Bluesky and view your timeline.

Features

  • Post a status: Quickly post a new status with an emoji to your Bluesky account.
  • View your timeline: Fetch and display the 10 most recent posts from your timeline.
  • Interactive mode: Run the script without arguments for an interactive menu.
  • CLI mode: Use command-line arguments for quick, non-interactive use.
  • Dependency check: The script automatically checks for required libraries and provides installation instructions.
  • Rate limiting: Prevents posting more than once every hour.

Prerequisites

  • Python 3.x
  • A Bluesky account
  • An App Password for your Bluesky account. You can generate one in your Bluesky settings.

Installation

  1. Clone or download the project files.

  2. (Optional but recommended) Create and activate a Python virtual environment:

    python3 -m venv venv
    
    # On macOS and Linux:
    source venv/bin/activate
    
    # On Windows:
    .\venv\Scripts\activate
    
  3. Install the required Python libraries using pip:

    pip install rich python-dotenv emoji atproto
    
  4. Create a .env file in the same directory as main.py with your Bluesky credentials:

    BSKY_USERNAME=your_username.bsky.social  
    BSKY_APP_PASSWORD=your_app_password
    

    Replace your_username.bsky.social and your_app_password with your actual Bluesky username and app password.

Usage

Interactive Mode

Simply run the script without any arguments to enter the interactive menu:

python main.py

Command-Line Interface (CLI) Mode

You can use the following commands directly from your terminal:

  • Post a new status:
python main.py post :wave: "Hello from my new CLI tool\!"

The script uses emoji shortcodes, which are converted to actual emojis before posting.

  • View your timeline:
    python main.py timeline
    

Post Rate Limiting

To avoid spamming, the script has a built-in rate limit. You can only post a new status once every hour. If you try to post more frequently, the script will inform you of the remaining time before you can post again.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

A simple CLI tool written in Python to post statuses to Bluesky and view your timeline.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages