A Bluesky feed generator written in Rust, serving posts written in Russian by people living in Netherlands
Go to file
Aleksei Voronov 883d02e328 Extract and print out the time of the commit
Useful for visibility for when we inevitably fall behind in processing
2023-10-02 16:59:31 +02:00
sql Keep subscription state in order to not lose messages 2023-09-21 12:33:17 +02:00
src Extract and print out the time of the commit 2023-10-02 16:59:31 +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 Remove ciborium in favor of custom deserialization logic 2023-09-24 20:06:20 +02:00
Cargo.toml Remove ciborium in favor of custom deserialization logic 2023-09-24 20:06:20 +02:00
README.md Properly handle errors in post indexer and profile classifier 2023-10-02 16:34:22 +02:00

README.md

nederlandskie

Potentially, a Bluesky feed of people speaking some language while living in some other country (for example, Russian-speaking people living in Netherlands).

Heavily WIP. Doesn't work yet at all, but does read the stream of posts as they are created on Bluesky.

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