private rover replays for those who are allowed the luxury of using them when closed

This commit is contained in:
legop3
2026-06-01 14:04:34 -04:00
parent 292325d85f
commit 12cd90a3b0
4 changed files with 12 additions and 9 deletions
+5 -5
View File
@@ -1,8 +1,8 @@
1. FIX THE NICKNAME THING BEING BROKEN!!!!
1. add faster way for admins to login, like an invisible button in top left or something
2. add discord bot typing thing for when someone requests a replay
3. change replay title for ones requested from discord, something other than "requester driving rover"
4. fix rover request spam queue cheat
1. allow private rover replays for people who are allowed to drive them
2. add faster way for admins to login, like an invisible button in top left or something
3. add discord bot typing thing for when someone requests a replay
4. change replay title for ones requested from discord, something other than "requester driving rover"
5. fix rover request spam queue cheat
# relative pipe dreams:
@@ -7,7 +7,7 @@ const { getRoomCameras } = require('../roomCameraService');
function getReplaySources(socket = null) {
const roster = socket ? roverManager.getRosterForSocket(socket) : roverManager.getRoster();
const roverSources = roster
.filter((rover) => roverManager.canReplayRoverId(rover.id))
.filter((rover) => roverManager.canReplayRoverId(rover.id, socket))
.map((rover) => ({
type: 'rover',
id: String(rover.id),
@@ -28,7 +28,6 @@ function getRoomCameraStream(camera) {
function listDesiredSources() {
const sources = [];
for (const rover of roverManager.getRoster()) {
if (!roverManager.canReplayRoverId(rover.id)) continue;
const roverId = String(rover.id);
sources.push({ id: roverId, sourceType: 'rover', kind: 'video', label: rover.name || roverId, inputUrl: toSrtReadPath(roverId) });
if (rover?.media?.audioPublishUrl) {
+6 -2
View File
@@ -188,8 +188,12 @@ function removeSocket(socket) {
roverLifecycle.removeSocket(socket, disableSpectator);
}
function canReplayRoverId(roverId) {
return roverLifecycle.canReplayRoverId(roverId, isPrivateRecord, isPrivateOpen);
function canReplayRoverId(roverId, socket = null) {
const record = rovers.get(String(roverId));
if (!record) return false;
if (!isPrivateRecord(record)) return true;
if (isPrivateOpen(record)) return true;
return socket ? isRoverVisibleToSocket(record, socket) : false;
}
roleEvents.on('change', ({ socket, role }) => {