This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

add files

+78
+76
README.md
··· 1 + # Bluesky Avatar Updater 2 + 3 + ## Overview 4 + 5 + This repository contains a Python script intended to update your Bluesky avatar automatically based on the current hour. The script utilises environment variables for configuration and reads a JSON file of blob CIDs to determine the appropriate avatar for each hour. Please note that the implementation is not yet fully operational, as several issues remain to be resolved. 6 + 7 + ## Prerequisites 8 + 9 + Before running the script, ensure you have the following: 10 + 11 + - Python 3.6 or later installed. 12 + 13 + - The required Python packages: 14 + - `python-dotenv` 15 + - `atproto` 16 + - Standard libraries such as `os`, `json`, `logging`, and `datetime` 17 + - A valid Bluesky account with the necessary API credentials. 18 + 19 + ## Installation 20 + 21 + 1. **Clone the repository:** 22 + 23 + ```bash 24 + git clone https://github.com/ewanc26/bluesky-avatar-updater.git 25 + cd bluesky-avatar-updater 26 + ``` 27 + 28 + 2. **Create a virtual environment and install dependencies:** 29 + 30 + ```bash 31 + python3 -m venv .venv 32 + source .venv/bin/activate # On Windows use: .venv\Scripts\activate 33 + pip install -r requirements.txt 34 + ``` 35 + 36 + 3. **Configure environment variables:** 37 + - Place your `.env` file in the `../assets` directory relative to the script. 38 + - The `.env` file should contain the following entries: 39 + 40 + ```env 41 + ENDPOINT=your_endpoint 42 + HANDLE=your_handle 43 + PASSWORD=your_password 44 + ``` 45 + 46 + 4. **Prepare the JSON file:** 47 + - Ensure that a `cids.json` file is located in the `../assets` directory. This file should map each hour (in two-digit format) to a corresponding blob CID. 48 + 49 + ## Usage 50 + 51 + To run the script, execute: 52 + 53 + ```bash 54 + python -u ./src/main.py 55 + ``` 56 + 57 + The script will: 58 + 59 + - Load the environment configuration from `./assets/.env`. 60 + - Read the blob CIDs from `./assets/cids.json`. 61 + - Determine the current hour and select the appropriate blob CID. 62 + - Attempt to authenticate and update the avatar using the AT Protocol. 63 + 64 + Execution logs will be recorded in `avatar_update.log` for your review. 65 + 66 + ## Known Issues 67 + 68 + At present, the script isn’t fully working. We’ve noticed an error when updating the profile—specifically, the `put_record()` method is missing a required parameter. There have also been occasional authentication hiccoughs, which might be due to configuration issues or [API](https://atproto.blue) quirks. 69 + 70 + If you’re keen to help sort these out or have ideas for improvements, please open a Pull Request. Your contributions are very welcome! 71 + 72 + --- 73 + 74 + ## Licence 75 + 76 + This project is released under the MIT Licence. See the [LICENSE](./LICENSE) file for full details.
+2
requirements.txt
··· 1 + python-dotenv 2 + atproto