~aleteoryx/tclfeed-bsky

fefa8ca4456a73d0b4d52056f67e1d4e181415b5 — Aleteoryx 29 days ago 3b98afa
readme
1 files changed, 33 insertions(+), 0 deletions(-)

M README.md
M README.md => README.md +33 -0
@@ 3,3 3,36 @@
Written in Tcl, using Jetstream.

Deployed @ <https://bsky.app/profile/aleteoryx.me/feed/tclposting>.

Makes heavy use of `tcllib` and `tcltls`, both need to be installed for it to work.
Run `main.tcl` with a configured config as the argument.
All paths are resolved relative to the install directory.

This implementation doesn't support `did:plc:` feedGenerator IDs because im too lazy.

`bin/up.tcl` is a rough carbon copy of the `scripts/publishFeedGen.ts` present in
the official example repo.

## Directory Structure

- `/bin` - misc scripts
- `/lib` - code used only by `/bin`
- `/src` - application code
- `/src/algos` - algorithms, `*.tcl` is autoloaded, see `src/algos.tcl` for details.

## Potential Improvements

- there's something up with the websocket implementation (`src/ws.tcl`)?
  we get disconnected frequently.
    - `src/jetstream.tcl` solves this with reconnection code, but it doesn't
      send a cursor, so posts may get missed.
        - said reconnection code is god-awful, and would benefit from a refactor
- there's probably not a foolproof way to deal with the fact that TCL is
  a brand, but it would be nice
- `src/httpd.tcl` is just enough webserver to handle requests, and very
  little else. it's unfit for exposure to the public internet. this is
  low-prio cause it works fine behind mod_proxy.
- the API for `lib/atpagent.tcl` could be nicer, but I don't feel like
  doing codegen.
- `src/httpd.tcl`'s API should probably be subcommand-based instead of
  token-based, to fit `lib/atpagent.tcl`