A Bluesky feed generator written in Rust, serving posts written in Russian by people living in Netherlands
Go to file
Aleksei Voronov 1e0e34b9a5 Fix the name of the service endpoint field in did.json 2023-10-07 18:24:04 +02:00
sql Fix SQL syntax 2023-10-05 20:38:22 +02:00
src Fix the name of the service endpoint field in did.json 2023-10-07 18:24:04 +02:00
.env.example Add some untested version of publishing a feed 2023-09-22 13:33:13 +02:00
.gitignore Read chatgpt and postgresql credentials from .env 2023-09-07 19:20:38 +02:00
Cargo.lock Upgrade dependencies because why not 2023-10-02 17:26:21 +02:00
Cargo.toml Upgrade dependencies because why not 2023-10-02 17:26:21 +02:00
Cross.toml Make it able to run in production 2023-10-06 20:24:58 +02:00
README.md Update README with some up-to-date info 2023-10-02 17:23:22 +02:00

README.md

nederlandskie

A Bluesky feed generator written in Rust.

The specific algorithm indexes and serves posts written in Russian language, by people living in Netherlands.

Not fully complete yet, see roadmap.

Roadmap

  • Read stream of posts from Bluesky
  • Store posts in the database
  • Store user profiles in the database
  • Detect the country of residence from profile information
  • Keep subscription state to not lose messages
  • Serve the feed
  • Handle deleting of posts
  • Handle errors in the web service gracefully
  • Handle missing profiles in the profile classifier
  • Add a way to mark a profile as being from a certain country manually
  • Handle reconnecting to websocket somehow
  • Publish the feed

Configuration

  1. Copy .env.example into .env and set up the environment variables within:

    • PUBLISHER_BLUESKY_HANDLE to your Bluesky handle
    • PUBLISHER_BLUESKY_PASSWORD to Bluesky app password that you created in settings
    • CHAT_GPT_API_KEY for your ChatGPT key
    • DATABASE_URL for PostgreSQL credentials
    • FEED_GENERATOR_HOSTNAME to the hostname of where you intend to host the feed
  2. Determine your own DID and put it in PUBLISHER_DID env variable in .env:

    cargo run --bin who_am_i
    

Running

Populate and serve the feed

cargo run

Determine your own did for publishing

cargo run --bin who_am_i

Publish the feed

cargo run --bin publish_feed -- --help