skip queue

This commit is contained in:
2024-07-20 09:52:50 +02:00
parent 5858cee900
commit 58e8bbbbef
7 changed files with 59 additions and 10 deletions
+10 -3
View File
@@ -10,11 +10,18 @@ def from_json(cls, json):
return cls.objects.create(**subset)
def get_unvoted(user):
"""Gets next voting track for user. Returns a pair with track and flag if this was a skipped track"""
votes = set(Vote.objects.filter(user=user).values_list('track_id', flat=True))
tracks = set(Track.objects.filter(banter_done=True).values_list('pk', flat=True))
seed(user.username)
try:
random_track = choice(list(tracks - votes))
return Track.objects.get(pk=random_track)
queue = list(tracks - votes)
skipped = False
if not queue:
skipped = True
queue = list(Vote.objects.filter(user=user).filter(skipped=True).values_list('track_id', flat=True))
random_track = choice(queue)
choice
return (Track.objects.get(pk=random_track), skipped)
except IndexError:
return None
return (None, False)