2023-08-26 17:15:18 +01:00
|
|
|
# `nederlandskie`
|
|
|
|
|
2023-10-02 16:23:22 +01:00
|
|
|
A Bluesky feed generator written in Rust.
|
2023-08-26 17:15:18 +01:00
|
|
|
|
2023-10-02 16:23:22 +01:00
|
|
|
The specific algorithm indexes and serves posts written in Russian language, by people living in Netherlands.
|
|
|
|
|
|
|
|
Not fully complete yet, see roadmap.
|
2023-08-26 17:15:18 +01:00
|
|
|
|
|
|
|
## Roadmap
|
|
|
|
|
2023-08-31 08:45:48 +01:00
|
|
|
- [x] Read stream of posts from Bluesky
|
|
|
|
- [x] Store posts in the database
|
2023-08-31 14:11:14 +01:00
|
|
|
- [x] Store user profiles in the database
|
2023-09-06 07:26:03 +01:00
|
|
|
- [x] Detect the country of residence from profile information
|
2023-09-21 11:33:17 +01:00
|
|
|
- [x] Keep subscription state to not lose messages
|
2023-09-16 20:08:32 +01:00
|
|
|
- [x] Serve the feed
|
2023-09-23 19:29:56 +01:00
|
|
|
- [x] Handle deleting of posts
|
2023-09-25 11:49:01 +01:00
|
|
|
- [x] Handle errors in the web service gracefully
|
2023-09-24 19:26:34 +01:00
|
|
|
- [x] Handle missing profiles in the profile classifier
|
2023-09-27 12:22:26 +01:00
|
|
|
- [x] Add a way to mark a profile as being from a certain country manually
|
2023-10-02 15:23:08 +01:00
|
|
|
- [x] Handle reconnecting to websocket somehow
|
2023-09-23 19:42:35 +01:00
|
|
|
- [ ] Publish the feed
|
2023-08-26 17:15:18 +01:00
|
|
|
|
2023-09-22 12:33:13 +01:00
|
|
|
## Configuration
|
2023-09-07 18:20:38 +01:00
|
|
|
|
2023-09-22 12:33:13 +01:00
|
|
|
1. Copy `.env.example` into `.env` and set up the environment variables within:
|
2023-09-07 18:20:38 +01:00
|
|
|
|
2023-09-22 12:33:13 +01:00
|
|
|
- `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
|
|
|
|
```
|
2023-09-07 18:20:38 +01:00
|
|
|
|
2023-08-26 17:15:18 +01:00
|
|
|
## Running
|
|
|
|
|
2023-09-22 12:33:13 +01:00
|
|
|
### Populate and serve the feed
|
|
|
|
|
2023-08-26 17:15:18 +01:00
|
|
|
`cargo run`
|
2023-09-22 12:33:13 +01:00
|
|
|
|
|
|
|
### Determine your own did for publishing
|
|
|
|
|
|
|
|
`cargo run --bin who_am_i`
|
|
|
|
|
|
|
|
### Publish the feed
|
|
|
|
|
|
|
|
`cargo run --bin publish_feed -- --help`
|