gatewayd: a turn's speaker, the username of the one person who wrote its burst

Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
This commit is contained in:
2026-09-28 10:51:17 -07:00
co-authored by ornith-1.5-35b-a3b
parent 4866353ac9
commit fae12c3fe2
12 changed files with 503 additions and 15 deletions
+9
View File
@@ -34,6 +34,8 @@ struct Inner {
edits: Vec<(String, String)>,
/// When set, `POST /posts` is refused with 400.
refuse_posts: bool,
/// When set, `GET /users/<id>` (not `users/me`) answers 404.
refuse_users: bool,
}
pub struct FakeMm {
@@ -249,6 +251,10 @@ impl FakeMm {
pub fn refuse_posts(&self, refuse: bool) {
self.inner.lock().unwrap().refuse_posts = refuse;
}
pub fn refuse_users(&self, refuse: bool) {
self.inner.lock().unwrap().refuse_users = refuse;
}
}
fn connection(mut stream: TcpStream, inner: &Mutex<Inner>, ws_tx: &mpsc::Sender<WsPeer>) {
@@ -367,6 +373,9 @@ fn rest(inner: &Mutex<Inner>, method: &str, path: &str, body: &[u8]) -> (u16, Va
inner.edits.push((post_id.clone(), message.clone()));
(200, post(&post_id, BOT, DM, "", &message, 1))
}
("GET", p) if p.starts_with("/api/v4/users/") && inner.refuse_users => {
(404, json!({"message": "not found"}))
}
("GET", p) if p.starts_with("/api/v4/users/") => {
let user = p.trim_start_matches("/api/v4/users/");
let name = if user == KYLE {