Я строю медиа-плеер для офиса, и до сих пор так хорошо, но я хочу, чтобы добавить систему голосования (вроде как Пандоры пальцы вверх/вниз), большие пальцыСлучайным Выбор строк на основе определенных критериев
Чтобы построить плейлист, в настоящее время я использую следующий код, который вытягивает 100 случайных треков, которые не были воспроизведены в последнее время (мы следим за тем, чтобы все треки находились вокруг одного и того же количества пьес), а затем гарантирует, что мы не слышим одного и того же исполнителя в течение 10 и создает плейлист из 50 песен.
max_value = Items.select(fn.Max(Items.count_play)).scalar()
query = (Items
.select()
.where(Items.count_play < max_value, Items.count_skip_vote < 5)
.order_by(fn.Rand()).limit(100))
if query.count < 1:
max_value = max_value - 1
query = (Items
.select()
.where(Items.count_play < max_value, Items.count_skip_vote < 5)
.order_by(fn.Rand()).limit(100))
artistList = []
playList = []
for item in query:
if len(playList) is 50:
break
if item.artist not in artistList:
playList.append(item.path)
if len(artistList) < 10:
artistList.append(item.artist)
else:
artistList.pop(0)
artistList.append(item.artist)
for path in playList:
client.add(path.replace("/music/Library/",""))
Я пытаюсь разработать наилучший способ использования голосов вверх/вниз. Я хочу видеть меньше с downvotes и больше с upvotes.
Я не получил прямой код, потому что я довольно хорошо с питоном, это скорее логика, которую я не могу полностью оттолкнуть (что, если вы считаете, что мне нужно улучшить мой код, я выиграл 't остановить вас :))