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):
|
def suggest_numbers(raffle_id, amount=3):
|
||||||
suggestions = []
|
nums_needed = target_pool_size = max(amount * 2, 50)
|
||||||
tickets = iter(Ticket.query.filter_by(raffle_id=raffle_id).order_by(Ticket.chosen_number.asc()))
|
possible_suggestions = []
|
||||||
next_ticket = next(tickets, None)
|
|
||||||
candidate_number = 1
|
candidate_number = 1
|
||||||
while len(suggestions) < max(amount, 50) and next_ticket:
|
for ticket in Ticket.query.filter_by(raffle_id=raffle_id).order_by(Ticket.chosen_number.asc()):
|
||||||
if candidate_number < next_ticket.chosen_number:
|
possible_suggestions.extend(range(candidate_number, min(ticket.chosen_number, candidate_number + nums_needed)))
|
||||||
suggestions.append(candidate_number)
|
candidate_number = ticket.chosen_number + 1
|
||||||
else:
|
if len(possible_suggestions) >= target_pool_size:
|
||||||
next_ticket = next(tickets, None)
|
nums_needed = 0
|
||||||
candidate_number += 1
|
break
|
||||||
suggestions.extend(range(candidate_number, candidate_number + (max(amount, 50) - len(suggestions))))
|
nums_needed = target_pool_size - len(possible_suggestions)
|
||||||
return sorted(random.sample(suggestions, amount))
|
|
||||||
|
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'])
|
@app.route('/numeros/<purchase_id>', methods=['GET', 'POST'])
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue