cms icon indicating copy to clipboard operation
cms copied to clipboard

Matrix notifier for questions and announcements

Open prandla opened this issue 6 months ago • 3 comments

This is similar to the Telegram bot that was recently upstreamed. We use Matrix for our internal communications, so this basically has the same functionality but for Matrix. I think this is likely to be valuable to others, seeing as how Matrix has (at least at some point) been used for official IOI tasks.

Our implementation (https://github.com/e-i-o/cms/commit/32f90fce305e0d553e73f510716d92c3997f10f1) is like one of the old Telegram bot prototypes, in that it's write-only and lives directly in the CWS process. It would probably be possible to make it read-write, allowing to reply directly from matrix, but it would be a lot more effort and probably necessitate pulling in a matrix client SDK. It could also be moved to a separate Service while remaining write-only, which addresses some concerns I saw regarding the old telegram bot (means that CWS doesn't need to make web requests).

prandla avatar Jun 05 '25 13:06 prandla

Having this in CWS is definitely a no-go.

A write-only service would IMO be valuable, although a read+write one would also be interesting.

veluca93 avatar Jun 05 '25 13:06 veluca93

It would probably make sense to re-use the recently added TelegramBot.py, maybe renaming it to something like CommunicationBot.py for clarity and making it agnostic of the actual messaging system.

wil93 avatar Jun 05 '25 13:06 wil93

reading TelegramBot.py as it currently is, i feel like that is quite telegram-specific still, i don't know if there's much code we could reuse there.

also, it notices new announcements/questions by just querying every question and announcement in the DB once a second, which feels a little ugly to me, but i suppose might work a bit more reliably than only doing notifications over rpc.

prandla avatar Jun 05 '25 22:06 prandla