~aleteoryx/tclfeed-bsky

ref: 791e2e2163bed854cfe84a47dfbe280d2710d808 tclfeed-bsky/README.md -rw-r--r-- 1.6 KiB
791e2e21Aleteoryx gotta complain somewhere! 29 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# A `bsky.app` feed for Tcl/Tk posts

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`
- moderation tooling! have gotten one spambot and a lot of tv ads so far