~aleteoryx/tclfeed-bsky

ref: 6cb8a96336f904d4e0cadb74b2b597e0b55c535f tclfeed-bsky/README.md -rw-r--r-- 1.7 KiB
6cb8a963Aleteoryx marginally better moderation tooling 29 days ago

#A bsky.app feed for Tcl/Tk posts

Written in Tcl, using Jetstream.

You could probably base your own feeds on this. I've tried to make the source code for this relatively straightforward.

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