mirror of
https://github.com/spacebarchat/server.git
synced 2026-03-31 02:55:39 +00:00
don't show invis
This commit is contained in:
@@ -89,7 +89,7 @@ router.patch(
|
||||
user: user,
|
||||
activities: session.activities,
|
||||
client_status: session?.client_status,
|
||||
status: body.status === "invisible" ? "offline" : body.status,
|
||||
status: session.getPublicStatus(),
|
||||
},
|
||||
} as PresenceUpdateEvent),
|
||||
session.save(),
|
||||
|
||||
@@ -91,7 +91,7 @@ export async function Close(this: WebSocket, code: number, reason: Buffer) {
|
||||
user: userOrId,
|
||||
activities: session.activities,
|
||||
client_status: session?.client_status,
|
||||
status: session.status,
|
||||
status: session.getPublicStatus(),
|
||||
},
|
||||
} as PresenceUpdateEvent);
|
||||
}
|
||||
|
||||
@@ -503,7 +503,7 @@ export async function onIdentify(this: WebSocket, data: Payload) {
|
||||
user: user.toPublicUser(),
|
||||
activities: session.activities,
|
||||
client_status: session.client_status,
|
||||
status: session.status,
|
||||
status: session.getPublicStatus(),
|
||||
},
|
||||
} as PresenceUpdateEvent),
|
||||
),
|
||||
|
||||
@@ -202,7 +202,7 @@ export async function onLazyRequest(this: WebSocket, { d }: Payload) {
|
||||
user: user,
|
||||
activities: session?.activities || [],
|
||||
client_status: session?.client_status,
|
||||
status: session?.status || "offline",
|
||||
status: session?.getPublicStatus() || "offline",
|
||||
} as Presence,
|
||||
});
|
||||
}),
|
||||
|
||||
@@ -17,24 +17,16 @@
|
||||
*/
|
||||
|
||||
import { WebSocket, Payload } from "@spacebar/gateway";
|
||||
import {
|
||||
emitEvent,
|
||||
PresenceUpdateEvent,
|
||||
Session,
|
||||
User,
|
||||
} from "@spacebar/util";
|
||||
import { emitEvent, PresenceUpdateEvent, Session, User } from "@spacebar/util";
|
||||
import { check } from "./instanceOf";
|
||||
import { ActivitySchema } from "@spacebar/schemas"
|
||||
import { ActivitySchema } from "@spacebar/schemas";
|
||||
|
||||
export async function onPresenceUpdate(this: WebSocket, { d }: Payload) {
|
||||
const startTime = Date.now();
|
||||
check.call(this, ActivitySchema, d);
|
||||
const presence = d as ActivitySchema;
|
||||
|
||||
await Session.update(
|
||||
{ session_id: this.session_id },
|
||||
{ status: presence.status, activities: presence.activities },
|
||||
);
|
||||
await Session.update({ session_id: this.session_id }, { status: presence.status, activities: presence.activities });
|
||||
|
||||
const session = await Session.findOneOrFail({
|
||||
select: ["client_status"],
|
||||
@@ -46,13 +38,11 @@ export async function onPresenceUpdate(this: WebSocket, { d }: Payload) {
|
||||
user_id: this.user_id,
|
||||
data: {
|
||||
user: await User.getPublicUser(this.user_id),
|
||||
status: presence.status,
|
||||
status: session.getPublicStatus(),
|
||||
activities: presence.activities,
|
||||
client_status: session.client_status,
|
||||
},
|
||||
} as PresenceUpdateEvent);
|
||||
|
||||
console.log(
|
||||
`Presence update for user ${this.user_id} processed in ${Date.now() - startTime}ms`,
|
||||
);
|
||||
console.log(`Presence update for user ${this.user_id} processed in ${Date.now() - startTime}ms`);
|
||||
}
|
||||
|
||||
@@ -57,6 +57,9 @@ export class Session extends BaseClass {
|
||||
|
||||
@Column({ nullable: false, type: "varchar" })
|
||||
status: Status; //TODO enum
|
||||
getPublicStatus() {
|
||||
return this.status === "invisible" ? "offline" : this.status;
|
||||
}
|
||||
}
|
||||
|
||||
export const PrivateSessionProjection: (keyof Session)[] = ["user_id", "session_id", "activities", "client_info", "status"];
|
||||
|
||||
Reference in New Issue
Block a user