A blue-sky bot that publishes posts from some scrapped websites. https://blog.nuculabs.dev
Find a file
2025-01-04 16:25:47 +02:00
.idea ignore duplicated code in RustRover 2025-01-04 16:25:20 +02:00
bot implement From<NewsPost> for PostStatusRequest 2025-01-04 16:25:47 +02:00
docs update readme.md 2024-12-31 12:27:41 +02:00
infrastructure refactor read_stream 2024-12-28 10:22:18 +02:00
post implement read from redis streams 2024-12-27 18:36:56 +02:00
scrapper reduce Docker image size 2025-01-03 23:03:56 +02:00
synology add subcommands for platforms 2025-01-03 23:59:07 +02:00
.dockerignore add .idea to docker ignore 2024-12-26 17:14:17 +02:00
.gitignore initial commit 2024-12-17 16:28:57 +02:00
Cargo.toml add bot crate 2024-12-27 11:10:48 +02:00
docker-compose.yaml add application/json Content-Type header to requests 2024-12-30 18:49:21 +02:00
Makefile add bluesky bot deployment file 2025-01-01 16:19:03 +02:00
readme.md update readme.md 2024-12-31 12:27:41 +02:00

BlueSky Bot

A simple Bot that scrapes websites and publishes tweets on BlueSky.

It's built with Rust and Redis and can be extended to include LLM support for content summarization, suggestions and other features.

Demo:

demo

Architecture

architecture diagram

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

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
  1. 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].

  1. BlueSky Bot

The BlueSky bot reads data from Redis Streams and publishes it to BlueSky.

[1] - https://redis.io/about/