fix room error
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user