2bb88d69b3
- For new axum, use the new way to start the server. No other changes seem necessary. - For new atrium, update the way agent is initialized. Also now we cannot get the session out of the agent, so resolve our own handle to the did with an extra request. This is a shame, but eh. That's what you get when using unstable libraries |
||
---|---|---|
.github/workflows | ||
sql | ||
src | ||
.env.example | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
Cross.toml | ||
README.md |
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.
- Posts are stored in PostgreSQL via
sqlx
andscooby
- Language of posts is determined via
lingua-rs
- Country of residence is inferred from profile information through ChatGPT via
chat-gpt-lib-rs
- Feed is served via
axum
- Intefacing with Bluesky is implemented using
atrium-api
Deployed in production at https://nederlandskie.plansfortheday.org/
Published on Bluesky at https://bsky.app/profile/did:plc:376mcc6k4s5p7qbtyjrgph5k/feed/nederlandskie.
Setup
-
Set up a PostgreSQL database
-
Create tables using SQL provided in
sql
directory. -
Copy
.env.example
into.env
and set up the environment variables within:PUBLISHER_BLUESKY_HANDLE
to your Bluesky handlePUBLISHER_BLUESKY_PASSWORD
to Bluesky app password that you created in settingsCHAT_GPT_API_KEY
for your ChatGPT keyDATABASE_URL
for PostgreSQL credentialsFEED_GENERATOR_HOSTNAME
to the hostname of where you intend to host the feed
-
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
The feed will be available at http://localhost:3030/.
Determine your own did for publishing
cargo run --bin who_am_i
Publish the feed
cargo run --bin publish_feed -- --help
Force a profile to be in a certain country
cargo run --bin force_profile_country -- --help