Compare commits

4 Commits

Author SHA1 Message Date
10aeabdb83 increase allowed range for prediction 2023-10-05 02:29:39 +02:00
5604fac1b2 readjust step in predict and add dateformating function 2023-10-05 02:19:52 +02:00
89e802aa57 add pycache to gitignore 2023-10-04 00:13:07 +02:00
06af95ce57 fix prediction 2023-10-04 00:11:21 +02:00
3 changed files with 21 additions and 11 deletions

4
.gitignore vendored
View File

@@ -1 +1,3 @@
__pycacahe__/* __pycacahe__/*
freeriders/__pycacahe__/*
instance/

View File

@@ -1,4 +1,9 @@
import time import time
import datetime
def datetounix(day, month, year, hour, minute, second):
seconds = datetime.datetime(year, month, day, hour, minute, second).timestamp()
return int(seconds)
def formatprefix2(number): def formatprefix2(number):
return "{:02d}".format(number) return "{:02d}".format(number)
@@ -7,10 +12,10 @@ def formatprefix10(number):
return "{:010d}".format(number) return "{:010d}".format(number)
def predict(timestamp): def predict(timestamp):
base_ticket = 4339636 base_ticket = 7157662
base_timestamp = 1694003498 base_timestamp = 1695887564
step = 8 step = 0.688
ticket = base_ticket + (int(time.time()) - base_timestamp) * step ticket = base_ticket + (timestamp - base_timestamp) * step
return ticket return int(ticket)

View File

@@ -5,12 +5,10 @@ from freeriders.models import Tickets
from datetime import datetime from datetime import datetime
import time import time
PREDICTTIMERANGE = 60 * 80
@app.route('/sms', methods=['GET']) @app.route('/sms', methods=['GET'])
def sms(): def sms():
if request.method == 'GET': if request.method == 'GET':
timenow = time.time() timenow = int(time.time())
try: try:
lastticket = Tickets.query.order_by(Tickets.timestamp.desc()).first() lastticket = Tickets.query.order_by(Tickets.timestamp.desc()).first()
@@ -21,7 +19,7 @@ def sms():
lastticket = formatprefix10(lastticket.ticket) lastticket = formatprefix10(lastticket.ticket)
date = datetime.now() date = datetime.now()
datenow = f'{formatprefix2(date.day)}.{formatprefix2(date.month)}.{date.year}' datenow = f'{formatprefix2(date.day)}.{formatprefix2(date.month)}.{date.year}'
timenow = f'{formatprefix2(date.hour)}:{formatprefix2(date.minute)}:formatprefix2{date.second}' timenow = f'{formatprefix2(date.hour)}:{formatprefix2(date.minute)}:{formatprefix2(date.second)}'
return render_template('sms.html', ticket = lastticket, date = datenow, time = timenow) return render_template('sms.html', ticket = lastticket, date = datenow, time = timenow)
except: except:
return 'Error retriving last ticket' return 'Error retriving last ticket'
@@ -30,6 +28,7 @@ def sms():
@app.route('/submit', methods=['POST', 'GET']) @app.route('/submit', methods=['POST', 'GET'])
def submit(): def submit():
PREDICTTIMERANGE = 60 * 60 * 24
if request.method == 'GET': if request.method == 'GET':
return render_template('submit.html') return render_template('submit.html')
elif request.method == 'POST': elif request.method == 'POST':
@@ -37,9 +36,13 @@ def submit():
ticket_input = request.form['ticket'] ticket_input = request.form['ticket']
if ticket_input.isdigit() and len(ticket_input) == 10 : if ticket_input.isdigit() and len(ticket_input) == 10 :
if ticket_input < predict(timenow + PREDICTTIMERANGE ) and ticket_input > predict(timenow - PREDICTTIMERANGE ) : if int(ticket_input) < predict(timenow + PREDICTTIMERANGE ) and int(ticket_input) > predict(timenow - PREDICTTIMERANGE ) :
ticket = Tickets(ticket = int(ticket_input), timestamp = timenow) ticket = Tickets(ticket = int(ticket_input), timestamp = timenow)
else: else:
print(int(ticket_input))
print(predict(timenow - PREDICTTIMERANGE))
print(predict(timenow + PREDICTTIMERANGE))
print(predict(timenow))
return 'Ticket number is in unexpected range.' return 'Ticket number is in unexpected range.'
else: else:
return 'Ticket format is wrong. Only 10 digits allowed.' return 'Ticket format is wrong. Only 10 digits allowed.'