Sugestões
This commit is contained in:
parent
cefc72c5ba
commit
3933aa1e9a
|
|
@ -121,18 +121,19 @@ def seller_screen():
|
|||
|
||||
|
||||
def suggest_numbers(raffle_id, amount=3):
|
||||
suggestions = []
|
||||
tickets = iter(Ticket.query.filter_by(raffle_id=raffle_id).order_by(Ticket.chosen_number.asc()))
|
||||
next_ticket = next(tickets, None)
|
||||
nums_needed = target_pool_size = max(amount * 2, 50)
|
||||
possible_suggestions = []
|
||||
candidate_number = 1
|
||||
while len(suggestions) < max(amount, 50) and next_ticket:
|
||||
if candidate_number < next_ticket.chosen_number:
|
||||
suggestions.append(candidate_number)
|
||||
else:
|
||||
next_ticket = next(tickets, None)
|
||||
candidate_number += 1
|
||||
suggestions.extend(range(candidate_number, candidate_number + (max(amount, 50) - len(suggestions))))
|
||||
return sorted(random.sample(suggestions, amount))
|
||||
for ticket in Ticket.query.filter_by(raffle_id=raffle_id).order_by(Ticket.chosen_number.asc()):
|
||||
possible_suggestions.extend(range(candidate_number, min(ticket.chosen_number, candidate_number + nums_needed)))
|
||||
candidate_number = ticket.chosen_number + 1
|
||||
if len(possible_suggestions) >= target_pool_size:
|
||||
nums_needed = 0
|
||||
break
|
||||
nums_needed = target_pool_size - len(possible_suggestions)
|
||||
|
||||
possible_suggestions.extend(range(candidate_number, candidate_number + nums_needed))
|
||||
return sorted(random.sample(possible_suggestions, amount))
|
||||
|
||||
|
||||
@app.route('/numeros/<purchase_id>', methods=['GET', 'POST'])
|
||||
|
|
|
|||
Loading…
Reference in New Issue