No description
  • Rust 80.3%
  • Lua 19.7%
Find a file
2026-03-12 14:58:58 -05:00
autolink Expand yugioh autolink 2026-02-28 23:21:35 -06:00
common increment version 2026-03-12 01:03:31 -05:00
discord Add version as a static field to common. Make common a lua module that exports the version. 2026-02-28 20:48:52 -06:00
farside Generalize "farside links" message. 2026-02-28 20:50:53 -06:00
irc Add version string to irc bot 2026-02-28 23:32:39 -06:00
lua fix lower() call 2026-03-12 02:20:34 -05:00
stdin Add version as a static field to common. Make common a lua module that exports the version. 2026-02-28 20:48:52 -06:00
.gitignore Add elsanctum instance implementation. 2026-02-11 18:55:03 -06:00
Cargo.toml Add farside module. 2026-02-13 00:34:00 -06:00
elsanctum.lua Attach hexbear-emotes to the filterer 2026-03-12 14:58:58 -05:00
make-dev-environment initial (non-complete) stab at Lua modules experiment for tqm 2026 2026-02-01 07:38:28 -06:00
README.md update readme for 2026 2026-02-09 08:10:22 -06:00
TODO.md Temporarily disable modules that no longer work. 2023-03-13 00:21:50 -05:00

tenquestionmarks chat bot (2026 edition)

tenquestionmarks is an extensible, scriptable chat bot. This iteration is written as a series of Lua modules written in Rust.

Modules

Generally speaking there are two types of modules in tenquestionmarks, "cores" that connect to chats and receive events, and "subscribers" that receive events from cores and send replies back. Cores are implemented as async modules using mlua and run in a lua coroutine. Subscribers can be implemented either in rust, directly in lua, or even in any other language that can be used to build compiled lua modules such as C.