47 lines
1.8 KiB
Markdown
47 lines
1.8 KiB
Markdown
# Bluesky Unfollower
|
|
|
|
Based on this [script](https://gist.github.com/dataprolet/b27c2fe1912035da6bfd61ecf18c55b1).
|
|
|
|
This is a simple Python script to automatically unfollow inactive users on Bluesky and get a notification about it in a Telegram channel.
|
|
|
|
## Getting started
|
|
|
|
### Installation
|
|
|
|
1. Clone the repository:
|
|
```git clone https://git.dataprolet.de/dataprolet/Bluesky-Unfollow-Inactive.git```
|
|
2. Install Python modules:
|
|
```python -m pip install atproto python-telegram-bot```
|
|
3. Fill in the variables
|
|
4. Create a Telegram bot using the [BotFather](https://t.me/botfather)
|
|
|
|
#### Variables
|
|
```handle```: Your Bluesky handle e. g. _user.bsky.social_
|
|
```password```: Your [Bluesky app password](https://bsky.app/settings/app-passwords)
|
|
```BOT_TOKEN```: Your Telegram bot BOT_TOKEN
|
|
```CHAT_ID```: Your Telegram bot's chat ID
|
|
|
|
The chat ID can be retrieved by opening https://api.telegram.org/bot{BOT_TOKEN}/getUpdates in a browser, send a message to the bot and get ```chat.id``` from the returning JSON.
|
|
|
|
### Usage
|
|
|
|
Run the script with the following arguments:
|
|
```python unfollow_inactive.py --dry --days 30```
|
|
|
|
#### Arguments
|
|
|
|
| Argument | Description |
|
|
| -------- | -------------------------------------------------------------------------------- |
|
|
| `--dry` | Dry run: Shows which users would be unfollowed without making any changes. |
|
|
| `--prod` | Production mode: Actually unfollows the inactive users.|
|
|
| `--days` | Number of days after which a user is considered inactive (default: 15). |
|
|
|
|
#### Examples:
|
|
|
|
```
|
|
# Dry run: Show users inactive for 60 days
|
|
python unfollow_inactive.py --dry --days 60
|
|
|
|
# Production run: Unfollow users inactive for 30 days
|
|
python unfollow_inactive.py --prod --days 30
|
|
``` |