Server list is now pre-fetched during 'bootup'

This commit is contained in:
2021-11-22 20:48:46 -06:00
parent a4dd375511
commit 66e8c04fc7
3 changed files with 28 additions and 6 deletions

View File

@@ -2,7 +2,6 @@ class W3DHub
class Pages class Pages
class ServerBrowser < Page class ServerBrowser < Page
def setup def setup
@server_list ||= []
@selected_server ||= nil @selected_server ||= nil
@selected_color = 0xff_666655 @selected_color = 0xff_666655
@filters = {} @filters = {}
@@ -102,7 +101,11 @@ class W3DHub
end end
end end
if Store.server_list.empty?
fetch_server_list fetch_server_list
else
populate_server_list
end
end end
def populate_server_list def populate_server_list
@@ -111,7 +114,7 @@ class W3DHub
@server_list_container.clear do @server_list_container.clear do
i = -1 i = -1
@server_list.each do |server| Store.server_list.each do |server|
next unless @filters[server.game] next unless @filters[server.game]
next unless server.region == @filter_region || @filter_region == "Any" next unless server.region == @filter_region || @filter_region == "Any"
@@ -297,7 +300,7 @@ class W3DHub
list = Api.server_list(2) list = Api.server_list(2)
if list if list
@server_list = list.sort_by! { |s| s&.status&.players&.size }.reverse Store.server_list = list.sort_by! { |s| s&.status&.players&.size }.reverse
main_thread_queue << proc { populate_server_list } main_thread_queue << proc { populate_server_list }
@@ -305,7 +308,7 @@ class W3DHub
rescue => e rescue => e
# Something went wrong! # Something went wrong!
pp e pp e
@server_list = [] Store.server_list = []
end end
end end
end end

View File

@@ -11,7 +11,8 @@ class W3DHub
@tasks = { @tasks = {
refresh_user_token: { started: false, complete: false }, refresh_user_token: { started: false, complete: false },
service_status: { started: false, complete: false }, service_status: { started: false, complete: false },
applications: { started: false, complete: false } applications: { started: false, complete: false },
server_list: { started: false, complete: false }
} }
@task_index = 0 @task_index = 0
@@ -111,6 +112,23 @@ class W3DHub
end end
end end
end end
def server_list
@status_label.value = "Getting server list..."
Thread.new do
begin
list = Api.server_list(2)
Store.server_list = list.sort_by! { |s| s&.status&.players&.size }.reverse if list
@tasks[:server_list][:complete] = true
rescue => e
# Something went wrong!
pp e
Store.server_list = []
end
end
end
end end
end end
end end

View File

@@ -3,6 +3,7 @@ class W3DHub
def setup def setup
self.caption = I18n.t(:app_name) self.caption = I18n.t(:app_name)
Store[:server_list] = []
Store[:settings] = Settings.new Store[:settings] = Settings.new
Store[:application_manager] = ApplicationManager.new Store[:application_manager] = ApplicationManager.new