social-media-news-bot/readme.md

51 lines
1.3 KiB
Markdown
Raw Normal View History

2024-12-23 15:19:48 +00:00
# BlueSky Bot
2024-12-31 10:27:41 +00:00
A simple Bot that scrapes websites and publishes tweets on [BlueSky](https://bsky.app/).
2024-12-23 15:19:48 +00:00
2024-12-31 10:27:41 +00:00
It's built with [Rust](https://www.rust-lang.org/) and [Redis](https://redis.io/) and can be extended to include
LLM support for content summarization, suggestions and other features.
2024-12-23 15:19:48 +00:00
2024-12-31 10:27:41 +00:00
Demo:
![demo](./docs/demo.jpg)
2024-12-23 15:19:48 +00:00
## Architecture
![architecture diagram](./docs/architecture_diagram.drawio.png)
The architecture is composed of the following elements:
1. The Scrapper
It scrapes data from one or more websites and publishes a JSON on **Redis Streams**.
It is configured via CLI arguments
```bash
Usage: scrapper [OPTIONS] --redis-connection-string <REDIS_CONNECTION_STRING> --redis-stream-name <REDIS_STREAM_NAME>
Options:
-r, --redis-connection-string <REDIS_CONNECTION_STRING>
Redis host
-t, --redis-stream-name <REDIS_STREAM_NAME>
Redis stream name
-s, --scrape-interval-minutes <SCRAPE_INTERVAL_MINUTES>
The scraping interval in minutes [default: 60]
-h, --help
Print help
-V, --version
Print version
```
2. Redis
Redis is a key-value store with lots of features. It has been chosen to keep
things simple and due to its powerful features and flexibility[1].
3. BlueSky Bot
The BlueSky bot reads data from Redis Streams and publishes it to BlueSky.
[1] - https://redis.io/about/