Merge pull request #89 from esSteres/master

Fixe a bug with loader.js
This commit is contained in:
Sakimori 2021-01-01 05:11:31 -05:00 committed by GitHub
commit 503a1b7a18
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 40 deletions

View File

@ -14,32 +14,15 @@ thread2 = threading.Thread(target=socketio.run,args=(app,))
thread2.start() thread2.start()
master_games_dic = {} #key timestamp : (game game, {} state) master_games_dic = {} #key timestamp : (game game, {} state)
game_states = {} data_to_send = []
def data_to_send():
template = jinja2.Environment(loader=jinja2.FileSystemLoader('templates')).get_template('game.html')
data = []
for timestamp in game_states:
data.append({
'timestamp' : timestamp,
'league' : game_states[timestamp]['leagueoruser'] if game_states[timestamp]['is_league'] else '',
'html' : template.render(
state=game_states[timestamp],
base_filled="/static/img/base_filled.png",
base_empty="/static/img/base_empty.png",
out_out="/static/img/out_out.png",
out_in="/static/img/out_in.png"
)
})
return data
@socketio.on("recieved") @socketio.on("recieved")
def handle_new_conn(data): def handle_new_conn(data):
socketio.emit("states_update", data_to_send(), room=request.sid) socketio.emit("states_update", data_to_send, room=request.sid)
def update_loop(): def update_loop():
while True: while True:
global game_states game_states = {}
game_times = iter(master_games_dic.copy().keys()) game_times = iter(master_games_dic.copy().keys())
for game_time in game_times: for game_time in game_times:
this_game, state, discrim_string = master_games_dic[game_time] this_game, state, discrim_string = master_games_dic[game_time]
@ -134,5 +117,21 @@ def update_loop():
state["update_pause"] -= 1 state["update_pause"] -= 1
socketio.emit("states_update", data_to_send()) global data_to_send
template = jinja2.Environment(loader=jinja2.FileSystemLoader('templates')).get_template('game.html')
data_to_send = []
for timestamp in game_states:
data_to_send.append({
'timestamp' : timestamp,
'league' : game_states[timestamp]['leagueoruser'] if game_states[timestamp]['is_league'] else '',
'html' : template.render(
state=game_states[timestamp],
base_filled="/static/img/base_filled.png",
base_empty="/static/img/base_empty.png",
out_out="/static/img/out_out.png",
out_in="/static/img/out_in.png"
)
})
socketio.emit("states_update", data_to_send)
time.sleep(6) time.sleep(6)

View File

@ -14,9 +14,9 @@ $(document).ready(function (){
//get all leagues //get all leagues
leagues = [] leagues = []
for (var i in json) { for (var game of json) {
if (json[i].league != "" && !leagues.includes(json[i].league)) { if (game.league != "" && !leagues.includes(game.league)) {
leagues.push(json[i].league) leagues.push(game.league)
} }
} }
@ -32,15 +32,15 @@ $(document).ready(function (){
}) })
// add leagues not already present // add leagues not already present
for (var i in leagues) { // we removed the entries that are already there in the loop above for (var league of leagues) { // we removed the entries that are already there in the loop above
$('#filters').append("<button class='filter'>"+leagues[i]+"</button>"); $('#filters').append("<button class='filter'>"+league+"</button>");
} }
//add click handlers to each filter //add click handlers to each filter
$('#filters .filter').each(function(index) { $('#filters .filter').each(function(index) {
$(this).click(function() { $(this).click(function() {
if ($('#filters #selected_filter').text() == 'All') { if ($('#filters #selected_filter').text() == 'All') {
updateGames(Object(), ""); // clear grid when switching off of All, to make games collapse to top updateGames([], ""); // clear grid when switching off of All, to make games collapse to top
} }
$('#filters #selected_filter').attr('id', ''); $('#filters #selected_filter').attr('id', '');
$(this).attr('id', 'selected_filter'); $(this).attr('id', 'selected_filter');
@ -50,10 +50,11 @@ $(document).ready(function (){
}); });
const updateGames = (json, filter) => { const updateGames = (json, filter) => {
filterjson = []; filterjson = [];
for (var i in json) { for (var game of json) {
if (json[i].league == filter || filter == "All") { if (game.league == filter || filter == "All") {
filterjson.push(json[i]); filterjson.push(game);
} }
} }
@ -72,9 +73,16 @@ $(document).ready(function (){
} }
} }
for (var i in filterjson) { for (var game of filterjson) {
//updates game in list
for (var slotnum = 0; slotnum < grid.children.length; slotnum++) {
if (grid.children[slotnum].timestamp == game.timestamp) {
insertGame(slotnum, game);
};
};
//adds game to list if not there already //adds game to list if not there already
if (!Array.prototype.slice.call(grid.children).some((x) => x.timestamp == filterjson[i].timestamp)) { if (!Array.prototype.slice.call(grid.children).some((x) => x.timestamp == game.timestamp)) {
for (var slotnum = 0; true; slotnum++) { //this is really a while loop but shh don't tell anyone for (var slotnum = 0; true; slotnum++) { //this is really a while loop but shh don't tell anyone
if (slotnum >= grid.children.length) { if (slotnum >= grid.children.length) {
for (var i = 0; i < 3; i ++) { for (var i = 0; i < 3; i ++) {
@ -82,18 +90,11 @@ $(document).ready(function (){
} }
} }
if (grid.children[slotnum].className == "emptyslot") { if (grid.children[slotnum].className == "emptyslot") {
insertGame(slotnum, filterjson[i]); insertGame(slotnum, game);
break; break;
}; };
}; };
} }
//updates game in list
for (var slotnum = 0; slotnum < grid.children.length; slotnum++) {
if (grid.children[slotnum].timestamp == filterjson[i].timestamp) {
insertGame(slotnum, filterjson[i]);
};
};
}; };
//remove last rows if not needed //remove last rows if not needed