implement buttons

This commit is contained in:
2019-06-09 01:03:58 +02:00
parent dcac94f5ca
commit 5ea26605d3
4 changed files with 72 additions and 12 deletions

View File

@@ -53,6 +53,18 @@ class Player:
# mark returned string as preformated html # # mark returned string as preformated html #
return flask.Markup(string) return flask.Markup(string)
def requestRange(start, end):
'''Request a range from the rating server'''
# request information from rating server #
requestURL = BASE_URL.format(server=SERVER, \
path=LOCATION, \
paramStart=PARAM_START, \
paramEnd=PARAM_END, \
start=start, \
end=end)
return str(requests.get(requestURL).content, "utf-8")
@app.route('/leaderboard') @app.route('/leaderboard')
def leaderboard(): def leaderboard():
@@ -71,15 +83,14 @@ def leaderboard():
end = start + SEGMENT end = start + SEGMENT
# request information from rating server #
requestURL = BASE_URL.format(server=SERVER, \
path=LOCATION, \
paramStart=PARAM_START, \
paramEnd=PARAM_END, \
start=start, \
end=end)
responseString = str(requests.get(requestURL).content, "utf-8") # request and check if we are within range #
responseString = requestRange(start, end)
if "MAXENTRY:" in responseString:
maxentry = int(responseString.split(":")[1])
start = maxentry - SEGMENT - 1
end = maxentry - 1
responseString = requestRange(start, end)
# create relevant html-lines from player # create relevant html-lines from player
players = [Player(line) for line in responseString.split("\n")] players = [Player(line) for line in responseString.split("\n")]

46
static/buttons.js Normal file
View File

@@ -0,0 +1,46 @@
function forward(){
var url = new URL(window.location.href)
var start = url.searchParams.get("start")
var page = url.searchParams.get("page")
if(page){
page = parseInt(page) + 1
}else if(start){
page = Math.trunc(parseInt(start)/100) + 1
}else{
page = 1
}
url.searchParams.set("page", page)
window.location.href = url.href
}
function backward(){
var url = new URL(window.location.href)
var start = url.searchParams.get("start")
var page = url.searchParams.get("page")
if(page){
page = parseInt(page) - 1
if(page < 0){
page = 0
}
}else if(start){
page = Math.trunc(parseInt(start)/100) - 1
}else{
page = 0
}
url.searchParams.set("page", page)
window.location.href = url.href
}
function firstPage(){
var href = window.location.href
var parameterSeperator = "?"
if(href.includes(parameterSeperator)){
window.location.href = href.split(parameterSeperator)[0]
}
}

View File

@@ -11,9 +11,9 @@ body{
.top-bar{ .top-bar{
position: fixed; position: fixed;
background-color: orange; background-color: orange;
height: 20px;
padding-bottom: 10px; padding-bottom: 10px;
padding-top: 10px; padding-top: 10px;
padding-left: 10px;
left: 0; left: 0;
top: 0; top: 0;
@@ -23,6 +23,7 @@ body{
.top-button{ .top-button{
height: 80%; height: 80%;
float: left; float: left;
margin-right: 10px; margin-right: 10px;
background-color: red; background-color: red;

View File

@@ -1,12 +1,14 @@
<html> <html>
<head> <head>
<link rel="stylesheet" type="text/css" href="static/site.css"> <link rel="stylesheet" type="text/css" href="static/site.css">
<script src="static/buttons.js"></script>
</head> </head>
<body> <body>
<div class=top-bar> <div class=top-bar>
<div class=top-button>Forward</div> <button type="button" onclick=forward() class=top-button>Forward </button>
<div class=top-button>Backward</div> <button type="button" onclick=backward() class=top-button>Backward</button>
<div class=top-button>Top 100</div> <button type="button" onclick=firstPage() class=top-button>Top 100 </button>
<input class=input-field> <input class=input-field>
<input class=input-field> <input class=input-field>
</div> </div>