more heuristic tweaks
maybe workaround db locking?
improved heuristics (curse the french!); make the error logging code work
bsky.app feed for Tcl/Tk postsWritten 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.
/bin - misc scripts/lib - code used only by /bin/src - application code/src/algos - algorithms, *.tcl is autoloaded, see src/algos.tcl for details.src/jetstream.tcl blocks any repos that appear in the blocked_repos table.
the following tools exist for moderation:
bin/rmrepo.tcl will delete all posts by the specified user(s). if -feed is specified,
only from the passed feed(s). if no feeds are specified, it will also block them.
the -pds option is used to resolve handles to DIDs. it defaults to bsky.social.bin/rmpost.tcl will delete all passed posts from the specified feedbin/importlist.tcl works like rmrepo, but it pulls from passed moderation lists. flags work the same.bin/updatelists.tcl calls bin/importlist.tcl with a hardcoded set of lists.
currently includes ones by @rahaeli.bsky.social, @aleteoryx.me (yours truly), and
@skysentry.bsky.social.bin/addposts.tcl manually adds a post to a list. it takes args of the form URI ORD ?URI ORD ...?.
passing -ts for the ORD will pull record.createdAt from the post and use that instead.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.
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.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