seagl / patch Goto Github PK
View Code? Open in Web Editor NEWMatrix bot that assists with running the SeaGL Matrix space
License: GNU Affero General Public License v3.0
Matrix bot that assists with running the SeaGL Matrix space
License: GNU Affero General Public License v3.0
We don't seem to do this properly. Snippet from my local logs against my homeserver:
2023-11-16T20:43:26.875-08:00 ๐๏ธ Get state { room: 'SeaGL2023-Volunteering', type: 'org.seagl.patch.redirect', key: undefined }
2023-11-16T20:43:26.876-08:00 ๐๏ธ Add to space { space: 'SeaGL2023-Information', child: 'SeaGL2023-InfoBooth' }
Rate limited: {"ms":4855}
2023-11-16T20:43:31.943-08:00 ๐๏ธ Add to space { space: 'SeaGL2023-Information', child: 'SeaGL2023-BotHelp' }
Rate limited: {"ms":4768}
2023-11-16T20:43:37.024-08:00 ๐๏ธ Add to space { space: 'SeaGL2023-Information', child: 'SeaGL2023-SpeakerHelp' }
Rate limited: {"ms":4697}
2023-11-16T20:43:42.041-08:00 ๐๏ธ Add to space { space: 'SeaGL2023-Information', child: 'SeaGL2023-SponsorHelp' }
Rate limited: {"ms":4682}
2023-11-16T20:43:47.062-08:00 ๐๏ธ Add to space { space: 'SeaGL2023-Information', child: 'SeaGL2023-Volunteering' }
Rate limited: {"ms":4667}
2023-11-16T20:43:51.952-08:00 ๐ Resolve tag { tag: 'seagl2023-restricted' }
From me on Matrix:
question: I just DM'd !help and then help to Patch. it created an E2E encrypted room, which I was not expecting to even work in the first place, but Patch marked both messages as read. however they didn't respond.
are we expecting this to work? should this work?
Store a list of users who are regularly pinged together (e.g., active conference staff for a particular year). A stretch goal might be to have multiple potential lists (i.e., 2022, volunteers, etc.)
e.g. @tech
should notify the tech team
I'm trying to set up a Patch dev environment. After a bunch of initial activity, Patch will provision a room, print Wait before non-retryable API call: {"ms":10000}
, sit there for a while, and then provision another room.
We should help contributors work around this behavior so they don't have to wait.
Have bot capturing metrics such as most active users, length of time users are in rooms, users in most rooms, etc.
I think it would be nice if, when conference staff !tea
'd someone, Patch would syndicate that toast to social media. This would be a nice way to publicly shout out volunteers and would also have a nice side effect of generating more social media content for folks to engage with.
This should be opt-in because some of our community members may not want to be mentioned on social media. Here's the flow I'm imagining:
!tea
mentioning someoneWe'd want to restrict this to staff members for security reasons. Non-staff !tea
s should use the existing behavior.
this bot would probably be useful to events outside of SeaGL
Need some sort of URL interpolation or something. This should be kept secret because it will contain phone numbers.
Make them more prominent.
Suppress exceptions for homeserver outages of a reasonable duration.
Ask whether an announcement is intended to be sent. Probably have user respond affirmatively and enter a random keycode.
Include ability for people to !ask
questions that puts them into a queue the room moderator may view.
Various FUNctionalities that have been often seen in irc bots beyond !tea
Collect and display in some sort of bot-log room, see whether these can be ingested from multiple sources.
Add functionality for attendees to !report
bad behavior, consider whether some number of reports per timespan would automatically hide a message or remove voice from the sender.
At the very least it doesn't send read receipts. Example thread: https://matrix.to/#/!GkthNMOKdgiNHAErwB:seattlematrix.org/$gTrGEytngO89x-vZ54rxBmCTbMf13vWy1s11ZsTank4?via=strugee.net&via=seattlematrix.org&via=matrix.org
Incorporate useful changes from 2021 branch to the initial draft example branch, clean-up and confirm that commands are functioning, then use this as the main branch to build upon.
Create functionality to "lockdown" a room, which could have a variety of levels. One might be to remove voice from everyone, another might be to remove voice from everyone who joined the room in the past 5 minutes.
I just wasted like 30 minutes digging through code trying to figure out how to register commands. Turns out I just forgot to run yarn build
.
A yarn watch
would help with this.
It's very hard to figure out how to set the command group from the code. Most commands do it explicitly, in start()
. But !tea
doesn't, and that happens to be the one I looked at for examples (because it's the simplest). !tea
relies on this implicit default.
One of these ways should be killed. I think also in general it should probably be way more obvious how to add a new command... I'm struggling.
all-hands and program haven't been upgraded yet, let's make sure that happens now that the conference is over. Probably fine to wait until after the retrospective.
It takes a second or two to run yarn start
because syncing room info is non-trivial. I should be able to set an option to cache a bunch of this info, or maybe avoid synchronization at startup at all, or something like that.
Much of the current code was written during the 2021 conference...
To get us to a point of being able to develop on a stable foundation, lets tidy up!
Here are a few suggestions that immediately come to mind:
While not currently targeting Matrix, this project was suggested as following reasonable patterns.
Create a simplified Mjolnir interface and consider moderation enhancements that make more sense to keep at this bot's level.
Just found out https://github.com/cevek/ttypescript#readme is deprecated.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.