fix room error

This commit is contained in:
咕谷酱
2025-08-22 01:54:14 +08:00
parent 1fe603f416
commit e9fbe4163f

View File

@@ -470,14 +470,16 @@ class MultiplayerQueue:
async def update_current_item(self): async def update_current_item(self):
upcoming_items = self.upcoming_items upcoming_items = self.upcoming_items
next_item = ( if upcoming_items:
upcoming_items[0] # 优先选择未过期的项目
if upcoming_items next_item = upcoming_items[0]
else max( else:
# 如果所有项目都过期了选择最近添加的项目played_at 为 None 或最新的)
# 优先选择 expired=False 的项目,然后是 played_at 最晚的
next_item = max(
self.room.playlist, self.room.playlist,
key=lambda i: i.played_at or datetime.min, key=lambda i: (not i.expired, i.played_at or datetime.min),
) )
)
self.current_index = self.room.playlist.index(next_item) self.current_index = self.room.playlist.index(next_item)
last_id = self.room.settings.playlist_item_id last_id = self.room.settings.playlist_item_id
self.room.settings.playlist_item_id = next_item.id self.room.settings.playlist_item_id = next_item.id